aboutsummaryrefslogtreecommitdiffstats
path: root/composer.phar
blob: 3481b599b75631b0d91e0806612f090391cb6b4e (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 2f 2f 20 41 76 6f bottom.of.this.file...*/..//.Avo
0120 69 64 20 41 50 43 20 63 61 75 73 69 6e 67 20 72 61 6e 64 6f 6d 20 66 61 74 61 6c 20 65 72 72 6f id.APC.causing.random.fatal.erro
0140 72 73 20 70 65 72 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 63 6f 6d 70 6f 73 rs.per.https://github.com/compos
0160 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 73 2f 32 36 34 0a 69 66 20 28 65 78 74 65 6e er/composer/issues/264.if.(exten
0180 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 61 70 63 27 29 20 26 26 20 69 6e 69 5f 67 65 74 28 27 61 sion_loaded('apc').&&.ini_get('a
01a0 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 27 29 20 26 26 20 69 6e 69 5f 67 65 74 28 27 61 70 63 2e pc.enable_cli').&&.ini_get('apc.
01c0 63 61 63 68 65 5f 62 79 5f 64 65 66 61 75 6c 74 27 29 29 20 7b 0a 20 20 20 20 69 66 20 28 76 65 cache_by_default')).{.....if.(ve
01e0 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 70 68 70 76 65 72 73 69 6f 6e 28 27 61 70 63 27 29 2c rsion_compare(phpversion('apc'),
0200 20 27 33 2e 30 2e 31 32 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 69 5f .'3.0.12',.'>=')).{.........ini_
0220 73 65 74 28 27 61 70 63 2e 63 61 63 68 65 5f 62 79 5f 64 65 66 61 75 6c 74 27 2c 20 30 29 3b 0a set('apc.cache_by_default',.0);.
0240 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 66 77 72 69 74 65 28 53 54 44 45 ....}.else.{.........fwrite(STDE
0260 52 52 2c 20 27 57 61 72 6e 69 6e 67 3a 20 41 50 43 20 3c 3d 20 33 2e 30 2e 31 32 20 6d 61 79 20 RR,.'Warning:.APC.<=.3.0.12.may.
0280 63 61 75 73 65 20 66 61 74 61 6c 20 65 72 72 6f 72 73 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 cause.fatal.errors.when.running.
02a0 63 6f 6d 70 6f 73 65 72 20 63 6f 6d 6d 61 6e 64 73 2e 27 2e 50 48 50 5f 45 4f 4c 29 3b 0a 20 20 composer.commands.'.PHP_EOL);...
02c0 20 20 20 20 20 20 66 77 72 69 74 65 28 53 54 44 45 52 52 2c 20 27 55 70 64 61 74 65 20 41 50 43 ......fwrite(STDERR,.'Update.APC
02e0 2c 20 6f 72 20 73 65 74 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 6f 72 20 61 70 63 2e 63 ,.or.set.apc.enable_cli.or.apc.c
0300 61 63 68 65 5f 62 79 5f 64 65 66 61 75 6c 74 20 74 6f 20 30 20 69 6e 20 79 6f 75 72 20 70 68 70 ache_by_default.to.0.in.your.php
0320 2e 69 6e 69 2e 27 2e 50 48 50 5f 45 4f 4c 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 50 68 61 72 3a 3a .ini.'.PHP_EOL);.....}.}..Phar::
0340 6d 61 70 50 68 61 72 28 27 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 29 3b 0a 64 65 66 69 6e 65 mapPhar('composer.phar');.define
0360 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 2c 20 31 34 ('COMPOSER_DEV_WARNING_TIME',.14
0380 33 30 33 31 32 34 30 38 29 3b 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 30312408);.require.'phar://compo
03a0 73 65 72 2e 70 68 61 72 2f 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 5f 5f 48 41 4c 54 5f ser.phar/bin/composer';..__HALT_
03c0 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a c1 74 00 00 66 01 00 00 11 00 00 00 01 00 0d 00 COMPILER();.?>...t..f...........
03e0 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 ..composer.phar........src/boots
0400 74 72 61 70 2e 70 68 70 c5 01 00 00 d8 48 19 55 c5 01 00 00 a8 af 32 90 b6 01 00 00 00 00 00 00 trap.php.....H.U......2.........
0420 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 43 6f 6e 73 6f 6c 65 49 4f 2e 70 68 ....src/Composer/IO/ConsoleIO.ph
0440 70 b5 15 00 00 d8 48 19 55 b5 15 00 00 28 aa f2 0b b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 p.....H.U....(...............src
0460 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 4e 75 6c 6c 49 4f 2e 70 68 70 b3 03 00 00 d8 48 19 55 b3 /Composer/IO/NullIO.php.....H.U.
0480 03 00 00 7e 31 13 c4 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...~1..............src/Composer/
04a0 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 04 00 00 d8 48 19 55 87 04 00 00 9f 70 IO/IOInterface.php.....H.U.....p
04c0 87 79 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 42 61 .y............src/Composer/IO/Ba
04e0 73 65 49 4f 2e 70 68 70 06 05 00 00 d8 48 19 55 06 05 00 00 23 0e b0 2e b6 01 00 00 00 00 00 00 seIO.php.....H.U....#...........
0500 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 42 75 66 66 65 72 49 4f 2e 70 68 70 ....src/Composer/IO/BufferIO.php
0520 10 04 00 00 d8 48 19 55 10 04 00 00 68 76 15 e1 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f .....H.U....hv..........)...src/
0540 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e Composer/Command/RunScriptComman
0560 64 2e 70 68 70 90 0b 00 00 d8 48 19 55 90 0b 00 00 12 73 a3 34 b6 01 00 00 00 00 00 00 28 00 00 d.php.....H.U.....s.4........(..
0580 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 69 61 67 6e 6f 73 65 43 6f .src/Composer/Command/DiagnoseCo
05a0 6d 6d 61 6e 64 2e 70 68 70 67 3a 00 00 d8 48 19 55 67 3a 00 00 39 88 ec e6 b6 01 00 00 00 00 00 mmand.phpg:...H.Ug:..9..........
05c0 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 41 72 63 68 69 76 .'...src/Composer/Command/Archiv
05e0 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 08 11 00 00 d8 48 19 55 08 11 00 00 b8 55 f6 aa b6 01 00 00 eCommand.php.....H.U.....U......
0600 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 64 2f 43 6c 65 ....*...src/Composer/Command/Cle
0620 61 72 43 61 63 68 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 5a 05 00 00 d8 48 19 55 5a 05 00 00 89 ec arCacheCommand.phpZ....H.UZ.....
0640 17 3e b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 .>............src/Composer/Comma
0660 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 89 06 00 00 d8 48 19 55 89 06 00 00 b5 0c 76 4a b6 01 nd/Command.php.....H.U......vJ..
0680 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 ......-...src/Composer/Command/C
06a0 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 c7 31 00 00 d8 48 19 55 c7 reateProjectCommand.php.1...H.U.
06c0 31 00 00 44 59 dd bf 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 1..DY..........%...src/Composer/
06e0 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 bb 02 00 00 d8 48 19 55 Command/AboutCommand.php.....H.U
0700 bb 02 00 00 23 7b 69 6b b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....#{ik........+...src/Composer
0720 2f 43 6f 6d 6d 61 6e 64 2f 53 63 72 69 70 74 41 6c 69 61 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 b2 /Command/ScriptAliasCommand.php.
0740 05 00 00 d8 48 19 55 b2 05 00 00 f1 c7 24 bd b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 ....H.U......$.........$...src/C
0760 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 70 35 omposer/Command/ShowCommand.php5
0780 30 00 00 d8 48 19 55 35 30 00 00 b9 ad 89 84 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 0...H.U50..............&...src/C
07a0 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 70 68 omposer/Command/UpdateCommand.ph
07c0 70 2a 16 00 00 d8 48 19 55 2a 16 00 00 cd 0a 23 c3 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 p*....H.U*.....#.........&...src
07e0 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 64 2e /Composer/Command/ConfigCommand.
0800 70 68 70 10 34 00 00 d8 48 19 55 10 34 00 00 72 8f d3 03 b6 01 00 00 00 00 00 00 27 00 00 00 73 php.4...H.U.4..r...........'...s
0820 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 6d 61 rc/Composer/Command/InstallComma
0840 6e 64 2e 70 68 70 23 13 00 00 d8 48 19 55 23 13 00 00 3d 03 4a 25 b6 01 00 00 00 00 00 00 28 00 nd.php#....H.U#...=.J%........(.
0860 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 65 43 ..src/Composer/Command/ValidateC
0880 6f 6d 6d 61 6e 64 2e 70 68 70 18 0b 00 00 d8 48 19 55 18 0b 00 00 79 77 82 03 b6 01 00 00 00 00 ommand.php.....H.U....yw........
08a0 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 65 6e ..'...src/Composer/Command/Depen
08c0 64 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 84 0a 00 00 d8 48 19 55 84 0a 00 00 c8 21 0c 22 b6 01 00 dsCommand.php.....H.U.....!."...
08e0 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 53 65 .....&...src/Composer/Command/Se
0900 61 72 63 68 43 6f 6d 6d 61 6e 64 2e 70 68 70 6c 09 00 00 d8 48 19 55 6c 09 00 00 b6 4b 34 1e b6 archCommand.phpl....H.Ul....K4..
0920 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 64 2f .......*...src/Composer/Command/
0940 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 23 1a 00 00 d8 48 19 55 23 1a 00 SelfUpdateCommand.php#....H.U#..
0960 00 a1 23 88 29 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 ..#.)........(...src/Composer/Co
0980 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 cf 0e 00 00 d8 48 19 mmand/LicensesCommand.php.....H.
09a0 55 cf 0e 00 00 a0 ee a5 94 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U................$...src/Compose
09c0 72 2f 43 6f 6d 6d 61 6e 64 2f 48 6f 6d 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 2b 0e 00 00 d8 48 19 r/Command/HomeCommand.php+....H.
09e0 55 2b 0e 00 00 1c 5e 9a 03 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U+....^..........'...src/Compose
0a00 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 7e 18 00 00 r/Command/RequireCommand.php~...
0a20 d8 48 19 55 7e 18 00 00 a1 fa 84 be b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 .H.U~...............,...src/Comp
0a40 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 6e 64 oser/Command/DumpAutoloadCommand
0a60 2e 70 68 70 ff 06 00 00 d8 48 19 55 ff 06 00 00 19 46 1d 5a b6 01 00 00 00 00 00 00 26 00 00 00 .php.....H.U.....F.Z........&...
0a80 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 6d 61 src/Composer/Command/GlobalComma
0aa0 6e 64 2e 70 68 70 13 07 00 00 d8 48 19 55 13 07 00 00 a9 a8 40 95 b6 01 00 00 00 00 00 00 26 00 nd.php.....H.U......@.........&.
0ac0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 6d 6f 76 65 43 6f 6d ..src/Composer/Command/RemoveCom
0ae0 6d 61 6e 64 2e 70 68 70 94 0e 00 00 d8 48 19 55 94 0e 00 00 b9 3e 31 9c b6 01 00 00 00 00 00 00 mand.php.....H.U.....>1.........
0b00 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/
0b20 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 9e 01 00 00 d8 48 19 55 9e 01 00 00 95 82 8c 26 DialogHelper.php.....H.U.......&
0b40 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
0b60 2f 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 6f 09 00 00 d8 48 19 55 6f 09 00 00 97 1b /StatusCommand.phpo....H.Uo.....
0b80 b2 ce 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 ..........$...src/Composer/Comma
0ba0 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 0a 38 00 00 d8 48 19 55 0a 38 00 00 9c a6 nd/InitCommand.php.8...H.U.8....
0bc0 14 1f 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
0be0 6f 61 64 65 72 2f 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 f7 11 00 00 d8 48 19 55 f7 oader/VcsDownloader.php.....H.U.
0c00 11 00 00 ab 91 df f2 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 ...............)...src/Composer/
0c20 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 df 07 00 00 Downloader/RarDownloader.php....
0c40 d8 48 19 55 df 07 00 00 15 be bc 7f b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 .H.U................*...src/Comp
0c60 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
0c80 68 70 a6 15 00 00 d8 48 19 55 a6 15 00 00 63 8b 07 ce b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp.....H.U....c...........)...sr
0ca0 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
0cc0 64 65 72 2e 70 68 70 5c 0f 00 00 d8 48 19 55 5c 0f 00 00 a8 07 8e 3d b6 01 00 00 00 00 00 00 30 der.php\....H.U\......=........0
0ce0 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
0d00 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 68 70 61 1b 00 00 d8 48 19 55 61 1b 00 00 40 ackageExtractor.phpa....H.Ua...@
0d20 d4 d8 23 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e ..#........+...src/Composer/Down
0d40 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 91 11 00 00 d8 48 loader/DownloadManager.php.....H
0d60 19 55 91 11 00 00 27 6f c5 62 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .U....'o.b......../...src/Compos
0d80 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
0da0 65 2e 70 68 70 ca 01 00 00 d8 48 19 55 ca 01 00 00 67 73 21 6c b6 01 00 00 00 00 00 00 2e 00 00 e.php.....H.U....gs!l...........
0dc0 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
0de0 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 96 01 00 00 d8 48 19 55 96 01 00 00 68 22 42 72 b6 rtException.php.....H.U....h"Br.
0e00 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
0e20 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 d8 48 19 55 e5 00 00 er/PharDownloader.php.....H.U...
0e40 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
0e60 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 d8 48 wnloader/TarDownloader.php.....H
0e80 19 55 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 .U......X?........(...src/Compos
0ea0 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 63 08 er/Downloader/HgDownloader.phpc.
0ec0 00 00 d8 48 19 55 63 08 00 00 87 82 54 84 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f ...H.Uc.....T.........1...src/Co
0ee0 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
0f00 74 65 72 66 61 63 65 2e 70 68 70 cc 00 00 00 d8 48 19 55 cc 00 00 00 af e0 a8 bf b6 01 00 00 00 terface.php.....H.U.............
0f20 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
0f40 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 a0 0d 00 00 d8 48 19 55 a0 0d 00 00 rchiveDownloader.php.....H.U....
0f60 d0 b6 54 6a 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 ..Tj......../...src/Composer/Dow
0f80 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.
0fa0 01 00 00 d8 48 19 55 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 ....H.U....]T..............src/C
0fc0 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
0fe0 6f 61 64 65 72 2e 70 68 70 78 07 00 00 d8 48 19 55 78 07 00 00 18 3c e9 63 b6 01 00 00 00 00 00 oader.phpx....H.Ux....<.c.......
1000 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
1020 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 43 0b 00 00 d8 48 19 55 43 0b 00 00 02 5d 5e 2b b6 01 Downloader.phpC....H.UC....]^+..
1040 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 65 ......*...src/Composer/Downloade
1060 72 2f 47 7a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 c8 05 00 00 d8 48 19 55 c8 05 00 00 r/GzipDownloader.php.....H.U....
1080 ad e4 df d0 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 ............)...src/Composer/Dow
10a0 6e 6c 6f 61 64 65 72 2f 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 66 23 00 00 d8 48 19 nloader/GitDownloader.phpf#...H.
10c0 55 66 23 00 00 94 64 f5 cc b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 Uf#...d..........6...src/Compose
10e0 72 2f 52 65 70 6f 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 r/Repository/InvalidRepositoryEx
1100 63 65 70 74 69 6f 6e 2e 70 68 70 6e 00 00 00 d8 48 19 55 6e 00 00 00 e0 93 eb 98 b6 01 00 00 00 ception.phpn....H.Un............
1120 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 ...+...src/Composer/Repository/A
1140 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 15 0c 00 00 d8 48 19 55 15 0c 00 00 b4 af rrayRepository.php.....H.U......
1160 de 2f 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 52 65 70 6f 73 ./........0...src/Composer/Repos
1180 69 74 6f 72 79 2f 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 c0 04 itory/FilesystemRepository.php..
11a0 00 00 d8 48 19 55 c0 04 00 00 26 78 62 a3 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f ...H.U....&xb.........7...src/Co
11c0 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 mposer/Repository/WritableReposi
11e0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 89 01 00 00 d8 48 19 55 89 01 00 00 91 2f 73 toryInterface.php.....H.U...../s
1200 ef 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 52 65 70 6f 73 69 .........*...src/Composer/Reposi
1220 74 6f 72 79 2f 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 b0 15 00 00 d8 48 19 55 b0 tory/PearRepository.php.....H.U.
1240 15 00 00 0a 2c 42 b7 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 ....,B.........-...src/Composer/
1260 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2e 70 68 70 Repository/RepositoryManager.php
1280 b3 07 00 00 d8 48 19 55 b3 07 00 00 33 33 b8 ef b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f .....H.U....33..........3...src/
12a0 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 41 72 72 61 Composer/Repository/WritableArra
12c0 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 0f 03 00 00 d8 48 19 55 0f 03 00 00 be 47 17 2a b6 yRepository.php.....H.U.....G.*.
12e0 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......,...src/Composer/Reposito
1300 72 79 2f 56 63 73 2f 47 69 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 72 27 00 00 d8 48 19 55 72 ry/Vcs/GitHubDriver.phpr'...H.Ur
1320 27 00 00 22 2e 6a 30 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 '..".j0........2...src/Composer/
1340 52 65 70 6f 73 69 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 Repository/Vcs/GitBitbucketDrive
1360 72 2e 70 68 70 ec 0c 00 00 d8 48 19 55 ec 0c 00 00 18 46 ff f4 b6 01 00 00 00 00 00 00 29 00 00 r.php.....H.U.....F..........)..
1380 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 .src/Composer/Repository/Vcs/Git
13a0 44 72 69 76 65 72 2e 70 68 70 01 16 00 00 d8 48 19 55 01 16 00 00 5c 7f ee ef b6 01 00 00 00 00 Driver.php.....H.U....\.........
13c0 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 ......src/Composer/Repository/Vc
13e0 73 2f 50 65 72 66 6f 72 63 65 44 72 69 76 65 72 2e 70 68 70 21 0a 00 00 d8 48 19 55 21 0a 00 00 s/PerforceDriver.php!....H.U!...
1400 8d 80 d9 6b b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 ...k........)...src/Composer/Rep
1420 6f 73 69 74 6f 72 79 2f 56 63 73 2f 53 76 6e 44 72 69 76 65 72 2e 70 68 70 b2 19 00 00 d8 48 19 ository/Vcs/SvnDriver.php.....H.
1440 55 b2 19 00 00 cb c2 a0 57 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U.......W........2...src/Compose
1460 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 r/Repository/Vcs/VcsDriverInterf
1480 61 63 65 2e 70 68 70 89 02 00 00 d8 48 19 55 89 02 00 00 70 4f e3 a4 b6 01 00 00 00 00 00 00 28 ace.php.....H.U....pO..........(
14a0 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 2f 48 ...src/Composer/Repository/Vcs/H
14c0 67 44 72 69 76 65 72 2e 70 68 70 e0 12 00 00 d8 48 19 55 e0 12 00 00 f1 91 e7 b6 b6 01 00 00 00 gDriver.php.....H.U.............
14e0 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 79 2f 56 ...)...src/Composer/Repository/V
1500 63 73 2f 56 63 73 44 72 69 76 65 72 2e 70 68 70 d1 05 00 00 d8 48 19 55 d1 05 00 00 e5 25 06 52 cs/VcsDriver.php.....H.U.....%.R
1520 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 52 65 70 6f 73 69 74 ........1...src/Composer/Reposit
1540 6f 72 79 2f 56 63 73 2f 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 f4 0d 00 ory/Vcs/HgBitbucketDriver.php...
1560 00 d8 48 19 55 f4 0d 00 00 98 e1 57 f5 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d ..H.U......W.........4...src/Com
1580 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 41 72 72 61 79 52 poser/Repository/InstalledArrayR
15a0 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 00 00 d8 48 19 55 a3 00 00 00 2f f6 7e 3e b6 01 00 epository.php.....H.U..../.~>...
15c0 00 00 00 00 00 37 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 .....7...src/Composer/Repository
15e0 2f 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 2e 70 68 70 /RepositorySecurityException.php
1600 6f 00 00 00 d8 48 19 55 6f 00 00 00 70 d5 ab aa b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f o....H.Uo...p...........)...src/
1620 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 52 65 70 6f 73 69 74 6f 72 Composer/Repository/VcsRepositor
1640 79 2e 70 68 70 40 1d 00 00 d8 48 19 55 40 1d 00 00 83 b2 a3 ab b6 01 00 00 00 00 00 00 2e 00 00 y.php@....H.U@..................
1660 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 6c 61 74 66 6f 72 .src/Composer/Repository/Platfor
1680 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 9d 0e 00 00 d8 48 19 55 9d 0e 00 00 b5 e1 c7 d8 b6 mRepository.php.....H.U.........
16a0 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......9...src/Composer/Reposito
16c0 72 79 2f 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 ry/InstalledFilesystemRepository
16e0 2e 70 68 70 a3 00 00 00 d8 48 19 55 a3 00 00 00 56 0a 95 5f b6 01 00 00 00 00 00 00 2f 00 00 00 .php.....H.U....V.._......../...
1700 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 src/Composer/Repository/Composit
1720 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 08 09 00 00 d8 48 19 55 08 09 00 00 34 fa 03 45 b6 eRepository.php.....H.U....4..E.
1740 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......8...src/Composer/Reposito
1760 72 79 2f 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 2e ry/InstalledRepositoryInterface.
1780 70 68 70 87 00 00 00 d8 48 19 55 87 00 00 00 18 a3 39 70 b6 01 00 00 00 00 00 00 2e 00 00 00 73 php.....H.U......9p............s
17a0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 65 72 52 rc/Composer/Repository/ComposerR
17c0 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a4 3e 00 00 d8 48 19 55 a4 3e 00 00 de e8 0e 01 b6 01 00 epository.php.>...H.U.>.........
17e0 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 73 69 74 6f 72 79 ...../...src/Composer/Repository
1800 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 2e 70 68 70 71 01 00 00 d8 48 19 55 /Pear/DependencyInfo.phpq....H.U
1820 71 01 00 00 66 ba 54 f2 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 q...f.T.........8...src/Composer
1840 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e /Repository/Pear/PackageDependen
1860 63 79 50 61 72 73 65 72 2e 70 68 70 25 16 00 00 d8 48 19 55 25 16 00 00 06 6a 3f 93 b6 01 00 00 cyParser.php%....H.U%....j?.....
1880 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 2f ....,...src/Composer/Repository/
18a0 50 65 61 72 2f 43 68 61 6e 6e 65 6c 49 6e 66 6f 2e 70 68 70 c4 01 00 00 d8 48 19 55 c4 01 00 00 Pear/ChannelInfo.php.....H.U....
18c0 3a 54 2a c9 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
18e0 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 6e 06 ository/Pear/ChannelReader.phpn.
1900 00 00 d8 48 19 55 6e 06 00 00 1c 9a 38 15 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f ...H.Un.....8.........,...src/Co
1920 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 49 6e mposer/Repository/Pear/PackageIn
1940 66 6f 2e 70 68 70 b0 03 00 00 d8 48 19 55 b0 03 00 00 9f 0d b8 0c b6 01 00 00 00 00 00 00 35 00 fo.php.....H.U................5.
1960 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 44 ..src/Composer/Repository/Pear/D
1980 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 d8 48 19 55 71 ependencyConstraint.phpq....H.Uq
19a0 02 00 00 39 0e 17 3d b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...9..=........4...src/Composer/
19c0 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 Repository/Pear/ChannelRest11Rea
19e0 64 65 72 2e 70 68 70 26 09 00 00 d8 48 19 55 26 09 00 00 f2 55 62 08 b6 01 00 00 00 00 00 00 2c der.php&....H.U&....Ub.........,
1a00 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/
1a20 52 65 6c 65 61 73 65 49 6e 66 6f 2e 70 68 70 92 01 00 00 d8 48 19 55 92 01 00 00 6f 93 8a c3 b6 ReleaseInfo.php.....H.U....o....
1a40 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 74 6f .......2...src/Composer/Reposito
1a60 72 79 2f 50 65 61 72 2f 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 36 05 00 ry/Pear/BaseChannelReader.php6..
1a80 00 d8 48 19 55 36 05 00 00 2e 66 69 21 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d ..H.U6....fi!........4...src/Com
1aa0 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 poser/Repository/Pear/ChannelRes
1ac0 74 31 30 52 65 61 64 65 72 2e 70 68 70 c1 09 00 00 d8 48 19 55 c1 09 00 00 04 4f 80 eb b6 01 00 t10Reader.php.....H.U.....O.....
1ae0 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 73 69 74 6f 72 79 ...../...src/Composer/Repository
1b00 2f 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 d4 01 00 00 d8 48 19 55 /RepositoryInterface.php.....H.U
1b20 d4 01 00 00 f2 90 9f c9 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....................src/Composer
1b40 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 72 74 69 66 61 63 74 52 65 70 6f 73 69 74 6f 72 79 2e 70 /Repository/ArtifactRepository.p
1b60 68 70 eb 0a 00 00 d8 48 19 55 eb 0a 00 00 9a cf 6f f0 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 hp.....H.U......o.........-...sr
1b80 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 61 63 6b 61 67 65 52 65 70 c/Composer/Repository/PackageRep
1ba0 6f 73 69 74 6f 72 79 2e 70 68 70 47 03 00 00 d8 48 19 55 47 03 00 00 ed 04 3a 6b b6 01 00 00 00 ository.phpG....H.UG.....:k.....
1bc0 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 ...(...src/Composer/Package/Comp
1be0 6c 65 74 65 50 61 63 6b 61 67 65 2e 70 68 70 ff 06 00 00 d8 48 19 55 ff 06 00 00 6f 2b e3 09 b6 letePackage.php.....H.U....o+...
1c00 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f .......+...src/Composer/Package/
1c20 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 72 2e 70 68 70 ec 0b 00 00 d8 48 19 55 ec 0b Dumper/ArrayDumper.php.....H.U..
1c40 00 00 aa 96 7f e6 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 ..............7...src/Composer/P
1c60 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 ackage/Loader/InvalidPackageExce
1c80 70 74 69 6f 6e 2e 70 68 70 45 02 00 00 d8 48 19 55 45 02 00 00 78 62 13 be b6 01 00 00 00 00 00 ption.phpE....H.UE...xb.........
1ca0 00 2a 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
1cc0 2f 4a 73 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 f9 01 00 00 d8 48 19 55 f9 01 00 00 21 7e 88 7b b6 /JsonLoader.php.....H.U....!~.{.
1ce0 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f ......./...src/Composer/Package/
1d00 4c 6f 61 64 65 72 2f 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 b2 00 00 00 d8 48 Loader/LoaderInterface.php.....H
1d20 19 55 b2 00 00 00 a6 7d fa ce b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .U.....}..........+...src/Compos
1d40 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 er/Package/Loader/ArrayLoader.ph
1d60 70 08 1b 00 00 d8 48 19 55 08 1b 00 00 47 59 09 8a b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 p.....H.U....GY..........5...src
1d80 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 56 61 6c 69 64 61 74 /Composer/Package/Loader/Validat
1da0 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 d9 2f 00 00 d8 48 19 55 d9 2f 00 00 31 af ingArrayLoader.php./...H.U./..1.
1dc0 85 4b 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 61 63 6b 61 .K........1...src/Composer/Packa
1de0 67 65 2f 4c 6f 61 64 65 72 2f 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 2e 70 68 70 53 ge/Loader/RootPackageLoader.phpS
1e00 22 00 00 d8 48 19 55 53 22 00 00 f0 a8 1d 3c b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 "...H.US".....<............src/C
1e20 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 63 6b 65 72 2e 70 68 70 de 1c 00 00 d8 48 omposer/Package/Locker.php.....H
1e40 19 55 de 1c 00 00 36 14 68 d0 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .U....6.h.........)...src/Compos
1e60 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 5f er/Package/PackageInterface.php_
1e80 07 00 00 d8 48 19 55 5f 07 00 00 e6 88 b9 82 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 ....H.U_...............$...src/C
1ea0 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 42 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 4d omposer/Package/BasePackage.phpM
1ec0 0b 00 00 d8 48 19 55 4d 0b 00 00 b7 0b 25 fe b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 ....H.UM.....%.........0...src/C
1ee0 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 56 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 53 omposer/Package/Version/VersionS
1f00 65 6c 65 63 74 6f 72 2e 70 68 70 fc 08 00 00 d8 48 19 55 fc 08 00 00 ed 07 4d ac b6 01 00 00 00 elector.php.....H.U......M......
1f20 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 65 72 73 .......src/Composer/Package/Vers
1f40 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 0c 2e 00 00 d8 48 19 55 0c 2e 00 ion/VersionParser.php.....H.U...
1f60 00 17 2f 40 56 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 61 ../@V........1...src/Composer/Pa
1f80 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 65 2e 70 ckage/CompletePackageInterface.p
1fa0 68 70 f5 01 00 00 d8 48 19 55 f5 01 00 00 a6 ca 81 f2 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 hp.....H.U................-...sr
1fc0 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 65 49 6e c/Composer/Package/RootPackageIn
1fe0 74 65 72 66 61 63 65 2e 70 68 70 b4 01 00 00 d8 48 19 55 b4 01 00 00 ea 71 4b d0 b6 01 00 00 00 terface.php.....H.U.....qK......
2000 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 6f 6f 74 ...$...src/Composer/Package/Root
2020 50 61 63 6b 61 67 65 2e 70 68 70 6e 04 00 00 d8 48 19 55 6e 04 00 00 e1 41 43 4f b6 01 00 00 00 Package.phpn....H.Un....ACO.....
2040 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 72 63 68 ...3...src/Composer/Package/Arch
2060 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 00 d8 48 iver/ArchiverInterface.php.....H
2080 19 55 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 70 6f 73 .U.....<..........7...src/Compos
20a0 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 78 63 6c er/Package/Archiver/ComposerExcl
20c0 75 64 65 46 69 6c 74 65 72 2e 70 68 70 1f 01 00 00 d8 48 19 55 1f 01 00 00 8b 53 5a 30 b6 01 00 udeFilter.php.....H.U.....SZ0...
20e0 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 41 72 .........src/Composer/Package/Ar
2100 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 d8 48 19 55 5b chiver/PharArchiver.php[....H.U[
2120 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 65 72 2f ....5..........3...src/Composer/
2140 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 69 6c 74 Package/Archiver/BaseExcludeFilt
2160 65 72 2e 70 68 70 91 06 00 00 d8 48 19 55 91 06 00 00 11 04 4d f9 b6 01 00 00 00 00 00 00 32 00 er.php.....H.U......M.........2.
2180 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 65 72 2f ..src/Composer/Package/Archiver/
21a0 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 77 03 00 00 d8 48 19 55 77 03 00 00 GitExcludeFilter.phpw....H.Uw...
21c0 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 50 61 63 LgU.........7...src/Composer/Pac
21e0 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 46 69 6e kage/Archiver/ArchivableFilesFin
2200 64 65 72 2e 70 68 70 bf 04 00 00 d8 48 19 55 bf 04 00 00 8e 63 45 6c b6 01 00 00 00 00 00 00 30 der.php.....H.U.....cEl........0
2220 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 65 72 ...src/Composer/Package/Archiver
2240 2f 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2e 70 68 70 27 0c 00 00 d8 48 19 55 27 0c 00 00 e9 /ArchiveManager.php'....H.U'....
2260 1b 89 f4 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 61 63 6b ...........1...src/Composer/Pack
2280 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 70 68 70 age/Archiver/HgExcludeFilter.php
22a0 13 05 00 00 d8 48 19 55 13 05 00 00 7e 94 0e b8 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f .....H.U....~...........)...src/
22c0 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 6b 61 67 Composer/Package/RootAliasPackag
22e0 65 2e 70 68 70 de 03 00 00 d8 48 19 55 de 03 00 00 d5 12 3e 05 b6 01 00 00 00 00 00 00 20 00 00 e.php.....H.U......>............
2300 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 2e 70 68 .src/Composer/Package/Package.ph
2320 70 c4 1a 00 00 d8 48 19 55 c4 1a 00 00 84 f4 13 11 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 p.....H.U................%...src
2340 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 65 2e 70 /Composer/Package/AliasPackage.p
2360 68 70 57 16 00 00 d8 48 19 55 57 16 00 00 54 2f 59 c1 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 hpW....H.UW...T/Y.............sr
2380 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 2a 05 00 00 d8 c/Composer/Package/Link.php*....
23a0 48 19 55 2a 05 00 00 1d 5f 92 85 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f H.U*...._..........7...src/Compo
23c0 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 70 74 79 ser/Package/LinkConstraint/Empty
23e0 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 ea 01 00 00 d8 48 19 55 ea 01 00 00 00 ec 1b be b6 01 Constraint.php.....H.U..........
2400 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 65 2f 4c ......7...src/Composer/Package/L
2420 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 2e 70 68 inkConstraint/MultiConstraint.ph
2440 70 67 04 00 00 d8 48 19 55 67 04 00 00 73 15 33 06 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 pg....H.Ug...s.3.........9...src
2460 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 69 6e 74 /Composer/Package/LinkConstraint
2480 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 d8 48 19 55 c9 08 /VersionConstraint.php.....H.U..
24a0 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 72 2f 50 ..y?..........:...src/Composer/P
24c0 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 63 43 6f ackage/LinkConstraint/SpecificCo
24e0 6e 73 74 72 61 69 6e 74 2e 70 68 70 70 02 00 00 d8 48 19 55 70 02 00 00 5f 84 88 59 b6 01 00 00 nstraint.phpp....H.Up..._..Y....
2500 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 4c 69 6e ....?...src/Composer/Package/Lin
2520 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 65 72 66 kConstraint/LinkConstraintInterf
2540 61 63 65 2e 70 68 70 15 01 00 00 d8 48 19 55 15 01 00 00 e5 fe 87 a2 b6 01 00 00 00 00 00 00 16 ace.php.....H.U.................
2560 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 2a 10 00 00 d8 48 19 ...src/Composer/Cache.php*....H.
2580 55 2a 10 00 00 96 75 9e c1 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U*....u..........3...src/Compose
25a0 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 74 65 72 r/DependencyResolver/PolicyInter
25c0 66 61 63 65 2e 70 68 70 91 01 00 00 d8 48 19 55 91 01 00 00 42 18 9f b6 b6 01 00 00 00 00 00 00 face.php.....H.U....B...........
25e0 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 73 6f 6c +...src/Composer/DependencyResol
2600 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 25 0a 00 00 d8 48 19 55 25 0a 00 00 39 7a 09 0e b6 ver/RuleSet.php%....H.U%...9z...
2620 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 64 65 6e .......6...src/Composer/Dependen
2640 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 2e 70 68 cyResolver/SolverBugException.ph
2660 70 98 01 00 00 d8 48 19 55 98 01 00 00 7f 22 71 4e b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 p.....H.U....."qN........1...src
2680 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 44 65 66 /Composer/DependencyResolver/Def
26a0 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 1b 17 00 00 d8 48 19 55 1b 17 00 00 89 16 26 97 b6 01 aultPolicy.php.....H.U......&...
26c0 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 65 6e 63 ......-...src/Composer/Dependenc
26e0 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 d8 48 19 55 51 yResolver/Decisions.phpQ....H.UQ
2700 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 65 72 2f ...?..$........1...src/Composer/
2720 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 6f 64 65 DependencyResolver/RuleWatchNode
2740 2e 70 68 70 e7 03 00 00 d8 48 19 55 e7 03 00 00 97 de 12 c8 b6 01 00 00 00 00 00 00 3b 00 00 00 .php.....H.U................;...
2760 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/
2780 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 00 00 d8 SolverProblemsException.php%....
27a0 48 19 55 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 6d 70 6f H.U%...T..P......../...src/Compo
27c0 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 63 74 69 ser/DependencyResolver/Transacti
27e0 6f 6e 2e 70 68 70 d4 13 00 00 d8 48 19 55 d4 13 00 00 a0 33 f4 1b b6 01 00 00 00 00 00 00 40 00 on.php.....H.U.....3..........@.
2800 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
2820 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 6e 2e 70 r/Operation/UninstallOperation.p
2840 68 70 49 02 00 00 d8 48 19 55 49 02 00 00 46 fb c2 c9 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 hpI....H.UI...F...........=...sr
2860 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 70 c/Composer/DependencyResolver/Op
2880 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 00 00 d8 eration/UpdateOperation.phph....
28a0 48 19 55 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 6d 70 6f H.Uh....S.]........I...src/Compo
28c0 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e ser/DependencyResolver/Operation
28e0 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 70 68 70 /MarkAliasInstalledOperation.php
2900 d0 02 00 00 d8 48 19 55 d0 02 00 00 78 55 5a 61 b6 01 00 00 00 00 00 00 3e 00 00 00 73 72 63 2f .....H.U....xUZa........>...src/
2920 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 70 65 72 Composer/DependencyResolver/Oper
2940 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 00 d8 48 ation/InstallOperation.phpC....H
2960 19 55 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 70 6f 73 .UC....\.*........=...src/Compos
2980 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f er/DependencyResolver/Operation/
29a0 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 eb 01 00 00 d8 48 19 55 eb 01 00 00 c4 SolverOperation.php.....H.U.....
29c0 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 65 70 65 ...........K...src/Composer/Depe
29e0 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 41 6c 69 ndencyResolver/Operation/MarkAli
2a00 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 00 d8 48 asUninstalledOperation.php.....H
2a20 19 55 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 70 6f 73 .U...._i..........@...src/Compos
2a40 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f er/DependencyResolver/Operation/
2a60 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 d8 48 19 55 d3 00 OperationInterface.php.....H.U..
2a80 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 72 2f 44 ....&.........(...src/Composer/D
2aa0 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 27 22 00 00 d8 48 ependencyResolver/Pool.php'"...H
2ac0 19 55 27 22 00 00 d8 9b 1d 78 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .U'".....x........(...src/Compos
2ae0 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 70 10 16 er/DependencyResolver/Rule.php..
2b00 00 00 d8 48 19 55 10 16 00 00 c1 0e 5b 94 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f ...H.U......[.........4...src/Co
2b20 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 mposer/DependencyResolver/RuleSe
2b40 74 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 5d 1b 00 00 d8 48 19 55 5d 1b 00 00 34 93 d1 39 b6 01 tGenerator.php]....H.U]...4..9..
2b60 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 65 6e 63 ....../...src/Composer/Dependenc
2b80 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 d8 48 19 yResolver/DebugSolver.php.....H.
2ba0 55 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 6f 73 65 U................3...src/Compose
2bc0 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 74 65 72 r/DependencyResolver/RuleSetIter
2be0 61 74 6f 72 2e 70 68 70 14 06 00 00 d8 48 19 55 14 06 00 00 7d f5 c7 f9 b6 01 00 00 00 00 00 00 ator.php.....H.U....}...........
2c00 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 73 6f 6c 2...src/Composer/DependencyResol
2c20 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 d8 48 19 55 69 01 ver/RuleWatchChain.phpi....H.Ui.
2c40 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 72 2f 44 ..h..,........*...src/Composer/D
2c60 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 09 37 00 00 ependencyResolver/Solver.php.7..
2c80 d8 48 19 55 09 37 00 00 26 14 84 b0 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 .H.U.7..&...........+...src/Comp
2ca0 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 73 74 2e oser/DependencyResolver/Request.
2cc0 70 68 70 cc 04 00 00 d8 48 19 55 cc 04 00 00 99 a6 f2 e4 b6 01 00 00 00 00 00 00 2b 00 00 00 73 php.....H.U................+...s
2ce0 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 50 rc/Composer/DependencyResolver/P
2d00 72 6f 62 6c 65 6d 2e 70 68 70 17 14 00 00 d8 48 19 55 17 14 00 00 c8 20 53 90 b6 01 00 00 00 00 roblem.php.....H.U......S.......
2d20 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 73 ..2...src/Composer/DependencyRes
2d40 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 2e 70 68 70 dc 06 00 00 d8 48 19 55 olver/RuleWatchGraph.php.....H.U
2d60 dc 06 00 00 89 03 0f 38 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .......8........-...src/Composer
2d80 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 2e 70 68 /Config/ConfigSourceInterface.ph
2da0 70 ae 01 00 00 d8 48 19 55 ae 01 00 00 36 4a 5b aa b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 p.....H.U....6J[.........(...src
2dc0 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 75 72 63 /Composer/Config/JsonConfigSourc
2de0 65 2e 70 68 70 7d 0c 00 00 d8 48 19 55 7d 0c 00 00 0f e8 c7 20 b6 01 00 00 00 00 00 00 24 00 00 e.php}....H.U}...............$..
2e00 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 65 6e 74 .src/Composer/Plugin/PluginEvent
2e20 73 2e 70 68 70 a4 00 00 00 d8 48 19 55 a4 00 00 00 30 ef de 58 b6 01 00 00 00 00 00 00 24 00 00 s.php.....H.U....0..X........$..
2e40 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 76 65 6e .src/Composer/Plugin/CommandEven
2e60 74 2e 70 68 70 e2 02 00 00 d8 48 19 55 e2 02 00 00 b3 c6 c7 57 b6 01 00 00 00 00 00 00 2c 00 00 t.php.....H.U.......W........,..
2e80 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 6f 77 6e .src/Composer/Plugin/PreFileDown
2ea0 6c 6f 61 64 45 76 65 6e 74 2e 70 68 70 60 02 00 00 d8 48 19 55 60 02 00 00 00 39 2d ce b6 01 00 loadEvent.php`....H.U`....9-....
2ec0 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 50 6c 75 .....'...src/Composer/Plugin/Plu
2ee0 67 69 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 f4 00 00 00 d8 48 19 55 f4 00 00 00 0c 31 89 25 ginInterface.php.....H.U.....1.%
2f00 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 69 6e 2f ........%...src/Composer/Plugin/
2f20 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 2e 70 68 70 76 17 00 00 d8 48 19 55 76 17 00 00 9a 55 9d PluginManager.phpv....H.Uv....U.
2f40 69 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 74 6f 72 i............src/Composer/Factor
2f60 79 2e 70 68 70 57 2d 00 00 d8 48 19 55 57 2d 00 00 85 e6 25 5f b6 01 00 00 00 00 00 00 20 00 00 y.phpW-...H.UW-....%_...........
2f80 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 2e 70 68 .src/Composer/Util/Filesystem.ph
2fa0 70 34 26 00 00 d8 48 19 55 34 26 00 00 52 6c 97 87 b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 p4&...H.U4&..Rl..............src
2fc0 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 5e 11 00 00 d8 48 19 /Composer/Util/GitHub.php^....H.
2fe0 55 5e 11 00 00 8c f9 06 58 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U^......X........$...src/Compose
3000 72 2f 55 74 69 6c 2f 43 6f 6d 70 6f 73 65 72 4d 69 72 72 6f 72 2e 70 68 70 b1 04 00 00 d8 48 19 r/Util/ComposerMirror.php.....H.
3020 55 b1 04 00 00 ad bd f8 d8 b6 01 00 00 00 00 00 00 1e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U....................src/Compose
3040 72 2f 55 74 69 6c 2f 50 65 72 66 6f 72 63 65 2e 70 68 70 08 33 00 00 d8 48 19 55 08 33 00 00 82 r/Util/Perforce.php.3...H.U.3...
3060 3d 65 2e b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c =e.........%...src/Composer/Util
3080 2f 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2e 70 68 70 ee 06 00 00 d8 48 19 55 ee 06 00 00 /ProcessExecutor.php.....H.U....
30a0 d4 03 05 c0 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 55 74 69 ................src/Composer/Uti
30c0 6c 2f 47 69 74 2e 70 68 70 e2 17 00 00 d8 48 19 55 e2 17 00 00 cb 5a 20 3b b6 01 00 00 00 00 00 l/Git.php.....H.U.....Z.;.......
30e0 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 46 69 6c .&...src/Composer/Util/RemoteFil
3100 65 73 79 73 74 65 6d 2e 70 68 70 6b 25 00 00 d8 48 19 55 6b 25 00 00 ac 95 9c 08 b6 01 00 00 00 esystem.phpk%...H.Uk%...........
3120 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 61 6d 43 ...*...src/Composer/Util/StreamC
3140 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 2e 70 68 70 e2 0c 00 00 d8 48 19 55 e2 0c 00 00 1b d0 0b ontextFactory.php.....H.U.......
3160 42 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 43 B........%...src/Composer/Util/C
3180 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 32 0e 00 00 d8 48 19 55 32 0e 00 00 f6 13 onfigValidator.php2....H.U2.....
31a0 37 2e 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 69 6c 2f 7........."...src/Composer/Util/
31c0 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 14 02 00 00 d8 48 19 55 14 02 00 00 b4 40 85 e6 ErrorHandler.php.....H.U.....@..
31e0 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 41 75 ............src/Composer/Util/Au
3200 74 68 48 65 6c 70 65 72 2e 70 68 70 cc 03 00 00 d8 48 19 55 cc 03 00 00 9c bc 8d c0 b6 01 00 00 thHelper.php.....H.U............
3220 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 2f 53 70 64 78 4c 69 ....+...src/Composer/Util/SpdxLi
3240 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 2e 70 68 70 36 0a 00 00 d8 48 19 55 36 0a 00 00 c4 censeIdentifier.php6....H.U6....
3260 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 65 72 2f 55 74 69 6c 6.o........$...src/Composer/Util
3280 2f 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 2e 70 68 70 be 06 00 00 d8 48 19 55 be 06 00 00 5a /NoProxyPattern.php.....H.U....Z
32a0 2b b0 6d 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 55 74 69 6c +.m............src/Composer/Util
32c0 2f 53 76 6e 2e 70 68 70 47 11 00 00 d8 48 19 55 47 11 00 00 04 18 44 a7 b6 01 00 00 00 00 00 00 /Svn.phpG....H.UG.....D.........
32e0 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 2e 70 68 70 29 09 00 ....src/Composer/Composer.php)..
3300 00 d8 48 19 55 29 09 00 00 17 c5 01 60 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d ..H.U)......`........%...src/Com
3320 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 72 2e 70 68 70 a1 27 poser/Json/JsonManipulator.php.'
3340 00 00 d8 48 19 55 a1 27 00 00 ec df e6 6c b6 01 00 00 00 00 00 00 1e 00 00 00 73 72 63 2f 43 6f ...H.U.'.....l............src/Co
3360 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 69 6c 65 2e 70 68 70 12 13 00 00 d8 48 19 55 mposer/Json/JsonFile.php.....H.U
3380 12 13 00 00 6f f6 85 c1 b6 01 00 00 00 00 00 00 23 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....o...........#...src/Composer
33a0 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 07 06 00 00 d8 48 19 55 07 /Json/JsonFormatter.php.....H.U.
33c0 06 00 00 63 96 5d 59 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 ...c.]Y........-...src/Composer/
33e0 4a 73 6f 6e 2f 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 Json/JsonValidationException.php
3400 5c 01 00 00 d8 48 19 55 5c 01 00 00 2e 58 f3 dc b6 01 00 00 00 00 00 00 17 00 00 00 73 72 63 2f \....H.U\....X..............src/
3420 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2e 70 68 70 d6 17 00 00 d8 48 19 55 d6 17 00 00 17 Composer/Config.php.....H.U.....
3440 37 e5 f4 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e 7..........9...src/Composer/Even
3460 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 tDispatcher/EventSubscriberInter
3480 66 61 63 65 2e 70 68 70 a9 00 00 00 d8 48 19 55 a9 00 00 00 68 b7 01 30 b6 01 00 00 00 00 00 00 face.php.....H.U....h..0........
34a0 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 &...src/Composer/EventDispatcher
34c0 2f 45 76 65 6e 74 2e 70 68 70 a0 02 00 00 d8 48 19 55 a0 02 00 00 b1 99 6a ef b6 01 00 00 00 00 /Event.php.....H.U......j.......
34e0 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 ..0...src/Composer/EventDispatch
3500 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2e 70 68 70 9a 1b 00 00 d8 48 19 55 9a 1b er/EventDispatcher.php.....H.U..
3520 00 00 06 57 03 18 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 53 ...W..............src/Composer/S
3540 63 72 69 70 74 2f 45 76 65 6e 74 2e 70 68 70 b5 02 00 00 d8 48 19 55 b5 02 00 00 6c 74 a6 4d b6 cript/Event.php.....H.U....lt.M.
3560 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 53 .......$...src/Composer/Script/S
3580 63 72 69 70 74 45 76 65 6e 74 73 2e 70 68 70 50 04 00 00 d8 48 19 55 50 04 00 00 00 ec 68 51 b6 criptEvents.phpP....H.UP.....hQ.
35a0 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 43 .......$...src/Composer/Script/C
35c0 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 57 00 00 00 d8 48 19 55 57 00 00 00 a3 56 5a 74 b6 ommandEvent.phpW....H.UW....VZt.
35e0 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 50 .......$...src/Composer/Script/P
3600 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 68 70 9c 00 00 00 d8 48 19 55 9c 00 00 00 a7 ff c9 0d b6 ackageEvent.php.....H.U.........
3620 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 .......(...src/Composer/Installe
3640 72 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 73 2e 70 68 70 b8 01 00 00 d8 48 19 55 b8 01 00 00 64 r/PackageEvents.php.....H.U....d
3660 62 d8 73 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 49 6e 73 74 b.s........)...src/Composer/Inst
3680 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 2e 70 68 70 0e 06 00 00 d8 48 19 55 aller/InstallerEvent.php.....H.U
36a0 0e 06 00 00 6c d4 7a 69 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....l.zi........(...src/Composer
36c0 2f 49 6e 73 74 61 6c 6c 65 72 2f 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 2b 05 00 00 /Installer/NoopInstaller.php+...
36e0 d8 48 19 55 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 .H.U+.....M}......../...src/Comp
3700 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c oser/Installer/MetapackageInstal
3720 6c 65 72 2e 70 68 70 9c 04 00 00 d8 48 19 55 9c 04 00 00 c6 12 c5 21 b6 01 00 00 00 00 00 00 28 ler.php.....H.U.......!........(
3740 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 65 61 72 49 6e ...src/Composer/Installer/PearIn
3760 73 74 61 6c 6c 65 72 2e 70 68 70 56 11 00 00 d8 48 19 55 56 11 00 00 9d 7a f0 01 b6 01 00 00 00 staller.phpV....H.UV....z.......
3780 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 72 ...+...src/Composer/Installer/Pr
37a0 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 1d 06 00 00 d8 48 19 55 1d 06 00 00 2a 30 ojectInstaller.php.....H.U....*0
37c0 40 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 @P........+...src/Composer/Insta
37e0 6c 6c 65 72 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 88 1c 00 00 d8 48 19 ller/LibraryInstaller.php.....H.
3800 55 88 1c 00 00 0a 6e 42 86 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U.....nB.............src/Compose
3820 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2e r/Installer/InstallationManager.
3840 70 68 70 40 14 00 00 d8 48 19 55 40 14 00 00 9b f6 ab 03 b6 01 00 00 00 00 00 00 2a 00 00 00 73 php@....H.U@...............*...s
3860 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 45 rc/Composer/Installer/InstallerE
3880 76 65 6e 74 73 2e 70 68 70 de 00 00 00 d8 48 19 55 de 00 00 00 ec 9f 40 47 b6 01 00 00 00 00 00 vents.php.....H.U......@G.......
38a0 00 2a 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 6c 75 67 .*...src/Composer/Installer/Plug
38c0 69 6e 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 4a 06 00 00 d8 48 19 55 4a 06 00 00 ab 10 e8 56 b6 inInstaller.phpJ....H.UJ......V.
38e0 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 .......-...src/Composer/Installe
3900 72 2f 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c5 02 00 00 d8 48 19 55 r/InstallerInterface.php.....H.U
3920 c5 02 00 00 48 53 93 a1 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....HS..........'...src/Composer
3940 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 68 70 89 03 00 00 d8 /Installer/PackageEvent.php.....
3960 48 19 55 89 03 00 00 02 91 3a a0 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f H.U......:.........$...src/Compo
3980 73 65 72 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 18 22 00 00 d8 ser/Console/Application.php."...
39a0 48 19 55 18 22 00 00 94 4c 54 dc b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f H.U."...LT.........,...src/Compo
39c0 73 65 72 2f 43 6f 6e 73 6f 6c 65 2f 48 74 6d 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e ser/Console/HtmlOutputFormatter.
39e0 70 68 70 ce 05 00 00 d8 48 19 55 ce 05 00 00 e0 b9 9f 84 b6 01 00 00 00 00 00 00 2b 00 00 00 73 php.....H.U................+...s
3a00 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 41 75 74 6f 6c 6f 61 64 47 65 6e rc/Composer/Autoload/AutoloadGen
3a20 65 72 61 74 6f 72 2e 70 68 70 5a 45 00 00 d8 48 19 55 5a 45 00 00 a3 dc a7 98 b6 01 00 00 00 00 erator.phpZE...H.UZE............
3a40 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 ..+...src/Composer/Autoload/Clas
3a60 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 0e 0f 00 00 d8 48 19 55 0e 0f 00 00 f9 6d 49 sMapGenerator.php.....H.U.....mI
3a80 dc 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 6e 73 74 61 6c .............src/Composer/Instal
3aa0 6c 65 72 2e 70 68 70 85 75 00 00 d8 48 19 55 85 75 00 00 24 9a 09 cf b6 01 00 00 00 00 00 00 25 ler.php.u...H.U.u..$...........%
3ac0 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4c 6f ...src/Composer/Autoload/ClassLo
3ae0 61 64 65 72 2e 70 68 70 94 30 00 00 d8 48 19 55 94 30 00 00 b8 4c 68 a6 b6 01 00 00 00 00 00 00 ader.php.0...H.U.0...Lh.........
3b00 18 00 00 00 72 65 73 2f 73 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 44 10 00 00 ....res/spdx-identifier.jsonD...
3b20 d8 48 19 55 44 10 00 00 2a 4f 69 f2 b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 63 6f 6d 70 .H.UD...*Oi.............res/comp
3b40 6f 73 65 72 2d 73 63 68 65 6d 61 2e 6a 73 6f 6e c1 51 00 00 d8 48 19 55 c1 51 00 00 90 8c b8 da oser-schema.json.Q...H.U.Q......
3b60 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 68 69 64 64 ............src/Composer/IO/hidd
3b80 65 6e 69 6e 70 75 74 2e 65 78 65 00 24 00 00 d8 48 19 55 00 24 00 00 95 8d a5 76 b6 01 00 00 00 eninput.exe.$...H.U.$.....v.....
3ba0 00 00 00 3f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 ...?...vendor/symfony/process/Sy
3bc0 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 68 70 50 72 6f 63 65 mfony/Component/Process/PhpProce
3be0 73 73 2e 70 68 70 d7 02 00 00 d8 48 19 55 d7 02 00 00 05 8a 80 ab b6 01 00 00 00 00 00 00 45 00 ss.php.....H.U................E.
3c00 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
3c20 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e /Component/Process/ExecutableFin
3c40 64 65 72 2e 70 68 70 7e 04 00 00 d8 48 19 55 7e 04 00 00 06 2b 85 1f b6 01 00 00 00 00 00 00 3c der.php~....H.U~....+..........<
3c60 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e ...vendor/symfony/process/Symfon
3c80 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 dc y/Component/Process/Process.php.
3ca0 4e 00 00 d8 48 19 55 dc 4e 00 00 85 34 41 d4 b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f N...H.U.N...4A.........C...vendo
3cc0 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 6f 6e r/symfony/process/Symfony/Compon
3ce0 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 01 0b ent/Process/ProcessBuilder.php..
3d00 00 00 d8 48 19 55 01 0b 00 00 8f 01 ef 79 b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 ...H.U.......y........A...vendor
3d20 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 /symfony/process/Symfony/Compone
3d40 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 55 74 69 6c 73 2e 70 68 70 8c 05 00 00 d8 nt/Process/ProcessUtils.php.....
3d60 48 19 55 8c 05 00 00 c8 62 dd 76 b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 H.U.....b.v........W...vendor/sy
3d80 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 2f mfony/process/Symfony/Component/
3da0 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 54 69 6d 65 64 4f 75 Process/Exception/ProcessTimedOu
3dc0 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 1f 04 00 00 d8 48 19 55 1f 04 00 00 2e 09 c3 e1 b6 01 tException.php.....H.U..........
3de0 00 00 00 00 00 00 51 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 ......Q...vendor/symfony/process
3e00 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
3e20 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 66 00 00 00 d8 tion/ExceptionInterface.phpf....
3e40 48 19 55 66 00 00 00 5d f6 3e 54 b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 6e 64 6f 72 2f 73 79 H.Uf...].>T........O...vendor/sy
3e60 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 2f mfony/process/Symfony/Component/
3e80 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 Process/Exception/RuntimeExcepti
3ea0 6f 6e 2e 70 68 70 98 00 00 00 d8 48 19 55 98 00 00 00 a2 1b d8 3a b6 01 00 00 00 00 00 00 4d 00 on.php.....H.U.......:........M.
3ec0 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
3ee0 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 4c 6f 67 /Component/Process/Exception/Log
3f00 69 63 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 94 00 00 00 d8 48 19 55 94 00 00 00 20 b3 e3 f1 b6 icException.php.....H.U.........
3f20 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 .......U...vendor/symfony/proces
3f40 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 45 78 63 65 s/Symfony/Component/Process/Exce
3f60 70 74 69 6f 6e 2f 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 ption/ProcessFailedException.php
3f80 3c 03 00 00 d8 48 19 55 3c 03 00 00 22 77 db 6e b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 <....H.U<..."w.n........W...vend
3fa0 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 6f or/symfony/process/Symfony/Compo
3fc0 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 nent/Process/Exception/InvalidAr
3fe0 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 a8 00 00 00 d8 48 19 55 a8 00 00 00 d0 gumentException.php.....H.U.....
4000 c0 2b 5f b6 01 00 00 00 00 00 00 38 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 .+_........8...vendor/symfony/pr
4020 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/
4040 4c 49 43 45 4e 53 45 29 04 00 00 d8 48 19 55 29 04 00 00 eb 08 26 95 b6 01 00 00 00 00 00 00 48 LICENSE)....H.U).....&.........H
4060 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e ...vendor/symfony/process/Symfon
4080 79 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 y/Component/Process/PhpExecutabl
40a0 65 46 69 6e 64 65 72 2e 70 68 70 14 04 00 00 d8 48 19 55 14 04 00 00 fb d4 4d 3e b6 01 00 00 00 eFinder.php.....H.U......M>.....
40c0 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 ...I...vendor/symfony/process/Sy
40e0 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 69 70 65 73 2f 50 69 mfony/Component/Process/Pipes/Pi
4100 70 65 73 49 6e 74 65 72 66 61 63 65 2e 70 68 70 44 01 00 00 d8 48 19 55 44 01 00 00 76 d8 ee a1 pesInterface.phpD....H.UD...v...
4120 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 ........H...vendor/symfony/proce
4140 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 69 70 ss/Symfony/Component/Process/Pip
4160 65 73 2f 41 62 73 74 72 61 63 74 50 69 70 65 73 2e 70 68 70 00 03 00 00 d8 48 19 55 00 03 00 00 es/AbstractPipes.php.....H.U....
4180 98 7c a5 be b6 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 70 .|..........G...vendor/symfony/p
41a0 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 rocess/Symfony/Component/Process
41c0 2f 50 69 70 65 73 2f 57 69 6e 64 6f 77 73 50 69 70 65 73 2e 70 68 70 bd 0e 00 00 d8 48 19 55 bd /Pipes/WindowsPipes.php.....H.U.
41e0 0e 00 00 00 2e 58 a3 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 .....X.........D...vendor/symfon
4200 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 6f 63 y/process/Symfony/Component/Proc
4220 65 73 73 2f 50 69 70 65 73 2f 55 6e 69 78 50 69 70 65 73 2e 70 68 70 a4 0b 00 00 d8 48 19 55 a4 ess/Pipes/UnixPipes.php.....H.U.
4240 0b 00 00 f8 01 55 74 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e .....Ut........H...vendor/symfon
4260 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
4280 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 43 6f 6d 6d 61 6e 64 2e 70 68 70 36 07 00 00 d8 ole/Command/HelpCommand.php6....
42a0 48 19 55 36 07 00 00 23 af be 7d b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 H.U6...#..}........D...vendor/sy
42c0 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/
42e0 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 f0 1b 00 00 d8 Console/Command/Command.php.....
4300 48 19 55 f0 1b 00 00 70 1e c5 13 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 H.U....p...........H...vendor/sy
4320 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/
4340 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 4c 69 73 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 b3 Console/Command/ListCommand.php.
4360 07 00 00 d8 48 19 55 b3 07 00 00 56 03 d3 e9 b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f ....H.U....V...........M...vendo
4380 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
43a0 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 72 2f 41 70 70 6c 69 63 61 74 69 6f 6e 54 65 ent/Console/Tester/ApplicationTe
43c0 73 74 65 72 2e 70 68 70 d4 05 00 00 d8 48 19 55 d4 05 00 00 ac ec a4 64 b6 01 00 00 00 00 00 00 ster.php.....H.U.......d........
43e0 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f I...vendor/symfony/console/Symfo
4400 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 43 6f 6d 6d ny/Component/Console/Tester/Comm
4420 61 6e 64 54 65 73 74 65 72 2e 70 68 70 90 06 00 00 d8 48 19 55 90 06 00 00 48 bb e2 60 b6 01 00 andTester.php.....H.U....H..`...
4440 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f .....X...vendor/symfony/console/
4460 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
4480 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 2e 70 68 ter/OutputFormatterStyleStack.ph
44a0 70 08 05 00 00 d8 48 19 55 08 05 00 00 79 08 49 27 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e p.....H.U....y.I'........S...ven
44c0 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
44e0 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f onent/Console/Formatter/OutputFo
4500 72 6d 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 b7 0f 00 00 d8 48 19 55 b7 0f 00 00 c7 00 c5 4b rmatterStyle.php.....H.U.......K
4520 b6 01 00 00 00 00 00 00 5c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........\...vendor/symfony/conso
4540 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 le/Symfony/Component/Console/For
4560 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 matter/OutputFormatterStyleInter
4580 66 61 63 65 2e 70 68 70 8e 01 00 00 d8 48 19 55 8e 01 00 00 f6 eb c4 3d b6 01 00 00 00 00 00 00 face.php.....H.U.......=........
45a0 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 6f N...vendor/symfony/console/Symfo
45c0 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f ny/Component/Console/Formatter/O
45e0 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 66 0c 00 00 d8 48 19 55 66 0c 00 00 4b 64 utputFormatter.phpf....H.Uf...Kd
4600 ff 2d 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 63 6f 6e .-........W...vendor/symfony/con
4620 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 sole/Symfony/Component/Console/F
4640 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 ormatter/OutputFormatterInterfac
4660 65 2e 70 68 70 98 01 00 00 d8 48 19 55 98 01 00 00 33 6c 7e b4 b6 01 00 00 00 00 00 00 40 00 00 e.php.....H.U....3l~.........@..
4680 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/
46a0 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 Component/Console/Application.ph
46c0 70 b6 52 00 00 d8 48 19 55 b6 52 00 00 94 2e f6 28 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e p.R...H.U.R.....(........H...ven
46e0 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
4700 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 41 72 67 75 6d 65 6e onent/Console/Input/InputArgumen
4720 74 2e 70 68 70 9e 05 00 00 d8 48 19 55 9e 05 00 00 4b 5d ec 69 b6 01 00 00 00 00 00 00 40 00 00 t.php.....H.U....K].i........@..
4740 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/
4760 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 2e 70 68 Component/Console/Input/Input.ph
4780 70 12 0a 00 00 d8 48 19 55 12 0a 00 00 c7 fd 54 05 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e p.....H.U......T.........F...ven
47a0 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
47c0 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 53 74 72 69 6e 67 49 6e 70 75 74 2e onent/Console/Input/StringInput.
47e0 70 68 70 8b 05 00 00 d8 48 19 55 8b 05 00 00 86 75 6e fd b6 01 00 00 00 00 00 00 46 00 00 00 76 php.....H.U.....un.........F...v
4800 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
4820 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 4f 70 74 69 6f mponent/Console/Input/InputOptio
4840 6e 2e 70 68 70 ab 0b 00 00 d8 48 19 55 ab 0b 00 00 ea 86 ae bd b6 01 00 00 00 00 00 00 44 00 00 n.php.....H.U................D..
4860 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/
4880 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 72 67 76 49 6e 70 75 Component/Console/Input/ArgvInpu
48a0 74 2e 70 68 70 d9 13 00 00 d8 48 19 55 d9 13 00 00 cb 16 6b 45 b6 01 00 00 00 00 00 00 49 00 00 t.php.....H.U......kE........I..
48c0 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/
48e0 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 49 6e 74 Component/Console/Input/InputInt
4900 65 72 66 61 63 65 2e 70 68 70 20 03 00 00 d8 48 19 55 20 03 00 00 39 94 f8 c7 b6 01 00 00 00 00 erface.php.....H.U....9.........
4920 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 79 6d ..E...vendor/symfony/console/Sym
4940 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 72 72 fony/Component/Console/Input/Arr
4960 61 79 49 6e 70 75 74 2e 70 68 70 fb 09 00 00 d8 48 19 55 fb 09 00 00 e2 f6 a5 70 b6 01 00 00 00 ayInput.php.....H.U.......p.....
4980 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...N...vendor/symfony/console/Sy
49a0 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e mfony/Component/Console/Input/In
49c0 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 9a 00 00 00 d8 48 19 55 9a 00 00 putAwareInterface.php.....H.U...
49e0 00 87 6a 54 9f b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ..jT.........J...vendor/symfony/
4a00 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
4a20 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 2e 70 68 70 0b 17 00 00 d8 e/Input/InputDefinition.php.....
4a40 48 19 55 0b 17 00 00 98 a3 4a 4d b6 01 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 H.U......JM........:...vendor/sy
4a60 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/
4a80 43 6f 6e 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 2e 0f 00 00 d8 48 19 55 2e 0f 00 00 fe c9 8e Console/Shell.php.....H.U.......
4aa0 87 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 63 6f 6e 73 .........L...vendor/symfony/cons
4ac0 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 51 75 ole/Symfony/Component/Console/Qu
4ae0 65 73 74 69 6f 6e 2f 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 2e 70 68 70 66 07 00 00 d8 48 19 estion/ChoiceQuestion.phpf....H.
4b00 55 66 07 00 00 d4 1f 12 68 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 Uf......h........R...vendor/symf
4b20 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
4b40 6e 73 6f 6c 65 2f 51 75 65 73 74 69 6f 6e 2f 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 51 75 65 73 74 nsole/Question/ConfirmationQuest
4b60 69 6f 6e 2e 70 68 70 4b 02 00 00 d8 48 19 55 4b 02 00 00 f5 c3 54 c8 b6 01 00 00 00 00 00 00 46 ion.phpK....H.UK.....T.........F
4b80 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
4ba0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 51 75 65 73 74 69 6f 6e 2f 51 75 65 y/Component/Console/Question/Que
4bc0 73 74 69 6f 6e 2e 70 68 70 ae 08 00 00 d8 48 19 55 ae 08 00 00 2e 65 38 d6 b6 01 00 00 00 00 00 stion.php.....H.U.....e8........
4be0 00 38 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 .8...vendor/symfony/console/Symf
4c00 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4c 49 43 45 4e 53 45 29 04 00 ony/Component/Console/LICENSE)..
4c20 00 d8 48 19 55 29 04 00 00 eb 08 26 95 b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f ..H.U).....&.........B...vendor/
4c40 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
4c60 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 d8 t/Console/Output/Output.php.....
4c80 48 19 55 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 H.U......._........F...vendor/sy
4ca0 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/
4cc0 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 bf 03 00 Console/Output/NullOutput.php...
4ce0 00 d8 48 19 55 bf 03 00 00 60 35 45 cb b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f ..H.U....`5E.........R...vendor/
4d00 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
4d20 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
4d40 74 65 72 66 61 63 65 2e 70 68 70 e5 00 00 00 d8 48 19 55 e5 00 00 00 72 4e f4 00 b6 01 00 00 00 terface.php.....H.U....rN.......
4d60 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
4d80 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
4da0 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 a2 04 00 00 d8 48 19 55 a2 04 00 00 1a 06 fc 30 b6 treamOutput.php.....H.U.......0.
4dc0 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
4de0 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
4e00 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 d8 48 19 55 5f 01 00 ut/BufferedOutput.php_....H.U_..
4e20 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/
4e40 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
4e60 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...
4e80 d8 48 19 55 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 .H.UI......B........I...vendor/s
4ea0 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
4ec0 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
4ee0 70 14 05 00 00 d8 48 19 55 14 05 00 00 6a e5 ac 06 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e p.....H.U....j...........I...ven
4f00 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
4f20 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4c 6f 67 67 65 72 2f 43 6f 6e 73 6f 6c 65 4c 6f 67 67 onent/Console/Logger/ConsoleLogg
4f40 65 72 2e 70 68 70 3b 09 00 00 d8 48 19 55 3b 09 00 00 23 d8 42 7e b6 01 00 00 00 00 00 00 53 00 er.php;....H.U;...#.B~........S.
4f60 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
4f80 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 2f 44 65 /Component/Console/Descriptor/De
4fa0 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 fc 00 00 00 d8 48 19 55 fc 00 00 scriptorInterface.php.....H.U...
4fc0 00 b1 51 07 b5 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 ..Q..........N...vendor/symfony/
4fe0 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
5000 65 2f 44 65 73 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 36 e/Descriptor/TextDescriptor.php6
5020 1a 00 00 d8 48 19 55 36 1a 00 00 aa e0 ed 3b b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f ....H.U6......;........M...vendo
5040 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
5060 65 6e 74 2f 43 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 ent/Console/Descriptor/XmlDescri
5080 70 74 6f 72 2e 70 68 70 a0 1c 00 00 d8 48 19 55 a0 1c 00 00 85 7b ee 6d b6 01 00 00 00 00 00 00 ptor.php.....H.U.....{.m........
50a0 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f R...vendor/symfony/console/Symfo
50c0 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 2f ny/Component/Console/Descriptor/
50e0 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 0a 0e 00 00 d8 48 19 55 0a 0e MarkdownDescriptor.php.....H.U..
5100 00 00 00 4c db 2a 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 ...L.*........V...vendor/symfony
5120 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
5140 6c 65 2f 44 65 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 le/Descriptor/ApplicationDescrip
5160 74 69 6f 6e 2e 70 68 70 f9 07 00 00 d8 48 19 55 f9 07 00 00 89 3e 10 4f b6 01 00 00 00 00 00 00 tion.php.....H.U.....>.O........
5180 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 65 2f 53 79 6d 66 6f J...vendor/symfony/console/Symfo
51a0 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 2f ny/Component/Console/Descriptor/
51c0 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 5c 07 00 00 d8 48 19 55 5c 07 00 00 57 4a 5b ed b6 01 Descriptor.php\....H.U\...WJ[...
51e0 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......N...vendor/symfony/console
5200 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 63 72 /Symfony/Component/Console/Descr
5220 69 70 74 6f 72 2f 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 32 0d 00 00 d8 48 19 55 iptor/JsonDescriptor.php2....H.U
5240 32 0d 00 00 86 63 15 61 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 2....c.a........K...vendor/symfo
5260 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
5280 73 6f 6c 65 2f 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 sole/Helper/HelperInterface.php.
52a0 00 00 00 d8 48 19 55 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 ....H.U....=e..........G...vendo
52c0 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
52e0 65 6e 74 2f 43 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 ent/Console/Helper/TableHelper.p
5300 68 70 d8 0a 00 00 d8 48 19 55 d8 0a 00 00 2c 0d 7f a0 b6 01 00 00 00 00 00 00 41 00 00 00 76 65 hp.....H.U....,...........A...ve
5320 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
5340 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 54 61 62 6c 65 2e 70 68 70 0f ponent/Console/Helper/Table.php.
5360 17 00 00 d8 48 19 55 0f 17 00 00 7b 9f 56 82 b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f ....H.U....{.V.........G...vendo
5380 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
53a0 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 50 72 6f 67 72 65 73 73 42 61 72 2e 70 ent/Console/Helper/ProgressBar.p
53c0 68 70 15 24 00 00 d8 48 19 55 15 24 00 00 32 8c 35 4a b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 hp.$...H.U.$..2.5J........L...ve
53e0 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
5400 70 6f 6e 65 6e 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 ponent/Console/Helper/Descriptor
5420 48 65 6c 70 65 72 2e 70 68 70 39 05 00 00 d8 48 19 55 39 05 00 00 fb f9 e4 f0 b6 01 00 00 00 00 Helper.php9....H.U9.............
5440 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..K...vendor/symfony/console/Sym
5460 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 46 6f fony/Component/Console/Helper/Fo
5480 72 6d 61 74 74 65 72 48 65 6c 70 65 72 2e 70 68 70 63 04 00 00 d8 48 19 55 63 04 00 00 93 fd ab rmatterHelper.phpc....H.Uc......
54a0 4e b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 N........P...vendor/symfony/cons
54c0 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
54e0 6c 70 65 72 2f 44 65 62 75 67 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 2e 70 68 70 6d 08 00 lper/DebugFormatterHelper.phpm..
5500 00 d8 48 19 55 6d 08 00 00 f2 af 73 3e b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f ..H.Um.....s>........I...vendor/
5520 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
5540 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 50 72 6f 63 65 73 73 48 65 6c 70 65 72 2e 70 t/Console/Helper/ProcessHelper.p
5560 68 70 e2 08 00 00 d8 48 19 55 e2 08 00 00 7c 7f cc bc b6 01 00 00 00 00 00 00 45 00 00 00 76 65 hp.....H.U....|...........E...ve
5580 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
55a0 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 53 65 74 2e ponent/Console/Helper/HelperSet.
55c0 70 68 70 2f 04 00 00 d8 48 19 55 2f 04 00 00 e2 77 00 64 b6 01 00 00 00 00 00 00 48 00 00 00 76 php/....H.U/....w.d........H...v
55e0 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
5600 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c mponent/Console/Helper/DialogHel
5620 70 65 72 2e 70 68 70 ca 1b 00 00 d8 48 19 55 ca 1b 00 00 6c d5 48 6c b6 01 00 00 00 00 00 00 4a per.php.....H.U....l.Hl........J
5640 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
5660 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 51 75 65 73 74 y/Component/Console/Helper/Quest
5680 69 6f 6e 48 65 6c 70 65 72 2e 70 68 70 10 19 00 00 d8 48 19 55 10 19 00 00 52 0b 1c 8a b6 01 00 ionHelper.php.....H.U....R......
56a0 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 65 2f .....J...vendor/symfony/console/
56c0 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
56e0 2f 54 61 62 6c 65 53 65 70 61 72 61 74 6f 72 2e 70 68 70 5b 00 00 00 d8 48 19 55 5b 00 00 00 4c /TableSeparator.php[....H.U[...L
5700 56 16 a1 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 V..........B...vendor/symfony/co
5720 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/
5740 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 2e 70 68 70 df 06 00 00 d8 48 19 55 df 06 00 00 6f be 01 Helper/Helper.php.....H.U....o..
5760 e3 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 .........J...vendor/symfony/cons
5780 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
57a0 6c 70 65 72 2f 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 2e 70 68 70 83 19 00 00 d8 48 19 55 83 lper/ProgressHelper.php.....H.U.
57c0 19 00 00 93 68 1e 99 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 ....h..........L...vendor/symfon
57e0 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
5800 6f 6c 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 ole/Helper/InputAwareHelper.phpc
5820 01 00 00 d8 48 19 55 63 01 00 00 f1 f8 90 7c b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f ....H.Uc......|........F...vendo
5840 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
5860 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 54 61 62 6c 65 53 74 79 6c 65 2e 70 68 ent/Console/Helper/TableStyle.ph
5880 70 d5 08 00 00 d8 48 19 55 d5 08 00 00 e6 22 f0 f9 b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e p.....H.U....."..........G...ven
58a0 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
58c0 6f 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 45 76 65 6e 74 onent/Console/Event/ConsoleEvent
58e0 2e 70 68 70 c5 02 00 00 d8 48 19 55 c5 02 00 00 d2 78 db 5c b6 01 00 00 00 00 00 00 50 00 00 00 .php.....H.U.....x.\........P...
5900 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 43 vendor/symfony/console/Symfony/C
5920 6f 6d 70 6f 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 omponent/Console/Event/ConsoleTe
5940 72 6d 69 6e 61 74 65 45 76 65 6e 74 2e 70 68 70 7a 02 00 00 d8 48 19 55 7a 02 00 00 b3 2c ee 4c rminateEvent.phpz....H.Uz....,.L
5960 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........P...vendor/symfony/conso
5980 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 45 76 65 le/Symfony/Component/Console/Eve
59a0 6e 74 2f 43 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 nt/ConsoleExceptionEvent.php....
59c0 d8 48 19 55 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 .H.U......2.........N...vendor/s
59e0 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
5a00 2f 43 6f 6e 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 /Console/Event/ConsoleCommandEve
5a20 6e 74 2e 70 68 70 b2 01 00 00 d8 48 19 55 b2 01 00 00 5a 6b 89 32 b6 01 00 00 00 00 00 00 42 00 nt.php.....H.U....Zk.2........B.
5a40 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
5a60 2f 43 6f 6d 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 /Component/Console/ConsoleEvents
5a80 2e 70 68 70 ef 00 00 00 d8 48 19 55 ef 00 00 00 0d d5 48 b8 b6 01 00 00 00 00 00 00 39 00 00 00 .php.....H.U......H.........9...
5aa0 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
5ac0 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 fa 22 00 00 d8 48 19 mponent/Finder/Finder.php."...H.
5ae0 55 fa 22 00 00 67 83 18 1f b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 U."..g...........@...vendor/symf
5b00 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
5b20 64 65 72 2f 53 68 65 6c 6c 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 a3 0a 00 00 d8 48 19 55 a3 0a 00 der/Shell/Command.php.....H.U...
5b40 00 d6 3c ca 54 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 ..<.T........>...vendor/symfony/
5b60 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/
5b80 53 68 65 6c 6c 2f 53 68 65 6c 6c 2e 70 68 70 e9 03 00 00 d8 48 19 55 e9 03 00 00 bf eb db 95 b6 Shell/Shell.php.....H.U.........
5ba0 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 66 69 6e 64 65 72 .......C...vendor/symfony/finder
5bc0 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 70 72 65 73 /Symfony/Component/Finder/Expres
5be0 73 69 6f 6e 2f 52 65 67 65 78 2e 70 68 70 81 0e 00 00 d8 48 19 55 81 0e 00 00 53 37 50 e6 b6 01 sion/Regex.php.....H.U....S7P...
5c00 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 66 69 6e 64 65 72 2f ......B...vendor/symfony/finder/
5c20 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 70 72 65 73 73 Symfony/Component/Finder/Express
5c40 69 6f 6e 2f 47 6c 6f 62 2e 70 68 70 a1 07 00 00 d8 48 19 55 a1 07 00 00 20 20 56 bf b6 01 00 00 ion/Glob.php.....H.U......V.....
5c60 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 ....H...vendor/symfony/finder/Sy
5c80 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
5ca0 6e 2f 45 78 70 72 65 73 73 69 6f 6e 2e 70 68 70 7d 05 00 00 d8 48 19 55 7d 05 00 00 2f b7 63 f0 n/Expression.php}....H.U}.../.c.
5cc0 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........L...vendor/symfony/finde
5ce0 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 70 72 65 r/Symfony/Component/Finder/Expre
5d00 73 73 69 6f 6e 2f 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 3b 01 00 00 d8 48 19 55 ssion/ValueInterface.php;....H.U
5d20 3b 01 00 00 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 ;...............K...vendor/symfo
5d40 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
5d60 65 72 2f 41 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 er/Adapter/AdapterInterface.php.
5d80 03 00 00 d8 48 19 55 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 ....H.U................I...vendo
5da0 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 r/symfony/finder/Symfony/Compone
5dc0 6e 74 2f 46 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 nt/Finder/Adapter/BsdFindAdapter
5de0 2e 70 68 70 7b 06 00 00 d8 48 19 55 7b 06 00 00 51 2c 44 32 b6 01 00 00 00 00 00 00 49 00 00 00 .php{....H.U{...Q,D2........I...
5e00 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
5e20 6d 70 6f 6e 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 mponent/Finder/Adapter/GnuFindAd
5e40 61 70 74 65 72 2e 70 68 70 5e 06 00 00 d8 48 19 55 5e 06 00 00 df 7a 98 72 b6 01 00 00 00 00 00 apter.php^....H.U^....z.r.......
5e60 00 4a 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 .J...vendor/symfony/finder/Symfo
5e80 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 73 74 ny/Component/Finder/Adapter/Abst
5ea0 72 61 63 74 41 64 61 70 74 65 72 2e 70 68 70 a4 0a 00 00 d8 48 19 55 a4 0a 00 00 a2 29 7a 39 b6 ractAdapter.php.....H.U.....)z9.
5ec0 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 6e 64 65 72 .......N...vendor/symfony/finder
5ee0 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 64 61 70 74 65 /Symfony/Component/Finder/Adapte
5f00 72 2f 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 db 18 00 00 d8 48 19 r/AbstractFindAdapter.php.....H.
5f20 55 db 18 00 00 53 f5 54 b4 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 U....S.T.........E...vendor/symf
5f40 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
5f60 64 65 72 2f 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 d8 48 der/Adapter/PhpAdapter.php+....H
5f80 19 55 2b 07 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 .U+...&...........7...vendor/sym
5fa0 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
5fc0 6e 64 65 72 2f 47 6c 6f 62 2e 70 68 70 0d 05 00 00 d8 48 19 55 0d 05 00 00 7a 9d f8 0a b6 01 00 nder/Glob.php.....H.U....z......
5fe0 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 72 2f 53 .....T...vendor/symfony/finder/S
6000 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 6f 72 ymfony/Component/Finder/Iterator
6020 2f 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 f0 01 00 /DepthRangeFilterIterator.php...
6040 00 d8 48 19 55 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 ..H.U.....0..........L...vendor/
6060 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
6080 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f /Finder/Iterator/SortableIterato
60a0 72 2e 70 68 70 de 05 00 00 d8 48 19 55 de 05 00 00 f6 b3 06 25 b6 01 00 00 00 00 00 00 55 00 00 r.php.....H.U.......%........U..
60c0 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
60e0 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 46 69 6c 65 63 6f 6e omponent/Finder/Iterator/Filecon
6100 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 00 d8 48 19 55 23 03 tentFilterIterator.php#....H.U#.
6120 00 00 da 5f 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 ..._V.........M...vendor/symfony
6140 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
6160 2f 49 74 65 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 /Iterator/FilePathsIterator.php.
6180 05 00 00 d8 48 19 55 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 ....H.U.......Q........S...vendo
61a0 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 r/symfony/finder/Symfony/Compone
61c0 6e 74 2f 46 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 nt/Finder/Iterator/SizeRangeFilt
61e0 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 67 02 00 00 d8 48 19 55 67 02 00 00 21 d4 97 e9 b6 01 erIterator.phpg....H.Ug...!.....
6200 00 00 00 00 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 ......Z...vendor/symfony/finder/
6220 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 6f Symfony/Component/Finder/Iterato
6240 72 2f 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 r/ExcludeDirectoryFilterIterator
6260 2e 70 68 70 94 02 00 00 d8 48 19 55 94 02 00 00 22 d6 f3 c1 b6 01 00 00 00 00 00 00 4a 00 00 00 .php.....H.U...."...........J...
6280 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
62a0 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 74 65 72 49 74 mponent/Finder/Iterator/FilterIt
62c0 65 72 61 74 6f 72 2e 70 68 70 86 02 00 00 d8 48 19 55 86 02 00 00 30 a3 be d4 b6 01 00 00 00 00 erator.php.....H.U....0.........
62e0 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 2f 53 79 6d 66 ..V...vendor/symfony/finder/Symf
6300 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 4d 75 ony/Component/Finder/Iterator/Mu
6320 6c 74 69 70 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 ltiplePcreFilterIterator.php....
6340 d8 48 19 55 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 .H.U................P...vendor/s
6360 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 2f ymfony/finder/Symfony/Component/
6380 46 69 6e 64 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 Finder/Iterator/CustomFilterIter
63a0 61 74 6f 72 2e 70 68 70 5d 02 00 00 d8 48 19 55 5d 02 00 00 74 e0 b1 b5 b6 01 00 00 00 00 00 00 ator.php]....H.U]...t...........
63c0 52 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 R...vendor/symfony/finder/Symfon
63e0 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 46 69 6c 65 y/Component/Finder/Iterator/File
6400 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 87 02 00 00 d8 48 19 55 87 02 nameFilterIterator.php.....H.U..
6420 00 00 46 20 92 0b 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 ..F...........S...vendor/symfony
6440 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
6460 2f 49 74 65 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 /Iterator/DateRangeFilterIterato
6480 72 2e 70 68 70 7a 02 00 00 d8 48 19 55 7a 02 00 00 7f 7d 17 a2 b6 01 00 00 00 00 00 00 52 00 00 r.phpz....H.Uz....}..........R..
64a0 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
64c0 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 46 69 6c 65 54 79 70 omponent/Finder/Iterator/FileTyp
64e0 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 d8 48 19 55 5c 02 00 00 70 eFilterIterator.php\....H.U\...p
6500 91 27 98 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 66 69 .'.........V...vendor/symfony/fi
6520 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 nder/Symfony/Component/Finder/It
6540 65 72 61 74 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 erator/RecursiveDirectoryIterato
6560 72 2e 70 68 70 59 06 00 00 d8 48 19 55 59 06 00 00 ea d3 ca dc b6 01 00 00 00 00 00 00 4e 00 00 r.phpY....H.UY...............N..
6580 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
65a0 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 50 61 74 68 46 69 6c omponent/Finder/Iterator/PathFil
65c0 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 b8 02 00 00 d8 48 19 55 b8 02 00 00 45 2a 45 17 b6 terIterator.php.....H.U....E*E..
65e0 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 .......L...vendor/symfony/finder
6600 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 /Symfony/Component/Finder/Compar
6620 61 74 6f 72 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 25 03 00 00 d8 48 19 55 25 ator/DateComparator.php%....H.U%
6640 03 00 00 4c bf 45 c7 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 ...L.E.........N...vendor/symfon
6660 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 65 y/finder/Symfony/Component/Finde
6680 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 r/Comparator/NumberComparator.ph
66a0 70 78 03 00 00 d8 48 19 55 78 03 00 00 02 bd 99 35 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e px....H.Ux......5........H...ven
66c0 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
66e0 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 43 6f 6d 70 61 72 61 74 6f nent/Finder/Comparator/Comparato
6700 72 2e 70 68 70 8c 03 00 00 d8 48 19 55 8c 03 00 00 16 77 fe 54 b6 01 00 00 00 00 00 00 52 00 00 r.php.....H.U.....w.T........R..
6720 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
6740 6f 6d 70 6f 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 omponent/Finder/Exception/Access
6760 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 84 00 00 00 d8 48 19 55 84 00 00 00 bd DeniedException.php.....H.U.....
6780 be 73 9c b6 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 .s.........O...vendor/symfony/fi
67a0 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 45 78 nder/Symfony/Component/Finder/Ex
67c0 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 84 00 ception/ExceptionInterface.php..
67e0 00 00 d8 48 19 55 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 ...H.U.....Gz-........Z...vendor
6800 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e /symfony/finder/Symfony/Componen
6820 74 2f 46 69 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 t/Finder/Exception/OperationNotP
6840 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 8a 00 00 00 d8 48 19 55 8a 00 00 00 ermitedException.php.....H.U....
6860 55 12 38 38 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 U.88........T...vendor/symfony/f
6880 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 45 inder/Symfony/Component/Finder/E
68a0 78 63 65 70 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 xception/AdapterFailureException
68c0 2e 70 68 70 16 02 00 00 d8 48 19 55 16 02 00 00 6d 8c 5f 2c b6 01 00 00 00 00 00 00 59 00 00 00 .php.....H.U....m._,........Y...
68e0 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
6900 6d 70 6f 6e 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 mponent/Finder/Exception/ShellCo
6920 6d 6d 61 6e 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 d8 48 19 mmandFailureException.php$....H.
6940 55 24 02 00 00 43 94 73 d3 b6 01 00 00 00 00 00 00 36 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 U$...C.s.........6...vendor/symf
6960 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
6980 64 65 72 2f 4c 49 43 45 4e 53 45 29 04 00 00 d8 48 19 55 29 04 00 00 eb 08 26 95 b6 01 00 00 00 der/LICENSE)....H.U).....&......
69a0 00 00 00 3e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...>...vendor/symfony/finder/Sym
69c0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 53 70 6c 46 69 6c 65 49 6e 66 fony/Component/Finder/SplFileInf
69e0 6f 2e 70 68 70 fb 02 00 00 d8 48 19 55 fb 02 00 00 91 05 86 36 b6 01 00 00 00 00 00 00 1c 00 00 o.php.....H.U.......6...........
6a00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 4c 49 43 45 4e 53 45 22 04 00 .vendor/seld/jsonlint/LICENSE"..
6a20 00 d8 48 19 55 22 04 00 00 61 83 73 79 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f ..H.U"...a.sy........4...vendor/
6a40 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 74 2f seld/jsonlint/src/Seld/JsonLint/
6a60 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e 00 00 00 d8 48 19 55 3e 00 00 00 ff 71 9f 9f b6 01 00 Undefined.php>....H.U>....q.....
6a80 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 .....5...vendor/seld/jsonlint/sr
6aa0 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4a 73 6f 6e 50 61 72 73 65 72 2e 70 68 70 29 31 c/Seld/JsonLint/JsonParser.php)1
6ac0 00 00 d8 48 19 55 29 31 00 00 3f 35 52 33 b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 ...H.U)1..?5R3........0...vendor
6ae0 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 74 /seld/jsonlint/src/Seld/JsonLint
6b00 2f 4c 65 78 65 72 2e 70 68 70 07 0f 00 00 d8 48 19 55 07 0f 00 00 89 84 6d 21 b6 01 00 00 00 00 /Lexer.php.....H.U......m!......
6b20 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 ..;...vendor/seld/jsonlint/src/S
6b40 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 eld/JsonLint/ParsingException.ph
6b60 70 1e 01 00 00 d8 48 19 55 1e 01 00 00 89 b2 10 f1 b6 01 00 00 00 00 00 00 28 00 00 00 76 65 6e p.....H.U................(...ven
6b80 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 4c 49 dor/justinrainbow/json-schema/LI
6ba0 43 45 4e 53 45 f7 05 00 00 d8 48 19 55 f7 05 00 00 78 de 78 74 b6 01 00 00 00 00 00 00 3f 00 00 CENSE.....H.U....x.xt........?..
6bc0 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d .vendor/justinrainbow/json-schem
6be0 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 52 65 66 52 65 73 6f 6c 76 65 72 2e 70 68 70 a/src/JsonSchema/RefResolver.php
6c00 7c 0a 00 00 d8 48 19 55 7c 0a 00 00 99 26 0d 69 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 |....H.U|....&.i........S...vend
6c20 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 or/justinrainbow/json-schema/src
6c40 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e 65 /JsonSchema/Constraints/Undefine
6c60 64 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 9e 17 00 00 d8 48 19 55 9e 17 00 00 0e ef 08 ae b6 dConstraint.php.....H.U.........
6c80 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f .......P...vendor/justinrainbow/
6ca0 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 json-schema/src/JsonSchema/Const
6cc0 72 61 69 6e 74 73 2f 53 74 72 69 6e 67 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 a9 03 00 00 d8 raints/StringConstraint.php.....
6ce0 48 19 55 a9 03 00 00 6d f2 65 e0 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 6a 75 H.U....m.e.........P...vendor/ju
6d00 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
6d20 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 Schema/Constraints/SchemaConstra
6d40 69 6e 74 2e 70 68 70 20 02 00 00 d8 48 19 55 20 02 00 00 c8 cc d5 e2 b6 01 00 00 00 00 00 00 54 int.php.....H.U................T
6d60 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 ...vendor/justinrainbow/json-sch
6d80 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 ema/src/JsonSchema/Constraints/C
6da0 6f 6c 6c 65 63 74 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 11 09 00 00 d8 48 19 55 11 ollectionConstraint.php.....H.U.
6dc0 09 00 00 bb 7e ab 78 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e ....~.x........S...vendor/justin
6de0 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 rainbow/json-schema/src/JsonSche
6e00 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 ma/Constraints/ConstraintInterfa
6e20 63 65 2e 70 68 70 4e 01 00 00 d8 48 19 55 4e 01 00 00 f8 c6 4d 79 b6 01 00 00 00 00 00 00 4e 00 ce.phpN....H.UN.....My........N.
6e40 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 ..vendor/justinrainbow/json-sche
6e60 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 45 6e ma/src/JsonSchema/Constraints/En
6e80 75 6d 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 fc 01 00 00 d8 48 19 55 fc 01 00 00 70 21 a3 6e umConstraint.php.....H.U....p!.n
6ea0 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 62 6f 77 ........J...vendor/justinrainbow
6ec0 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 /json-schema/src/JsonSchema/Cons
6ee0 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 89 0e 00 00 d8 48 19 55 89 0e traints/Constraint.php.....H.U..
6f00 00 00 21 ca 66 b9 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 ..!.f.........P...vendor/justinr
6f20 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d ainbow/json-schema/src/JsonSchem
6f40 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4e 75 6d 62 65 72 43 6f 6e 73 74 72 61 69 6e 74 2e 70 a/Constraints/NumberConstraint.p
6f60 68 70 b5 08 00 00 d8 48 19 55 b5 08 00 00 96 e8 b8 4c b6 01 00 00 00 00 00 00 50 00 00 00 76 65 hp.....H.U.......L........P...ve
6f80 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 ndor/justinrainbow/json-schema/s
6fa0 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4f 62 6a 65 63 74 rc/JsonSchema/Constraints/Object
6fc0 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 e6 0a 00 00 d8 48 19 55 e6 0a 00 00 7f b7 45 98 b6 01 Constraint.php.....H.U......E...
6fe0 00 00 00 00 00 00 4e 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 ......N...vendor/justinrainbow/j
7000 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 son-schema/src/JsonSchema/Constr
7020 61 69 6e 74 73 2f 54 79 70 65 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 7c 08 00 00 d8 48 19 55 aints/TypeConstraint.php|....H.U
7040 7c 08 00 00 2c 24 a2 db b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 |...,$..........P...vendor/justi
7060 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
7080 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 46 6f 72 6d 61 74 43 6f 6e 73 74 72 61 69 6e 74 ema/Constraints/FormatConstraint
70a0 2e 70 68 70 f7 0d 00 00 d8 48 19 55 f7 0d 00 00 f8 ee bd 4b b6 01 00 00 00 00 00 00 52 00 00 00 .php.....H.U.......K........R...
70c0 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 vendor/justinrainbow/json-schema
70e0 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 74 69 6f 6e 2f 55 72 69 52 65 73 /src/JsonSchema/Exception/UriRes
7100 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6a 00 00 00 d8 48 19 55 6a 00 00 00 53 d3 olverException.phpj....H.Uj...S.
7120 c7 b3 b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 ..........W...vendor/justinrainb
7140 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 45 78 ow/json-schema/src/JsonSchema/Ex
7160 63 65 70 74 69 6f 6e 2f 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f ception/ResourceNotFoundExceptio
7180 6e 2e 70 68 70 6f 00 00 00 d8 48 19 55 6f 00 00 00 c6 24 22 c5 b6 01 00 00 00 00 00 00 5d 00 00 n.phpo....H.Uo....$".........]..
71a0 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d .vendor/justinrainbow/json-schem
71c0 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c a/src/JsonSchema/Exception/Inval
71e0 69 64 53 63 68 65 6d 61 4d 65 64 69 61 54 79 70 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 76 00 idSchemaMediaTypeException.phpv.
7200 00 00 d8 48 19 55 76 00 00 00 02 8a 43 d3 b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 ...H.Uv.....C.........W...vendor
7220 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
7240 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 53 6f 75 72 63 sonSchema/Exception/InvalidSourc
7260 65 55 72 69 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 77 00 00 00 d8 48 19 55 77 00 00 00 4e 2d f2 eUriException.phpw....H.Uw...N-.
7280 5b b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f [........S...vendor/justinrainbo
72a0 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 45 78 63 w/json-schema/src/JsonSchema/Exc
72c0 65 70 74 69 6f 6e 2f 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 eption/JsonDecodingException.php
72e0 de 02 00 00 d8 48 19 55 de 02 00 00 86 be a9 91 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 .....H.U................V...vend
7300 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 or/justinrainbow/json-schema/src
7320 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 67 /JsonSchema/Exception/InvalidArg
7340 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 76 00 00 00 d8 48 19 55 76 00 00 00 ac 20 umentException.phpv....H.Uv.....
7360 ab 22 b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 ."........C...vendor/justinrainb
7380 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 55 72 ow/json-schema/src/JsonSchema/Ur
73a0 69 2f 55 72 69 52 65 73 6f 6c 76 65 72 2e 70 68 70 ae 09 00 00 d8 48 19 55 ae 09 00 00 e0 50 be i/UriResolver.php.....H.U.....P.
73c0 a1 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f .........D...vendor/justinrainbo
73e0 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 55 72 69 w/json-schema/src/JsonSchema/Uri
7400 2f 55 72 69 52 65 74 72 69 65 76 65 72 2e 70 68 70 96 13 00 00 d8 48 19 55 96 13 00 00 aa ff a8 /UriRetriever.php.....H.U.......
7420 dc b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f .........T...vendor/justinrainbo
7440 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 55 72 69 w/json-schema/src/JsonSchema/Uri
7460 2f 52 65 74 72 69 65 76 65 72 73 2f 41 62 73 74 72 61 63 74 52 65 74 72 69 65 76 65 72 2e 70 68 /Retrievers/AbstractRetriever.ph
7480 70 dc 00 00 00 d8 48 19 55 dc 00 00 00 1b 5d 6a 1c b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e p.....H.U.....]j.........R...ven
74a0 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 dor/justinrainbow/json-schema/sr
74c0 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f 52 65 74 72 69 65 76 65 72 73 2f 46 69 6c 65 c/JsonSchema/Uri/Retrievers/File
74e0 47 65 74 43 6f 6e 74 65 6e 74 73 2e 70 68 70 d1 04 00 00 d8 48 19 55 d1 04 00 00 e6 87 a8 12 b6 GetContents.php.....H.U.........
7500 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f .......X...vendor/justinrainbow/
7520 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 55 72 69 2f 52 json-schema/src/JsonSchema/Uri/R
7540 65 74 72 69 65 76 65 72 73 2f 55 72 69 52 65 74 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 2e etrievers/UriRetrieverInterface.
7560 70 68 70 a9 00 00 00 d8 48 19 55 a9 00 00 00 06 03 43 4f b6 01 00 00 00 00 00 00 47 00 00 00 76 php.....H.U......CO........G...v
7580 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f endor/justinrainbow/json-schema/
75a0 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f 52 65 74 72 69 65 76 65 72 73 2f 43 75 src/JsonSchema/Uri/Retrievers/Cu
75c0 72 6c 2e 70 68 70 74 04 00 00 d8 48 19 55 74 04 00 00 49 b7 fd 00 b6 01 00 00 00 00 00 00 52 00 rl.phpt....H.Ut...I...........R.
75e0 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 ..vendor/justinrainbow/json-sche
7600 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f 52 65 74 72 69 65 76 65 72 73 ma/src/JsonSchema/Uri/Retrievers
7620 2f 50 72 65 64 65 66 69 6e 65 64 41 72 72 61 79 2e 70 68 70 5e 02 00 00 d8 48 19 55 5e 02 00 00 /PredefinedArray.php^....H.U^...
7640 22 df 36 6f b6 01 00 00 00 00 00 00 3d 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 ".6o........=...vendor/justinrai
7660 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f nbow/json-schema/src/JsonSchema/
7680 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 87 02 00 00 d8 48 19 55 87 02 00 00 2d 00 da f4 b6 01 00 Validator.php.....H.U....-......
76a0 00 00 00 00 00 13 00 00 00 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 91 00 00 00 .........vendor/autoload.php....
76c0 d8 48 19 55 91 00 00 00 8a 79 38 41 b6 01 00 00 00 00 00 00 27 00 00 00 76 65 6e 64 6f 72 2f 63 .H.U.....y8A........'...vendor/c
76e0 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 b1 omposer/autoload_namespaces.php.
7700 01 00 00 d8 48 19 55 b1 01 00 00 5b ae 13 e3 b6 01 00 00 00 00 00 00 21 00 00 00 76 65 6e 64 6f ....H.U....[...........!...vendo
7720 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 70 68 70 b2 00 00 00 r/composer/autoload_psr4.php....
7740 d8 48 19 55 b2 00 00 00 d4 81 a8 d0 b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 63 .H.U................%...vendor/c
7760 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 64 00 00 omposer/autoload_classmap.phpd..
7780 00 d8 48 19 55 64 00 00 00 5a a1 a6 48 b6 01 00 00 00 00 00 00 21 00 00 00 76 65 6e 64 6f 72 2f ..H.Ud...Z..H........!...vendor/
77a0 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 4b 04 00 00 d8 48 composer/autoload_real.phpK....H
77c0 19 55 4b 04 00 00 da 19 95 64 b6 01 00 00 00 00 00 00 21 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d .UK......d........!...vendor/com
77e0 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 00 00 d8 48 19 55 9f poser/include_paths.php.....H.U.
7800 01 00 00 a7 c5 e1 a2 b6 01 00 00 00 00 00 00 1f 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 ...................vendor/compos
7820 65 72 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 97 13 00 00 d8 48 19 55 97 13 00 00 42 a7 er/ClassLoader.php.....H.U....B.
7840 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 72 6c 04 00 00 d8 48 .0............bin/composerl....H
7860 19 55 6c 04 00 00 d4 9a c3 09 b6 01 00 00 00 00 00 00 07 00 00 00 4c 49 43 45 4e 53 45 33 04 00 .Ul...................LICENSE3..
7880 00 d8 48 19 55 33 04 00 00 0b 81 32 0b b6 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ..H.U3.....2.........<?php......
78a0 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 24 ......function.includeIfExists($
78c0 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 73 28 24 66 69 6c 65 file).{.return.file_exists($file
78e0 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 3b 0a 7d 0a 0a 69 66 ).?.include.$file.:.false;.}..if
7900 20 28 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f .((!$loader.=.includeIfExists(__
7920 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 DIR__.'/../vendor/autoload.php')
7940 29 20 26 26 20 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 ).&&.(!$loader.=.includeIfExists
7960 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 (__DIR__.'/../../../autoload.php
7980 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 20 75 70 20 74 68 65 '))).{.echo.'You.must.set.up.the
79a0 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20 72 75 6e 20 74 68 65 20 66 .project.dependencies,.run.the.f
79c0 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 63 75 ollowing.commands:'.PHP_EOL..'cu
79e0 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 72 2e 6f 72 67 2f 69 rl.-sS.https://getcomposer.org/i
7a00 6e 73 74 61 6c 6c 65 72 20 7c 20 70 68 70 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 70 68 70 20 63 6f nstaller.|.php'.PHP_EOL..'php.co
7a20 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 45 4f 4c 3b 0a 65 78 mposer.phar.install'.PHP_EOL;.ex
7a40 69 74 28 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 3c 3f 70 68 70 0a it(1);.}..return.$loader;.<?php.
7a60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f ...........namespace.Composer\IO
7a80 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
7aa0 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
7ac0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 ny\Component\Console\Output\Cons
7ae0 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c oleOutputInterface;.use.Symfony\
7b00 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
7b20 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\
7b40 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 75 73 65 20 53 79 Console\Helper\HelperSet;.use.Sy
7b60 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 65 63 75 74 61 62 mfony\Component\Process\Executab
7b80 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 49 4f leFinder;........class.ConsoleIO
7ba0 20 65 78 74 65 6e 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 .extends.BaseIO.{.protected.$inp
7bc0 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 ut;.protected.$output;.protected
7be0 20 24 68 65 6c 70 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 .$helperSet;.protected.$lastMess
7c00 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 61 73 74 4d 65 73 73 61 67 65 45 72 72 3b 0a age;.protected.$lastMessageErr;.
7c20 70 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 private.$startTime;.........publ
7c40 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 6e 70 75 74 49 6e 74 ic.function.__construct(InputInt
7c60 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.$
7c80 6f 75 74 70 75 74 2c 20 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a output,.HelperSet.$helperSet).{.
7ca0 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 73 2d 3e 6f 75 $this->input.=.$input;.$this->ou
7cc0 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 tput.=.$output;.$this->helperSet
7ce0 20 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 .=.$helperSet;.}..public.functio
7d00 6e 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 n.enableDebugging($startTime).{.
7d20 24 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 $this->startTime.=.$startTime;.}
7d40 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 69 .....public.function.isInteracti
7d60 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 6e ve().{.return.$this->input->isIn
7d80 74 65 72 61 63 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 teractive();.}.....public.functi
7da0 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 68 69 73 2d on.isDecorated().{.return.$this-
7dc0 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 >output->isDecorated();.}.....pu
7de0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 blic.function.isVerbose().{.retu
7e00 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 28 29 rn.$this->output->getVerbosity()
7e20 20 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 .>=.OutputInterface::VERBOSITY_V
7e40 45 52 42 4f 53 45 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 ERBOSE;.}.....public.function.is
7e60 56 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 VeryVerbose().{.return.$this->ou
7e80 74 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 tput->getVerbosity().>=.3;...}..
7ea0 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 29 0a 7b 0a 72 ...public.function.isDebug().{.r
7ec0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 eturn.$this->output->getVerbosit
7ee0 79 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 y().>=.4;...}.....public.functio
7f00 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 n.write($messages,.$newline.=.tr
7f20 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 ue).{.$this->doWrite($messages,.
7f40 24 6e 65 77 6c 69 6e 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $newline,.false);.}.....public.f
7f60 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e unction.writeError($messages,.$n
7f80 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 ewline.=.true).{.$this->doWrite(
7fa0 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a $messages,.$newline,.true);.}...
7fc0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 ....private.function.doWrite($me
7fe0 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 24 73 74 64 65 72 72 29 0a 7b 0a 69 66 20 ssages,.$newline,.$stderr).{.if.
8000 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 24 6d (null.!==.$this->startTime).{.$m
8020 65 6d 6f 72 79 55 73 61 67 65 20 3d 20 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 65 28 29 20 emoryUsage.=.memory_get_usage().
8040 2f 20 31 30 32 34 20 2f 20 31 30 32 34 3b 0a 24 74 69 6d 65 53 70 65 6e 74 20 3d 20 6d 69 63 72 /.1024./.1024;.$timeSpent.=.micr
8060 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 3b 0a otime(true).-.$this->startTime;.
8080 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 $messages.=.array_map(function.(
80a0 24 6d 65 73 73 61 67 65 29 20 75 73 65 20 28 24 6d 65 6d 6f 72 79 55 73 61 67 65 2c 20 24 74 69 $message).use.($memoryUsage,.$ti
80c0 6d 65 53 70 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 5b 25 2e 31 66 meSpent).{.return.sprintf('[%.1f
80e0 4d 42 2f 25 2e 32 66 73 5d 20 25 73 27 2c 20 24 6d 65 6d 6f 72 79 55 73 61 67 65 2c 20 24 74 69 MB/%.2fs].%s',.$memoryUsage,.$ti
8100 6d 65 53 70 65 6e 74 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 2c 20 28 61 72 72 61 79 29 20 24 meSpent,.$message);.},.(array).$
8120 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 73 74 64 65 messages);.}..if.(true.===.$stde
8140 72 72 20 26 26 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 rr.&&.$this->output.instanceof.C
8160 6f 6e 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 onsoleOutputInterface).{.$this->
8180 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2d 3e 77 72 69 74 65 28 output->getErrorOutput()->write(
81a0 24 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 $messages,.$newline);.$this->las
81c0 74 4d 65 73 73 61 67 65 45 72 72 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c tMessageErr.=.join($newline.?."\
81e0 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 72 65 74 n".:.'',.(array).$messages);.ret
8200 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 urn;.}..$this->output->write($me
8220 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 ssages,.$newline);.$this->lastMe
8240 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 ssage.=.join($newline.?."\n".:.'
8260 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ',.(array).$messages);.}.....pub
8280 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 lic.function.overwrite($messages
82a0 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 ,.$newline.=.true,.$size.=.null)
82c0 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 4f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c .{.$this->doOverwrite($messages,
82e0 20 24 6e 65 77 6c 69 6e 65 2c 20 24 73 69 7a 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a .$newline,.$size,.false);.}.....
8300 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 public.function.overwriteError($
8320 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 24 73 69 7a 65 messages,.$newline.=.true,.$size
8340 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 4f 76 65 72 77 72 69 74 65 28 24 6d .=.null).{.$this->doOverwrite($m
8360 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 24 73 69 7a 65 2c 20 74 72 75 65 29 3b essages,.$newline,.$size,.true);
8380 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 64 6f 4f 76 65 .}........private.function.doOve
83a0 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 24 73 69 7a rwrite($messages,.$newline,.$siz
83c0 65 2c 20 24 73 74 64 65 72 72 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 73 74 64 65 e,.$stderr).{.if.(true.===.$stde
83e0 72 72 20 26 26 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 rr.&&.$this->output.instanceof.C
8400 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 onsoleOutputInterface).{.$output
8420 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 .=.$this->output->getErrorOutput
8440 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 ();.}.else.{.$output.=.$this->ou
8460 74 70 75 74 3b 0a 7d 0a 0a 0a 20 24 6d 65 73 73 61 67 65 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 tput;.}....$messages.=.join($new
8480 6c 69 6e 65 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 line.?."\n".:.'',.(array).$messa
84a0 67 65 73 29 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 ges);....if.(!isset($size)).{...
84c0 24 73 69 7a 65 20 3d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 73 74 64 65 72 $size.=.strlen(strip_tags($stder
84e0 72 20 3f 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 45 72 72 20 3a 20 24 74 68 69 r.?.$this->lastMessageErr.:.$thi
8500 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 s->lastMessage));.}...$this->doW
8520 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 rite(str_repeat("\x08",.$size),.
8540 66 61 6c 73 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 false,.$stderr);....$this->doWri
8560 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c 73 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 0a te($messages,.false,.$stderr);..
8580 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 $fill.=.$size.-.strlen(strip_tag
85a0 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 29 20 7b 0a s($messages));.if.($fill.>.0).{.
85c0 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c ..$this->doWrite(str_repeat('.',
85e0 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 0a 20 24 74 68 69 .$fill),.false,.$stderr);...$thi
8600 73 2d 3e 64 6f 57 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 66 s->doWrite(str_repeat("\x08",.$f
8620 69 6c 6c 29 2c 20 66 61 6c 73 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e ill),.false,.$stderr);.}..if.($n
8640 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 27 27 2c 20 74 72 75 ewline).{.$this->doWrite('',.tru
8660 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 73 74 64 65 72 72 29 20 7b 0a 24 e,.$stderr);.}..if.($stderr).{.$
8680 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 45 72 72 20 3d 20 24 6d 65 73 73 61 67 65 73 this->lastMessageErr.=.$messages
86a0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 ;.}.else.{.$this->lastMessage.=.
86c0 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $messages;.}.}.....public.functi
86e0 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 74 20 3d 20 6e 75 6c on.ask($question,.$default.=.nul
8700 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 0a 69 l).{.$output.=.$this->output;..i
8720 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 73 6f 6c 65 4f 75 74 f.($output.instanceof.ConsoleOut
8740 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 putInterface).{.$output.=.$outpu
8760 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 24 64 69 61 6c 6f 67 t->getErrorOutput();.}...$dialog
8780 20 3d 20 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 .=.$this->helperSet->get('dialog
87a0 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 ');..return.$dialog->ask($output
87c0 2c 20 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 ,.$question,.$default);.}.....pu
87e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 blic.function.askConfirmation($q
8800 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 6f 75 74 uestion,.$default.=.true).{.$out
8820 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 0a 69 66 20 28 24 6f 75 74 70 75 put.=.$this->output;..if.($outpu
8840 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 t.instanceof.ConsoleOutputInterf
8860 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 ace).{.$output.=.$output->getErr
8880 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d orOutput();.}...$dialog.=.$this-
88a0 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 3b 0a 0a 72 65 74 75 >helperSet->get('dialog');..retu
88c0 72 6e 20 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 rn.$dialog->askConfirmation($out
88e0 70 75 74 2c 20 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 put,.$question,.$default);.}....
8900 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 74 65 28 .public.function.askAndValidate(
8920 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 70 74 73 $question,.$validator,.$attempts
8940 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 24 6f 75 .=.false,.$default.=.null).{.$ou
8960 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 0a 69 66 20 28 24 6f 75 74 70 tput.=.$this->output;..if.($outp
8980 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 ut.instanceof.ConsoleOutputInter
89a0 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 face).{.$output.=.$output->getEr
89c0 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 rorOutput();.}...$dialog.=.$this
89e0 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 3b 0a 0a 72 65 74 ->helperSet->get('dialog');..ret
8a00 75 72 6e 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 urn.$dialog->askAndValidate($out
8a20 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 put,.$question,.$validator,.$att
8a40 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 empts,.$default);.}.....public.f
8a60 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 unction.askAndHideAnswer($questi
8a80 6f 6e 29 0a 7b 0a 0a 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 on).{...if.(defined('PHP_WINDOWS
8aa0 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 _VERSION_BUILD')).{.$finder.=.ne
8ac0 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 0a 0a 20 69 66 20 28 24 66 69 w.ExecutableFinder();....if.($fi
8ae0 6e 64 65 72 2d 3e 66 69 6e 64 28 27 62 61 73 68 27 29 20 26 26 20 24 66 69 6e 64 65 72 2d 3e 66 nder->find('bash').&&.$finder->f
8b00 69 6e 64 28 27 73 74 74 79 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 ind('stty')).{.$this->writeError
8b20 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 ($question,.false);.$value.=.rtr
8b40 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 27 62 61 73 68 20 2d 63 20 22 73 74 74 79 20 2d 65 63 im(shell_exec('bash.-c."stty.-ec
8b60 68 6f 3b 20 72 65 61 64 20 2d 6e 30 20 64 69 73 63 61 72 64 3b 20 72 65 61 64 20 2d 72 20 6d 79 ho;.read.-n0.discard;.read.-r.my
8b80 70 61 73 73 77 6f 72 64 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 24 6d 79 70 61 73 password;.stty.echo;.echo.$mypas
8ba0 73 77 6f 72 64 22 27 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 sword"'));.$this->writeError('')
8bc0 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 20 24 65 78 65 20 3d 20 5f 5f ;..return.$value;.}....$exe.=.__
8be0 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 3b 0a 0a 0a 20 69 66 DIR__.'\\hiddeninput.exe';....if
8c00 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 .('phar:'.===.substr(__FILE__,.0
8c20 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 ,.5)).{.$tmpExe.=.sys_get_temp_d
8c40 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 0a 20 24 73 ir().'/hiddeninput.exe';......$s
8c60 6f 75 72 63 65 20 3d 20 66 6f 70 65 6e 28 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 6e 69 ource.=.fopen(__DIR__.'\\hiddeni
8c80 6e 70 75 74 2e 65 78 65 27 2c 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 66 6f 70 65 6e nput.exe',.'r');.$target.=.fopen
8ca0 28 24 74 6d 70 45 78 65 2c 20 27 77 2b 27 29 3b 0a 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f ($tmpExe,.'w+');.stream_copy_to_
8cc0 73 74 72 65 61 6d 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 66 63 6c 6f 73 65 stream($source,.$target);.fclose
8ce0 28 24 73 6f 75 72 63 65 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 29 3b 0a 75 6e 73 65 ($source);.fclose($target);.unse
8d00 74 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 0a 24 65 78 65 20 3d 20 24 74 6d t($source,.$target);..$exe.=.$tm
8d20 70 45 78 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 71 75 65 73 pExe;.}..$this->writeError($ques
8d40 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 tion,.false);.$value.=.rtrim(she
8d60 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f ll_exec($exe));.$this->writeErro
8d80 72 28 27 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b 0a r('');....if.(isset($tmpExe)).{.
8da0 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 unlink($tmpExe);.}..return.$valu
8dc0 65 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f e;.}..if.(file_exists('/usr/bin/
8de0 65 6e 76 27 29 29 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 env')).{...$test.=."/usr/bin/env
8e00 20 25 73 20 2d 63 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a .%s.-c.'echo.OK'.2>./dev/null";.
8e20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b foreach.(array('bash',.'zsh',.'k
8e40 73 68 27 2c 20 27 63 73 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d sh',.'csh').as.$sh).{.if.('OK'.=
8e60 3d 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 ==.rtrim(shell_exec(sprintf($tes
8e80 74 2c 20 24 73 68 29 29 29 29 20 7b 0a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b t,.$sh)))).{.$shell.=.$sh;.break
8ea0 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 73 68 65 6c 6c 29 29 20 7b 0a 24 74 68 69 73 ;.}.}.if.(isset($shell)).{.$this
8ec0 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a ->writeError($question,.false);.
8ee0 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 73 68 27 29 20 3f 20 $readCmd.=.($shell.===.'csh').?.
8f00 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 72 65 61 64 20 2d 72 'set.mypassword.=.$<'.:.'read.-r
8f20 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 73 70 72 69 6e 74 66 .mypassword';.$command.=.sprintf
8f40 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 79 20 2d 65 63 68 6f ("/usr/bin/env.%s.-c.'stty.-echo
8f60 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 79 70 61 73 73 77 6f ;.%s;.stty.echo;.echo.\$mypasswo
8f80 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 24 76 61 6c 75 65 20 rd'",.$shell,.$readCmd);.$value.
8fa0 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 6e 64 29 29 3b 0a 24 =.rtrim(shell_exec($command));.$
8fc0 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 this->writeError('');..return.$v
8fe0 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 28 24 alue;.}.}....return.$this->ask($
9000 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 0a 0a question);.}.}.<?php............
9020 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 6c 61 namespace.Composer\IO;.......cla
9040 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 70 75 ss.NullIO.extends.BaseIO.{....pu
9060 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 7b 0a blic.function.isInteractive().{.
9080 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 return.false;.}.....public.funct
90a0 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 3b 0a ion.isVerbose().{.return.false;.
90c0 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 72 62 }.....public.function.isVeryVerb
90e0 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 62 6c ose().{.return.false;.}.....publ
9100 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 20 66 ic.function.isDebug().{.return.f
9120 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 44 65 alse;.}.....public.function.isDe
9140 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 0a 0a corated().{.return.false;.}.....
9160 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c public.function.write($messages,
9180 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 69 63 .$newline.=.true).{.}.....public
91a0 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c 20 .function.writeError($messages,.
91c0 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 69 63 20 $newline.=.true).{.}.....public.
91e0 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e function.overwrite($messages,.$n
9200 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 7d 0a 0a ewline.=.true,.$size.=.80).{.}..
9220 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 45 72 72 6f ...public.function.overwriteErro
9240 72 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 24 73 r($messages,.$newline.=.true,.$s
9260 69 7a 65 20 3d 20 38 30 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ize.=.80).{.}.....public.functio
9280 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
92a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ).{.return.$default;.}.....publi
92c0 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
92e0 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.
9300 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $default;.}.....public.function.
9320 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 askAndValidate($question,.$valid
9340 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c ator,.$attempts.=.false,.$defaul
9360 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a t.=.null).{.return.$default;.}..
9380 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 ...public.function.askAndHideAns
93a0 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a wer($question).{.return.null;.}.
93c0 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
93e0 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a poser\IO;..use.Composer\Config;.
9400 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a ......interface.IOInterface.{...
9420 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 65 ...public.function.isInteractive
9440 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 56 65 72 62 ();.......public.function.isVerb
9460 6f 73 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 69 73 56 ose();.......public.function.isV
9480 65 72 79 56 65 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 eryVerbose();.......public.funct
94a0 69 6f 6e 20 69 73 44 65 62 75 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ion.isDebug();.......public.func
94c0 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 70 75 62 6c 69 tion.isDecorated();........publi
94e0 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 77 c.function.write($messages,.$new
9500 6c 69 6e 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 line.=.true);........public.func
9520 74 69 6f 6e 20 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c tion.writeError($messages,.$newl
9540 69 6e 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ine.=.true);.........public.func
9560 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 tion.overwrite($messages,.$newli
9580 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a ne.=.true,.$size.=.null);.......
95a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 ..public.function.overwriteError
95c0 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 24 73 69 ($messages,.$newline.=.true,.$si
95e0 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 20 66 75 ze.=.null);............public.fu
9600 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 74 20 3d nction.ask($question,.$default.=
9620 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 63 74 69 .null);............public.functi
9640 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 on.askConfirmation($question,.$d
9660 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 0a 0a 0a efault.=.true);.................
9680 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 74 65 28 .public.function.askAndValidate(
96a0 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 70 74 73 $question,.$validator,.$attempts
96c0 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 0a 0a 0a .=.false,.$default.=.null);.....
96e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e ....public.function.askAndHideAn
9700 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 20 66 75 swer($question);.......public.fu
9720 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 0a 0a 0a nction.getAuthentications();....
9740 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 6e 74 69 .....public.function.hasAuthenti
9760 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 0a 0a 0a cation($repositoryName);........
9780 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 69 .public.function.getAuthenticati
97a0 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 70 75 62 on($repositoryName);.........pub
97c0 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 6e 28 24 lic.function.setAuthentication($
97e0 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 repositoryName,.$username,.$pass
9800 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 6e 63 74 word.=.null);.......public.funct
9820 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 24 63 6f ion.loadConfiguration(Config.$co
9840 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 65 73 70 nfig);.}.<?php............namesp
9860 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 72 5c 43 ace.Composer\IO;..use.Composer\C
9880 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 20 69 6d onfig;..abstract.class.BaseIO.im
98a0 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 74 65 64 plements.IOInterface.{.protected
98c0 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 0a 0a 0a .$authentications.=.array();....
98e0 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 69 .public.function.getAuthenticati
9900 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 69 63 61 ons().{.return.$this->authentica
9920 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 68 61 73 tions;.}.....public.function.has
9940 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 65 29 0a Authentication($repositoryName).
9960 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 69 63 61 {.return.isset($this->authentica
9980 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 0a 0a 70 tions[$repositoryName]);.}.....p
99a0 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 69 6f 6e ublic.function.getAuthentication
99c0 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 28 24 74 ($repositoryName).{.if.(isset($t
99e0 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 6f 72 79 his->authentications[$repository
9a00 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 6e 74 69 Name])).{.return.$this->authenti
9a20 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 72 65 74 cations[$repositoryName];.}..ret
9a40 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 20 27 70 urn.array('username'.=>.null,.'p
9a60 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 69 63 20 assword'.=>.null);.}.....public.
9a80 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 65 70 6f function.setAuthentication($repo
9aa0 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 6f 72 64 sitoryName,.$username,.$password
9ac0 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 69 6f 6e .=.null).{.$this->authentication
9ae0 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 73 65 72 s[$repositoryName].=.array('user
9b00 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 27 20 3d name'.=>.$username,.'password'.=
9b20 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 6e 63 74 >.$password);.}.....public.funct
9b40 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 24 63 6f ion.loadConfiguration(Config.$co
9b60 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 69 67 2d nfig).{...if.($tokens.=.$config-
9b80 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 63 68 20 >get('github-oauth')).{.foreach.
9ba0 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 29 20 7b ($tokens.as.$domain.=>.$token).{
9bc0 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 24 7d 27 .if.(!preg_match('{^[a-z0-9]+$}'
9be0 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 65 63 74 ,.$token)).{.throw.new.\Unexpect
9c00 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 20 6f 61 edValueException('Your.github.oa
9c20 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 74 61 69 uth.token.for.'.$domain.'.contai
9c40 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 6b 65 6e ns.invalid.characters:."'.$token
9c60 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 74 69 6f .'"');.}.$this->setAuthenticatio
9c80 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 61 73 69 n($domain,.$token,.'x-oauth-basi
9ca0 63 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 63 72 65 64 73 20 3d 20 24 63 6f 6e 66 69 67 c');.}.}....if.($creds.=.$config
9cc0 2d 3e 67 65 74 28 27 68 74 74 70 2d 62 61 73 69 63 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 ->get('http-basic')).{.foreach.(
9ce0 24 63 72 65 64 73 20 61 73 20 24 64 6f 6d 61 69 6e 20 3d 3e 20 24 63 72 65 64 29 20 7b 0a 24 74 $creds.as.$domain.=>.$cred).{.$t
9d00 68 69 73 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 his->setAuthentication($domain,.
9d20 24 63 72 65 64 5b 27 75 73 65 72 6e 61 6d 65 27 5d 2c 20 24 63 72 65 64 5b 27 70 61 73 73 77 6f $cred['username'],.$cred['passwo
9d40 72 64 27 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rd']);.}.}.}.}.<?php............
9d60 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 66 namespace.Composer\IO;..use.Symf
9d80 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
9da0 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 74 eamOutput;.use.Symfony\Component
9dc0 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 74 \Console\Formatter\OutputFormatt
9de0 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 65 erInterface;.use.Symfony\Compone
9e00 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 73 nt\Console\Input\StringInput;.us
9e20 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 70 e.Symfony\Component\Console\Help
9e40 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 4f er\HelperSet;.....class.BufferIO
9e60 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 63 .extends.ConsoleIO.{......public
9e80 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 0a 24 69 6e 70 75 74 20 3d 20 .function.__construct(.$input.=.
9ea0 27 27 2c 0a 24 76 65 72 62 6f 73 69 74 79 20 3d 20 53 74 72 65 61 6d 4f 75 74 70 75 74 3a 3a 56 '',.$verbosity.=.StreamOutput::V
9ec0 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 ERBOSITY_NORMAL,.OutputFormatter
9ee0 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 0a 29 20 7b 0a Interface.$formatter.=.null.).{.
9f00 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 6e 70 75 74 29 $input.=.new.StringInput($input)
9f20 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 6c 73 65 29 3b ;.$input->setInteractive(false);
9f40 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 74 28 66 6f 70 ..$output.=.new.StreamOutput(fop
9f60 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 76 65 72 62 6f en('php://memory',.'rw'),.$verbo
9f80 73 69 74 79 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 sity,.!empty($formatter),.$forma
9fa0 74 74 65 72 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 tter);..parent::__construct($inp
9fc0 75 74 2c 20 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 ut,.$output,.new.HelperSet(array
9fe0 28 29 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 4f 75 74 70 ()));.}..public.function.getOutp
a000 75 74 28 29 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 ut().{.fseek($this->output->getS
a020 74 72 65 61 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 tream(),.0);..$output.=.stream_g
a040 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 et_contents($this->output->getSt
a060 72 65 61 6d 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 ream());..$output.=.preg_replace
a080 5f 63 61 6c 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 _callback("{(?<=^|\n|\x08)(.+?)(
a0a0 5c 78 30 38 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 \x08+)}",.function.($matches).{.
a0c0 24 70 72 65 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 $pre.=.strip_tags($matches[1]);.
a0e0 0a 69 66 20 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 .if.(strlen($pre).===.strlen($ma
a100 74 63 68 65 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 tches[2])).{.return.'';.}....ret
a120 75 72 6e 20 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 urn.rtrim($matches[1])."\n";.},.
a140 24 6f 75 74 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 $output);..return.$output;.}.}.<
a160 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
a180 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 53 63 72 69 70 74 er\Command;..use.Composer\Script
a1a0 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 53 63 72 69 \CommandEvent;.use.Composer\Scri
a1c0 70 74 5c 53 63 72 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 pt\ScriptEvents;.use.Symfony\Com
a1e0 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 66 ponent\Console\Input\InputInterf
a200 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
a220 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 6e le\Input\InputOption;.use.Symfon
a240 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
a260 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 rgument;.use.Symfony\Component\C
a280 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 0a onsole\Output\OutputInterface;..
a2a0 0a 0a 0a 63 6c 61 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 ...class.RunScriptCommand.extend
a2c0 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 24 73 63 72 69 70 74 s.Command.{....protected.$script
a2e0 45 76 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 Events.=.array(.ScriptEvents::PR
a300 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 E_INSTALL_CMD,.ScriptEvents::POS
a320 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 T_INSTALL_CMD,.ScriptEvents::PRE
a340 5f 55 50 44 41 54 45 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f _UPDATE_CMD,.ScriptEvents::POST_
a360 55 50 44 41 54 45 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 53 54 UPDATE_CMD,.ScriptEvents::PRE_ST
a380 41 54 55 53 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 53 54 41 ATUS_CMD,.ScriptEvents::POST_STA
a3a0 54 55 53 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 52 4f 4f 54 TUS_CMD,.ScriptEvents::POST_ROOT
a3c0 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a _PACKAGE_INSTALL,.ScriptEvents::
a3e0 50 4f 53 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a 45 43 54 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 POST_CREATE_PROJECT_CMD,.ScriptE
a400 76 65 6e 74 73 3a 3a 50 52 45 5f 41 52 43 48 49 56 45 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 vents::PRE_ARCHIVE_CMD,.ScriptEv
a420 65 6e 74 73 3a 3a 50 4f 53 54 5f 41 52 43 48 49 56 45 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 ents::POST_ARCHIVE_CMD,.ScriptEv
a440 65 6e 74 73 3a 3a 50 52 45 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 2c 0a 53 63 72 69 70 74 45 ents::PRE_AUTOLOAD_DUMP,.ScriptE
a460 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 2c 0a 29 3b 0a 0a 70 vents::POST_AUTOLOAD_DUMP,.);..p
a480 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a rotected.function.configure().{.
a4a0 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 70 74 27 29 0a 2d 3e $this.->setName('run-script').->
a4c0 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 63 72 69 70 74 73 20 setDescription('Run.the.scripts.
a4e0 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 27 29 0a 2d 3e 73 65 defined.in.composer.json.').->se
a500 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 tDefinition(array(.new.InputArgu
a520 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 65 6e 74 3a 3a 4f 50 ment('script',.InputArgument::OP
a540 54 49 4f 4e 41 4c 2c 20 27 53 63 72 69 70 74 20 6e 61 6d 65 20 74 6f 20 72 75 6e 2e 27 29 2c 0a TIONAL,.'Script.name.to.run.'),.
a560 6e 65 77 20 49 6e 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 new.InputArgument('args',.InputA
a580 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e rgument::IS_ARRAY.|.InputArgumen
a5a0 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f t::OPTIONAL,.''),.new.InputOptio
a5c0 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 n('dev',.null,.InputOption::VALU
a5e0 45 5f 4e 4f 4e 45 2c 20 27 53 65 74 73 20 74 68 65 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 6e E_NONE,.'Sets.the.dev.mode.'),.n
a600 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 75 6c 6c 2c 20 49 ew.InputOption('no-dev',.null,.I
a620 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 nputOption::VALUE_NONE,.'Disable
a640 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 69 s.the.dev.mode.'),.new.InputOpti
a660 6f 6e 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 on('list',.'l',.InputOption::VAL
a680 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 73 63 72 69 70 74 73 2e 27 29 2c 0a 29 29 0a 2d 3e UE_NONE,.'List.scripts.'),.)).->
a6a0 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 72 75 6e 2d 73 63 72 setHelp(<<<EOT.The.<info>run-scr
a6c0 69 70 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 75 6e 73 20 73 63 72 69 70 74 73 20 ipt</info>.command.runs.scripts.
a6e0 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f defined.in.composer.json:..<info
a700 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 72 75 6e 2d 73 63 72 69 70 74 20 70 6f >php.composer.phar.run-script.po
a720 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a st-update-cmd</info>.EOT.).;.}..
a740 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
a760 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
a780 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 e.$output).{.if.($input->getOpti
a7a0 6f 6e 28 27 6c 69 73 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 73 74 on('list')).{.return.$this->list
a7c0 53 63 72 69 70 74 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 67 65 Scripts();.}.elseif.(!$input->ge
a7e0 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 tArgument('script')).{.throw.new
a800 20 5c 52 75 6e 54 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73 73 69 6e 67 20 72 65 71 75 .\RunTimeException('Missing.requ
a820 69 72 65 64 20 61 72 67 75 6d 65 6e 74 20 22 73 63 72 69 70 74 22 27 29 3b 0a 7d 0a 0a 24 73 63 ired.argument."script"');.}..$sc
a840 72 69 70 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 ript.=.$input->getArgument('scri
a860 70 74 27 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 24 74 68 pt');.if.(!in_array($script,.$th
a880 69 73 2d 3e 73 63 72 69 70 74 45 76 65 6e 74 73 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 is->scriptEvents)).{.if.(defined
a8a0 28 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a ('Composer\Script\ScriptEvents::
a8c0 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2d 27 2c 20 27 5f 27 2c 20 73 74 72 74 6f 75 70 70 '.str_replace('-',.'_',.strtoupp
a8e0 65 72 28 24 73 63 72 69 70 74 29 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 er($script)))).{.throw.new.\Inva
a900 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 53 63 lidArgumentException(sprintf('Sc
a920 72 69 70 74 20 22 25 73 22 20 63 61 6e 6e 6f 74 20 62 65 20 72 75 6e 20 77 69 74 68 20 74 68 69 ript."%s".cannot.be.run.with.thi
a940 73 20 63 6f 6d 6d 61 6e 64 27 2c 20 24 73 63 72 69 70 74 29 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d s.command',.$script));.}.}..$com
a960 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 24 68 poser.=.$this->getComposer();.$h
a980 61 73 4c 69 73 74 65 6e 65 72 73 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e asListeners.=.$composer->getEven
a9a0 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 68 61 73 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 73 tDispatcher()->hasEventListeners
a9c0 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 73 63 72 69 70 74 2c 20 24 63 6f 6d 70 (new.CommandEvent($script,.$comp
a9e0 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 29 3b 0a 69 66 20 28 21 24 68 61 oser,.$this->getIO()));.if.(!$ha
aa00 73 4c 69 73 74 65 6e 65 72 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 sListeners).{.throw.new.\Invalid
aa20 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 53 63 72 69 70 ArgumentException(sprintf('Scrip
aa40 74 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 69 73 20 70 61 t."%s".is.not.defined.in.this.pa
aa60 63 6b 61 67 65 27 2c 20 24 73 63 72 69 70 74 29 29 3b 0a 7d 0a 0a 0a 20 24 62 69 6e 44 69 72 20 ckage',.$script));.}....$binDir.
aa80 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 62 =.$composer->getConfig()->get('b
aaa0 69 6e 2d 64 69 72 27 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 62 69 6e 44 69 72 29 29 20 7b in-dir');.if.(is_dir($binDir)).{
aac0 0a 24 5f 53 45 52 56 45 52 5b 27 50 41 54 48 27 5d 20 3d 20 72 65 61 6c 70 61 74 68 28 24 62 69 .$_SERVER['PATH'].=.realpath($bi
aae0 6e 44 69 72 29 2e 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2e 67 65 74 65 6e 76 28 27 50 41 54 nDir).PATH_SEPARATOR.getenv('PAT
ab00 48 27 29 3b 0a 70 75 74 65 6e 76 28 27 50 41 54 48 3d 27 2e 24 5f 53 45 52 56 45 52 5b 27 50 41 H');.putenv('PATH='.$_SERVER['PA
ab20 54 48 27 5d 29 3b 0a 7d 0a 0a 24 61 72 67 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 TH']);.}..$args.=.$input->getArg
ab40 75 6d 65 6e 74 28 27 61 72 67 73 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 ument('args');..return.$composer
ab60 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
ab80 53 63 72 69 70 74 28 24 73 63 72 69 70 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f Script($script,.$input->getOptio
aba0 6e 28 27 64 65 76 27 29 20 7c 7c 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 n('dev').||.!$input->getOption('
abc0 6e 6f 2d 64 65 76 27 29 2c 20 24 61 72 67 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 no-dev'),.$args);.}..protected.f
abe0 75 6e 63 74 69 6f 6e 20 6c 69 73 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 24 73 63 72 69 70 74 73 unction.listScripts().{.$scripts
ac00 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 50 61 63 6b .=.$this->getComposer()->getPack
ac20 61 67 65 28 29 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 21 63 6f 75 6e 74 age()->getScripts();..if.(!count
ac40 28 24 73 63 72 69 70 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 74 68 69 73 ($scripts)).{.return.0;.}..$this
ac60 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 73 63 72 ->getIO()->writeError('<info>scr
ac80 69 70 74 73 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 72 69 70 74 ipts:</info>');.foreach.($script
aca0 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 63 72 69 70 74 29 20 7b 0a 24 74 68 69 73 2d 3e s.as.$name.=>.$script).{.$this->
acc0 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 20 20 27 20 2e 20 24 6e 61 6d 65 29 3b 0a 7d 0a getIO()->write('..'...$name);.}.
ace0 0a 72 65 74 75 72 6e 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 .return.0;.}.}.<?php............
ad00 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 namespace.Composer\Command;..use
ad20 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 .Composer\Composer;.use.Composer
ad40 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 \Factory;.use.Composer\Downloade
ad60 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 r\TransportException;.use.Compos
ad80 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
ada0 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 43 6f oser\Plugin\PluginEvents;.use.Co
adc0 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 mposer\Util\ConfigValidator;.use
ade0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a .Composer\Util\ProcessExecutor;.
ae00 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 74 use.Composer\Util\RemoteFilesyst
ae20 65 6d 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 em;.use.Composer\Util\StreamCont
ae40 65 78 74 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e extFactory;.use.Symfony\Componen
ae60 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;.
ae80 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
aea0 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 73 73 20 tput\OutputInterface;.....class.
aec0 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a DiagnoseCommand.extends.Command.
aee0 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 {..protected.$rfs;...protected.$
af00 70 72 6f 63 65 73 73 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 66 61 69 6c 75 72 65 73 20 3d process;...protected.$failures.=
af20 20 30 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 67 75 72 .0;..protected.function.configur
af40 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 69 61 67 6e 6f 73 65 27 e().{.$this.->setName('diagnose'
af60 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 61 67 6e 6f 73 65 73 20 74 68 ).->setDescription('Diagnoses.th
af80 65 20 73 79 73 74 65 6d 20 74 6f 20 69 64 65 6e 74 69 66 79 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f e.system.to.identify.common.erro
afa0 72 73 2e 27 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 rs.').->setHelp(<<<EOT.The.<info
afc0 3e 64 69 61 67 6e 6f 73 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 >diagnose</info>.command.checks.
afe0 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 20 74 6f 20 68 65 6c 70 20 64 65 62 75 67 67 69 6e 67 20 common.errors.to.help.debugging.
b000 70 72 6f 62 6c 65 6d 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 problems...EOT.).;.}..protected.
b020 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 function.execute(InputInterface.
b040 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 $input,.OutputInterface.$output)
b060 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 .{.$composer.=.$this->getCompose
b080 72 28 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d r(false);..if.($composer).{.$com
b0a0 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 74 28 50 6c 75 mandEvent.=.new.CommandEvent(Plu
b0c0 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 6e 6f 73 65 27 2c 20 ginEvents::COMMAND,.'diagnose',.
b0e0 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 2d 3e 67 65 74 $input,.$output);.$composer->get
b100 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 28 24 63 6f 6d EventDispatcher()->dispatch($com
b120 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 61 6e 64 45 76 mandEvent->getName(),.$commandEv
b140 65 6e 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 ent);..$this->getIO()->write('Ch
b160 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 20 27 2c 20 66 61 6c 73 65 29 3b ecking.composer.json:.',.false);
b180 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 .$this->outputResult($this->chec
b1a0 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 6d 70 kComposerSchema());.}..if.($comp
b1c0 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 65 74 oser).{.$config.=.$composer->get
b1e0 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 61 63 Config();.}.else.{.$config.=.Fac
b200 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 24 74 68 69 73 2d 3e tory::createConfig();.}..$this->
b220 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 74 68 69 73 rfs.=.new.RemoteFilesystem($this
b240 2d 3e 67 65 74 49 4f 28 29 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 ->getIO(),.$config);.$this->proc
b260 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 24 74 68 69 73 2d ess.=.new.ProcessExecutor($this-
b280 3e 67 65 74 49 4f 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 >getIO());..$this->getIO()->writ
b2a0 65 28 27 43 68 65 63 6b 69 6e 67 20 70 6c 61 74 66 6f 72 6d 20 73 65 74 74 69 6e 67 73 3a 20 27 e('Checking.platform.settings:.'
b2c0 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 ,.false);.$this->outputResult($t
b2e0 68 69 73 2d 3e 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 his->checkPlatform());..$this->g
b300 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 67 69 74 20 73 65 74 74 etIO()->write('Checking.git.sett
b320 69 6e 67 73 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 ings:.',.false);.$this->outputRe
b340 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 47 69 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d sult($this->checkGit());..$this-
b360 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 68 74 74 70 20 63 >getIO()->write('Checking.http.c
b380 6f 6e 6e 65 63 74 69 76 69 74 79 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f onnectivity:.',.false);.$this->o
b3a0 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 28 29 29 3b utputResult($this->checkHttp());
b3c0 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 5f 6f 70 74 ..$opts.=.stream_context_get_opt
b3e0 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 65 74 43 6f ions(StreamContextFactory::getCo
b400 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 3b 0a 69 66 ntext('http://example.org'));.if
b420 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 79 27 5d 29 .(!empty($opts['http']['proxy'])
b440 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b ).{.$this->getIO()->write('Check
b460 69 6e 67 20 48 54 54 50 20 70 72 6f 78 79 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 ing.HTTP.proxy:.',.false);.$this
b480 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 ->outputResult($this->checkHttpP
b4a0 72 6f 78 79 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 roxy());.$this->getIO()->write('
b4c0 43 68 65 63 6b 69 6e 67 20 48 54 54 50 20 70 72 6f 78 79 20 73 75 70 70 6f 72 74 20 66 6f 72 20 Checking.HTTP.proxy.support.for.
b4e0 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 request_fulluri:.',.false);.$thi
b500 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 s->outputResult($this->checkHttp
b520 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 29 3b 0a 24 74 68 ProxyFullUriRequestParam());.$th
b540 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 is->getIO()->write('Checking.HTT
b560 50 53 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 66 75 6c PS.proxy.support.for.request_ful
b580 6c 75 72 69 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 luri:.',.false);.$this->outputRe
b5a0 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 sult($this->checkHttpsProxyFullU
b5c0 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 61 75 74 68 riRequestParam());.}..if.($oauth
b5e0 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 74 68 27 29 29 .=.$config->get('github-oauth'))
b600 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 69 6e 20 3d 3e .{.foreach.($oauth.as.$domain.=>
b620 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 .$token).{.$this->getIO()->write
b640 28 27 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 ('Checking.'.$domain.'.oauth.acc
b660 65 73 73 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 ess:.',.false);.$this->outputRes
b680 75 6c 74 28 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 ult($this->checkGithubOauth($dom
b6a0 61 69 6e 2c 20 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ain,.$token));.}.}.else.{.$this-
b6c0 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 67 69 74 68 75 62 >getIO()->write('Checking.github
b6e0 2e 63 6f 6d 20 72 61 74 65 20 6c 69 6d 69 74 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 72 61 74 .com.rate.limit:.',.false);.$rat
b700 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 47 69 74 68 75 62 52 61 74 65 4c 69 6d 69 74 28 27 67 e.=.$this->getGithubRateLimit('g
b720 69 74 68 75 62 2e 63 6f 6d 27 29 3b 0a 0a 69 66 20 28 31 30 20 3e 20 24 72 61 74 65 5b 27 72 65 ithub.com');..if.(10.>.$rate['re
b740 6d 61 69 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 maining']).{.$this->getIO()->wri
b760 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 57 41 52 4e 49 4e 47 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 te('<warning>WARNING</warning>')
b780 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 ;.$this->getIO()->write(sprintf(
b7a0 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 47 69 74 68 75 62 20 68 61 73 20 61 20 72 61 74 65 20 6c 69 6d .'<comment>Github.has.a.rate.lim
b7c0 69 74 20 6f 6e 20 74 68 65 69 72 20 41 50 49 2e 20 27 0a 2e 20 27 59 6f 75 20 63 75 72 72 65 6e it.on.their.API..'...'You.curren
b7e0 74 6c 79 20 68 61 76 65 20 3c 6f 70 74 69 6f 6e 73 3d 62 6f 6c 64 3e 25 75 3c 2f 6f 70 74 69 6f tly.have.<options=bold>%u</optio
b800 6e 73 3d 62 6f 6c 64 3e 20 27 0a 2e 20 27 6f 75 74 20 6f 66 20 3c 6f 70 74 69 6f 6e 73 3d 62 6f ns=bold>.'...'out.of.<options=bo
b820 6c 64 3e 25 75 3c 2f 6f 70 74 69 6f 6e 73 3d 62 6f 6c 64 3e 20 72 65 71 75 65 73 74 73 20 6c 65 ld>%u</options=bold>.requests.le
b840 66 74 2e 27 20 2e 20 50 48 50 5f 45 4f 4c 0a 2e 20 27 53 65 65 20 68 74 74 70 73 3a 2f 2f 64 65 ft.'...PHP_EOL...'See.https://de
b860 76 65 6c 6f 70 65 72 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 76 33 2f 23 72 61 74 65 2d 6c 69 6d 69 veloper.github.com/v3/#rate-limi
b880 74 69 6e 67 20 61 6e 64 20 61 6c 73 6f 27 20 2e 20 50 48 50 5f 45 4f 4c 0a 2e 20 27 20 20 20 20 ting.and.also'...PHP_EOL...'....
b8a0 68 74 74 70 73 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 https://getcomposer.org/doc/arti
b8c0 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 23 61 70 69 2d 72 61 74 65 cles/troubleshooting.md#api-rate
b8e0 2d 6c 69 6d 69 74 2d 61 6e 64 2d 6f 61 75 74 68 2d 74 6f 6b 65 6e 73 3c 2f 63 6f 6d 6d 65 6e 74 -limit-and-oauth-tokens</comment
b900 3e 27 2c 0a 24 72 61 74 65 5b 27 72 65 6d 61 69 6e 69 6e 67 27 5d 2c 0a 24 72 61 74 65 5b 27 6c >',.$rate['remaining'],.$rate['l
b920 69 6d 69 74 27 5d 0a 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f imit'].));.}.else.{.$this->getIO
b940 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 4f 4b 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a ()->write('<info>OK</info>');.}.
b960 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 }..$this->getIO()->write('Checki
b980 6e 67 20 64 69 73 6b 20 66 72 65 65 20 73 70 61 63 65 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 ng.disk.free.space:.',.false);.$
b9a0 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 44 this->outputResult($this->checkD
b9c0 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 67 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 iskSpace($config));..$this->getI
b9e0 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 76 65 O()->write('Checking.composer.ve
ba00 72 73 69 6f 6e 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 rsion:.',.false);.$this->outputR
ba20 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 esult($this->checkVersion());..r
ba40 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 0a 70 72 69 76 61 74 eturn.$this->failures;.}..privat
ba60 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 63 68 65 6d 61 28 29 e.function.checkComposerSchema()
ba80 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 67 56 61 6c 69 64 61 .{.$validator.=.new.ConfigValida
baa0 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 28 24 65 72 72 6f 72 tor($this->getIO());.list($error
bac0 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 6e 67 73 29 20 3d 20 s,.$publishErrors,.$warnings).=.
bae0 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 6f 72 79 3a 3a 67 65 $validator->validate(Factory::ge
bb00 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 72 72 6f 72 73 20 7c tComposerFile());..if.($errors.|
bb20 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 69 6e 67 73 29 20 7b |.$publishErrors.||.$warnings).{
bb40 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 20 61 .$messages.=.array(.'error'.=>.a
bb60 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 72 6f rray_merge($errors,.$publishErro
bb80 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 3b 0a rs),.'warning'.=>.$warnings,.);.
bba0 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 6d 65 73 73 61 67 65 .$output.=.'';.foreach.($message
bbc0 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 6f 72 65 61 63 68 20 s.as.$style.=>.$msgs).{.foreach.
bbe0 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 20 2e 3d 20 27 3c 27 ($msgs.as.$msg).{.$output..=.'<'
bc00 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 24 6d 73 67 20 2e 20 27 3c 2f 27 20 2e 20 ...$style...'>'...$msg...'</'...
bc20 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 0a 7d 0a 0a 72 65 74 $style...'>'...PHP_EOL;.}.}..ret
bc40 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 74 75 72 6e 20 74 72 urn.rtrim($output);.}..return.tr
bc60 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 63 6b 47 69 74 ue;.}..private.function.checkGit
bc80 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 75 74 65 28 27 67 69 ().{.$this->process->execute('gi
bca0 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 75 74 29 3b 0a 69 66 t.config.color.ui',.$output);.if
bcc0 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 29 29 20 3d 3d 3d 20 .(strtolower(trim($output)).===.
bce0 27 61 6c 77 61 79 73 27 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 63 6f 6d 6d 65 6e 74 3e 59 6f 75 'always').{.return.'<comment>You
bd00 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 20 73 65 74 20 74 6f r.git.color.ui.setting.is.set.to
bd20 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 20 63 72 65 61 74 65 .always,.this.is.known.to.create
bd40 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 2d 2d 67 6c 6f 62 61 .issues..Use."git.config.--globa
bd60 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 74 20 63 6f 72 72 65 l.color.ui.true".to.set.it.corre
bd80 63 74 6c 79 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 ctly.</comment>';.}..return.true
bda0 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 63 6b 48 74 74 70 28 ;.}..private.function.checkHttp(
bdc0 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 5f 6c 6f 61 64 65 64 ).{.$protocol.=.extension_loaded
bde0 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 70 27 3b 0a ('openssl').?.'https'.:.'http';.
be00 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 27 70 try.{.$this->rfs->getContents('p
be20 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
be40 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
be60 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 se);.}.catch.(\Exception.$e).{.r
be80 65 74 75 72 6e 20 24 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 eturn.$e;.}..return.true;.}..pri
bea0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 28 29 0a 7b vate.function.checkHttpProxy().{
bec0 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f .$protocol.=.extension_loaded('o
bee0 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 70 27 3b 0a 74 72 79 penssl').?.'https'.:.'http';.try
bf00 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 72 66 .{.$json.=.json_decode($this->rf
bf20 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 2c 20 s->getContents('packagist.org',.
bf40 24 70 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 $protocol...'://packagist.org/pa
bf60 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c 73 65 29 2c 20 74 72 75 65 29 3b 0a 24 68 61 ckages.json',.false),.true);.$ha
bf80 73 68 20 3d 20 72 65 73 65 74 28 24 6a 73 6f 6e 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 sh.=.reset($json['provider-inclu
bfa0 64 65 73 27 5d 29 3b 0a 24 68 61 73 68 20 3d 20 24 68 61 73 68 5b 27 73 68 61 32 35 36 27 5d 3b des']);.$hash.=.$hash['sha256'];
bfc0 0a 24 70 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 68 61 73 68 25 27 2c 20 24 .$path.=.str_replace('%hash%',.$
bfe0 68 61 73 68 2c 20 6b 65 79 28 24 6a 73 6f 6e 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 hash,.key($json['provider-includ
c000 65 73 27 5d 29 29 3b 0a 24 70 72 6f 76 69 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e es']));.$provider.=.$this->rfs->
c020 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 72 getContents('packagist.org',.$pr
c040 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 27 2e 24 70 61 otocol...'://packagist.org/'.$pa
c060 74 68 2c 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 th,.false);..if.(hash('sha256',.
c080 24 70 72 6f 76 69 64 65 72 29 20 21 3d 3d 20 24 68 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 27 $provider).!==.$hash).{.return.'
c0a0 49 74 20 73 65 65 6d 73 20 74 68 61 74 20 79 6f 75 72 20 70 72 6f 78 79 20 69 73 20 6d 6f 64 69 It.seems.that.your.proxy.is.modi
c0c0 66 79 69 6e 67 20 68 74 74 70 20 74 72 61 66 66 69 63 20 6f 6e 20 74 68 65 20 66 6c 79 27 3b 0a fying.http.traffic.on.the.fly';.
c0e0 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 72 65 74 75 }.}.catch.(\Exception.$e).{.retu
c100 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a rn.$e;.}..return.true;.}........
c120 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 .private.function.checkHttpProxy
c140 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 0a 7b 0a 24 75 72 6c 20 3d 20 27 FullUriRequestParam().{.$url.=.'
c160 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 http://packagist.org/packages.js
c180 6f 6e 27 3b 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 on';.try.{.$this->rfs->getConten
c1a0 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 ts('packagist.org',.$url,.false)
c1c0 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 65 ;.}.catch.(TransportException.$e
c1e0 29 20 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 ).{.try.{.$this->rfs->getContent
c200 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 s('packagist.org',.$url,.false,.
c220 61 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 array('http'.=>.array('request_f
c240 75 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 ulluri'.=>.false)));.}.catch.(Tr
c260 61 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 ansportException.$e).{.return.'U
c280 6e 61 62 6c 65 20 74 6f 20 61 73 73 65 73 73 20 74 68 65 20 73 69 74 75 61 74 69 6f 6e 2c 20 6d nable.to.assess.the.situation,.m
c2a0 61 79 62 65 20 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 20 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 aybe.packagist.org.is.down.('.$e
c2c0 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 ->getMessage().')';.}..return.'I
c2e0 74 20 73 65 65 6d 73 20 74 68 65 72 65 20 69 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 t.seems.there.is.a.problem.with.
c300 79 6f 75 72 20 70 72 6f 78 79 20 73 65 72 76 65 72 2c 20 74 72 79 20 73 65 74 74 69 6e 67 20 74 your.proxy.server,.try.setting.t
c320 68 65 20 22 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 he."HTTP_PROXY_REQUEST_FULLURI".
c340 61 6e 64 20 22 48 54 54 50 53 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 and."HTTPS_PROXY_REQUEST_FULLURI
c360 22 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 20 74 6f 20 22 66 61 6c 73 ".environment.variables.to."fals
c380 65 22 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 e"';.}..return.true;.}.........p
c3a0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 48 74 74 70 73 50 72 6f 78 79 46 rivate.function.checkHttpsProxyF
c3c0 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 ullUriRequestParam().{.if.(!exte
c3e0 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 72 65 74 75 72 nsion_loaded('openssl')).{.retur
c400 6e 20 27 59 6f 75 20 6e 65 65 64 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f n.'You.need.the.openssl.extensio
c420 6e 20 69 6e 73 74 61 6c 6c 65 64 20 66 6f 72 20 74 68 69 73 20 63 68 65 63 6b 27 3b 0a 7d 0a 0a n.installed.for.this.check';.}..
c440 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 2f 72 $url.=.'https://api.github.com/r
c460 65 70 6f 73 2f 53 65 6c 64 61 65 6b 2f 6a 73 6f 6e 6c 69 6e 74 2f 7a 69 70 62 61 6c 6c 2f 31 2e epos/Seldaek/jsonlint/zipball/1.
c480 30 2e 30 27 3b 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 0.0';.try.{.$this->rfs->getConte
c4a0 6e 74 73 28 27 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 nts('github.com',.$url,.false);.
c4c0 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).
c4e0 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(
c500 27 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 72 72 61 79 'github.com',.$url,.false,.array
c520 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 6c 6c 75 72 ('http'.=>.array('request_fullur
c540 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 6e 73 70 6f i'.=>.false)));.}.catch.(Transpo
c560 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 61 62 6c 65 rtException.$e).{.return.'Unable
c580 20 74 6f 20 61 73 73 65 73 73 20 74 68 65 20 73 69 74 75 61 74 69 6f 6e 2c 20 6d 61 79 62 65 20 .to.assess.the.situation,.maybe.
c5a0 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 73 61 67 65 github.is.down.('.$e->getMessage
c5c0 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 74 68 65 72 ().')';.}..return.'It.seems.ther
c5e0 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 78 79 20 73 e.is.a.problem.with.your.proxy.s
c600 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 53 5f 50 52 erver,.try.setting.the."HTTPS_PR
c620 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 6d 65 6e 74 OXY_REQUEST_FULLURI".environment
c640 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 74 75 72 6e .variable.to."false"';.}..return
c660 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 63 6b .true;.}..private.function.check
c680 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 0a 7b 0a 24 GithubOauth($domain,.$token).{.$
c6a0 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 74 69 6f 6e this->getIO()->setAuthentication
c6c0 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 61 73 69 63 ($domain,.$token,.'x-oauth-basic
c6e0 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 20 27 67 69 ');.try.{.$url.=.$domain.===.'gi
c700 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 64 6f 6d 61 thub.com'.?.'https://api.'.$doma
c720 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 27 2e 24 64 in.'/user/repos'.:.'https://'.$d
c740 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 0a 72 65 74 omain.'/api/v3/user/repos';..ret
c760 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 24 64 6f 6d urn.$this->rfs->getContents($dom
c780 61 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 0a 27 72 65 74 72 79 2d ain,.$url,.false,.array(.'retry-
c7a0 61 75 74 68 2d 66 61 69 6c 75 72 65 27 20 3d 3e 20 66 61 6c 73 65 0a 29 29 20 3f 20 74 72 75 65 auth-failure'.=>.false.)).?.true
c7c0 20 3a 20 27 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 .:.'Unexpected.error';.}.catch.(
c7e0 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 \Exception.$e).{.if.($e.instance
c800 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 65 74 of.TransportException.&&.$e->get
c820 43 6f 64 65 28 29 20 3d 3d 3d 20 34 30 31 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 63 6f 6d 6d 65 Code().===.401).{.return.'<comme
c840 6e 74 3e 54 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 nt>The.oauth.token.for.'.$domain
c860 2e 27 20 73 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 .'.seems.invalid,.run."composer.
c880 63 6f 6e 66 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 config.--global.--unset.github-o
c8a0 61 75 74 68 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 auth.'.$domain.'".to.remove.it</
c8c0 63 6f 6d 6d 65 6e 74 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 comment>';.}..return.$e;.}.}..pr
c8e0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 69 74 68 75 62 52 61 74 65 4c 69 6d 69 ivate.function.getGithubRateLimi
c900 74 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 t($domain,.$token.=.null).{.if.(
c920 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 73 65 74 41 75 74 $token).{.$this->getIO()->setAut
c940 68 65 6e 74 69 63 61 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 hentication($domain,.$token,.'x-
c960 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 75 72 6c 20 3d 20 24 oauth-basic');.}..try.{.$url.=.$
c980 64 6f 6d 61 69 6e 20 3d 3d 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3f 20 27 68 74 74 70 73 domain.===.'github.com'.?.'https
c9a0 3a 2f 2f 61 70 69 2e 27 2e 24 64 6f 6d 61 69 6e 2e 27 2f 72 61 74 65 5f 6c 69 6d 69 74 27 20 3a ://api.'.$domain.'/rate_limit'.:
c9c0 20 27 68 74 74 70 73 3a 2f 2f 27 2e 24 64 6f 6d 61 69 6e 2e 27 2f 61 70 69 2f 72 61 74 65 5f 6c .'https://'.$domain.'/api/rate_l
c9e0 69 6d 69 74 27 3b 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 imit';.$json.=.$this->rfs->getCo
ca00 6e 74 65 6e 74 73 28 24 64 6f 6d 61 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 ntents($domain,.$url,.false,.arr
ca20 61 79 28 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 20 3d 3e 20 66 61 6c 73 65 ay('retry-auth-failure'.=>.false
ca40 29 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 ));.$data.=.json_decode($json,.t
ca60 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 5b 27 72 65 73 6f 75 72 63 65 73 27 5d rue);..return.$data['resources']
ca80 5b 27 63 6f 72 65 27 5d 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 ['core'];.}.catch.(\Exception.$e
caa0 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 45 ).{.if.($e.instanceof.TransportE
cac0 78 63 65 70 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 34 30 xception.&&.$e->getCode().===.40
cae0 31 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 63 6f 6d 6d 65 6e 74 3e 54 68 65 20 6f 61 75 74 68 20 1).{.return.'<comment>The.oauth.
cb00 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 73 65 65 6d 73 20 69 6e 76 61 token.for.'.$domain.'.seems.inva
cb20 6c 69 64 2c 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 20 2d 2d 67 6c 6f 62 lid,.run."composer.config.--glob
cb40 61 6c 20 2d 2d 75 6e 73 65 74 20 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 64 6f 6d 61 69 al.--unset.github-oauth.'.$domai
cb60 6e 2e 27 22 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a n.'".to.remove.it</comment>';.}.
cb80 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f .return.$e;.}.}..private.functio
cba0 6e 20 63 68 65 63 6b 44 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 6d 69 6e n.checkDiskSpace($config).{.$min
cbc0 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 69 66 20 28 28 28 24 64 66 SpaceFree.=.1024*1024;.if.((($df
cbe0 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 24 63 6f 6e 66 .=.@disk_free_space($dir.=.$conf
cc00 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 ig->get('home'))).!==.false.&&.$
cc20 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 7c 7c 20 28 28 24 64 66 20 3d 20 40 df.<.$minSpaceFree).||.(($df.=.@
cc40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e disk_free_space($dir.=.$config->
cc60 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 get('vendor-dir'))).!==.false.&&
cc80 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 20 7b 0a 72 65 74 75 72 6e .$df.<.$minSpaceFree).).{.return
cca0 20 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 6b 20 68 6f 73 74 69 6e 67 20 27 2e 24 64 69 72 .'<error>The.disk.hosting.'.$dir
ccc0 2e 27 20 69 73 20 66 75 6c 6c 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 .'.is.full</error>';.}..return.t
cce0 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 63 6b 56 65 rue;.}..private.function.checkVe
cd00 72 73 69 6f 6e 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 5f rsion().{.$protocol.=.extension_
cd20 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 68 loaded('openssl').?.'https'.:.'h
cd40 74 74 70 27 3b 0a 24 6c 61 74 65 73 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 66 73 2d ttp';.$latest.=.trim($this->rfs-
cd60 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 >getContents('getcomposer.org',.
cd80 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f $protocol...'://getcomposer.org/
cda0 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 version',.false));..if.(Composer
cdc0 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 20 26 26 20 43 6f 6d 70 6f 73 65 ::VERSION.!==.$latest.&&.Compose
cde0 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 27 40 70 61 63 6b 61 67 65 5f 76 65 72 73 69 6f 6e r::VERSION.!==.'@package_version
ce00 40 27 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 63 6f 6d 6d 65 6e 74 3e 59 6f 75 20 61 72 65 20 6e @').{.return.'<comment>You.are.n
ce20 6f 74 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 3c 2f 63 ot.running.the.latest.version</c
ce40 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 omment>';.}..return.true;.}..pri
ce60 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 72 65 73 75 vate.function.outputResult($resu
ce80 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 0a 24 74 lt).{.if.(true.===.$result).{.$t
cea0 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 4f 4b 3c 2f 69 his->getIO()->write('<info>OK</i
cec0 6e 66 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 nfo>');.}.else.{.$this->failures
cee0 2b 2b 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f ++;.$this->getIO()->write('<erro
cf00 72 3e 46 41 49 4c 3c 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 r>FAIL</error>');.if.($result.in
cf20 73 74 61 6e 63 65 6f 66 20 5c 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 stanceof.\Exception).{.$this->ge
cf40 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 72 65 73 75 tIO()->write('['.get_class($resu
cf60 6c 74 29 2e 27 5d 20 27 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b lt).'].'.$result->getMessage());
cf80 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 .}.elseif.($result).{.$this->get
cfa0 49 4f 28 29 2d 3e 77 72 69 74 65 28 74 72 69 6d 28 24 72 65 73 75 6c 74 29 29 3b 0a 7d 0a 7d 0a IO()->write(trim($result));.}.}.
cfc0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 50 6c 61 74 66 6f 72 }..private.function.checkPlatfor
cfe0 6d 28 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 24 6f 75 74 20 3d 20 66 75 6e 63 74 m().{.$output.=.'';.$out.=.funct
d000 69 6f 6e 20 28 24 6d 73 67 2c 20 24 73 74 79 6c 65 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 ion.($msg,.$style).use.(&$output
d020 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 27 3c 27 2e 24 73 74 79 6c 65 2e 27 3e 27 2e 24 6d ).{.$output..=.'<'.$style.'>'.$m
d040 73 67 2e 27 3c 2f 27 2e 24 73 74 79 6c 65 2e 27 3e 27 2e 50 48 50 5f 45 4f 4c 3b 0a 7d 3b 0a 0a sg.'</'.$style.'>'.PHP_EOL;.};..
d060 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 3d ..$errors.=.array();.$warnings.=
d080 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 6f .array();..$iniPath.=.php_ini_lo
d0a0 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 20 aded_file();.$displayIniMessage.
d0c0 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 73 =.false;.if.($iniPath).{.$iniMes
d0e0 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 2e sage.=.PHP_EOL.PHP_EOL.'The.php.
d100 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 48 ini.used.by.your.command-line.PH
d120 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 6e P.is:.'...$iniPath;.}.else.{.$in
d140 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 68 iMessage.=.PHP_EOL.PHP_EOL.'A.ph
d160 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 77 p.ini.file.does.not.exist..You.w
d180 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 69 ill.have.to.create.one.';.}.$ini
d1a0 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 6e Message..=.PHP_EOL.'If.you.can.n
d1c0 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 20 ot.modify.the.ini.file,.you.can.
d1e0 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 74 also.run.`php.-d.option=value`.t
d200 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 20 o.modify.ini.values.on.the.fly..
d220 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 3b You.can.use.-d.multiple.times.';
d240 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6a 73 6f 6e 5f 64 65 63 ..if.(!function_exists('json_dec
d260 6f 64 65 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 6a 73 6f 6e 27 5d 20 3d 20 74 72 75 65 3b ode')).{.$errors['json'].=.true;
d280 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 50 68 61 72 27 .}..if.(!extension_loaded('Phar'
d2a0 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 70 68 61 72 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a )).{.$errors['phar'].=.true;.}..
d2c0 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 66 69 6c 74 65 72 27 29 29 if.(!extension_loaded('filter'))
d2e0 20 7b 0a 24 65 72 72 6f 72 73 5b 27 66 69 6c 74 65 72 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a .{.$errors['filter'].=.true;.}..
d300 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 68 61 73 68 27 29 29 20 7b if.(!extension_loaded('hash')).{
d320 0a 24 65 72 72 6f 72 73 5b 27 68 61 73 68 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 .$errors['hash'].=.true;.}..if.(
d340 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 63 74 79 70 65 27 29 29 20 7b 0a 24 65 !extension_loaded('ctype')).{.$e
d360 72 72 6f 72 73 5b 27 63 74 79 70 65 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 rrors['ctype'].=.true;.}..if.(!i
d380 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 ni_get('allow_url_fopen')).{.$er
d3a0 72 6f 72 73 5b 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 5d 20 3d 20 74 72 75 65 3b 0a rors['allow_url_fopen'].=.true;.
d3c0 7d 0a 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 69 6f 6e 43 75 62 65 }..if.(extension_loaded('ionCube
d3e0 20 4c 6f 61 64 65 72 27 29 20 26 26 20 69 6f 6e 63 75 62 65 5f 6c 6f 61 64 65 72 5f 69 76 65 72 .Loader').&&.ioncube_loader_iver
d400 73 69 6f 6e 28 29 20 3c 20 34 30 30 30 39 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 69 6f 6e 63 75 sion().<.40009).{.$errors['ioncu
d420 62 65 27 5d 20 3d 20 69 6f 6e 63 75 62 65 5f 6c 6f 61 64 65 72 5f 76 65 72 73 69 6f 6e 28 29 3b be'].=.ioncube_loader_version();
d440 0a 7d 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 .}..if.(version_compare(PHP_VERS
d460 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 70 ION,.'5.3.2',.'<')).{.$errors['p
d480 68 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 hp'].=.PHP_VERSION;.}..if.(!isse
d4a0 74 28 24 65 72 72 6f 72 73 5b 27 70 68 70 27 5d 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d t($errors['php']).&&.version_com
d4c0 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 34 27 2c 20 27 3c 27 29 29 pare(PHP_VERSION,.'5.3.4',.'<'))
d4e0 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 70 68 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f .{.$warnings['php'].=.PHP_VERSIO
d500 4e 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 N;.}..if.(!extension_loaded('ope
d520 6e 73 73 6c 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 6f 70 65 6e 73 73 6c 27 5d 20 3d 20 74 nssl')).{.$errors['openssl'].=.t
d540 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 rue;.}..if.(!defined('HHVM_VERSI
d560 4f 4e 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 61 70 63 75 27 ON').&&.!extension_loaded('apcu'
d580 29 20 26 26 20 69 6e 69 5f 67 65 74 28 27 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 27 29 29 20 ).&&.ini_get('apc.enable_cli')).
d5a0 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 61 70 63 5f 63 6c 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d {.$warnings['apc_cli'].=.true;.}
d5c0 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 ..ob_start();.phpinfo(INFO_GENER
d5e0 41 4c 29 3b 0a 24 70 68 70 69 6e 66 6f 20 3d 20 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a AL);.$phpinfo.=.ob_get_clean();.
d600 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 43 6f 6e 66 69 67 75 72 65 20 43 6f 6d 6d 61 if.(preg_match('{Configure.Comma
d620 6e 64 28 3f 3a 20 2a 3c 2f 74 64 3e 3c 74 64 20 63 6c 61 73 73 3d 22 76 22 3e 7c 20 2a 3d 3e 20 nd(?:.*</td><td.class="v">|.*=>.
d640 2a 29 28 2e 2a 3f 29 28 3f 3a 3c 2f 74 64 3e 7c 24 29 7d 6d 27 2c 20 24 70 68 70 69 6e 66 6f 2c *)(.*?)(?:</td>|$)}m',.$phpinfo,
d660 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 66 69 67 75 72 65 20 3d 20 24 6d 61 74 63 68 5b .$match)).{.$configure.=.$match[
d680 31 5d 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 1];..if.(false.!==.strpos($confi
d6a0 67 75 72 65 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 27 29 29 20 7b 0a 24 77 gure,.'--enable-sigchild')).{.$w
d6c0 61 72 6e 69 6e 67 73 5b 27 73 69 67 63 68 69 6c 64 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 arnings['sigchild'].=.true;.}..i
d6e0 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 f.(false.!==.strpos($configure,.
d700 27 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 70 70 65 72 73 27 29 29 20 7b 0a 24 77 61 72 6e 69 '--with-curlwrappers')).{.$warni
d720 6e 67 73 5b 27 63 75 72 6c 77 72 61 70 70 65 72 73 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a ngs['curlwrappers'].=.true;.}.}.
d740 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 62 75 67 2e 70 72 6f 66 69 6c 65 72 5f 65 6e .if.(ini_get('xdebug.profiler_en
d760 61 62 6c 65 64 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 78 64 65 62 75 67 5f 70 72 6f abled')).{.$warnings['xdebug_pro
d780 66 69 6c 65 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 65 78 74 65 6e 73 69 file'].=.true;.}.elseif.(extensi
d7a0 6f 6e 5f 6c 6f 61 64 65 64 28 27 78 64 65 62 75 67 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 on_loaded('xdebug')).{.$warnings
d7c0 5b 27 78 64 65 62 75 67 5f 6c 6f 61 64 65 64 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 ['xdebug_loaded'].=.true;.}..if.
d7e0 28 21 65 6d 70 74 79 28 24 65 72 72 6f 72 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 72 (!empty($errors)).{.foreach.($er
d800 72 6f 72 73 20 61 73 20 24 65 72 72 6f 72 20 3d 3e 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 rors.as.$error.=>.$current).{.sw
d820 69 74 63 68 20 28 24 65 72 72 6f 72 29 20 7b 0a 63 61 73 65 20 27 6a 73 6f 6e 27 3a 0a 24 74 65 itch.($error).{.case.'json':.$te
d840 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 6a 73 6f 6e 20 65 78 74 65 6e 73 69 6f 6e xt.=.PHP_EOL."The.json.extension
d860 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 .is.missing.".PHP_EOL;.$text..=.
d880 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 "Install.it.or.recompile.php.wit
d8a0 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 6a 73 6f 6e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 hout.--disable-json";.break;..ca
d8c0 73 65 20 27 70 68 61 72 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 se.'phar':.$text.=.PHP_EOL."The.
d8e0 70 68 61 72 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 5f phar.extension.is.missing.".PHP_
d900 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 63 EOL;.$text..=."Install.it.or.rec
d920 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 70 68 61 ompile.php.without.--disable-pha
d940 72 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 66 69 6c 74 65 72 27 3a 0a 24 74 65 78 74 r";.break;..case.'filter':.$text
d960 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 66 69 6c 74 65 72 20 65 78 74 65 6e 73 69 6f 6e .=.PHP_EOL."The.filter.extension
d980 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 .is.missing.".PHP_EOL;.$text..=.
d9a0 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 "Install.it.or.recompile.php.wit
d9c0 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 66 69 6c 74 65 72 22 3b 0a 62 72 65 61 6b 3b 0a 0a hout.--disable-filter";.break;..
d9e0 63 61 73 65 20 27 68 61 73 68 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 case.'hash':.$text.=.PHP_EOL."Th
da00 65 20 68 61 73 68 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 e.hash.extension.is.missing.".PH
da20 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 P_EOL;.$text..=."Install.it.or.r
da40 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 68 ecompile.php.without.--disable-h
da60 61 73 68 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 63 74 79 70 65 27 3a 0a 24 74 65 78 ash";.break;..case.'ctype':.$tex
da80 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 63 74 79 70 65 20 65 78 74 65 6e 73 69 6f 6e t.=.PHP_EOL."The.ctype.extension
daa0 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 .is.missing.".PHP_EOL;.$text..=.
dac0 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 "Install.it.or.recompile.php.wit
dae0 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 63 74 79 70 65 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 hout.--disable-ctype";.break;..c
db00 61 73 65 20 27 75 6e 69 63 6f 64 65 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 ase.'unicode':.$text.=.PHP_EOL."
db20 54 68 65 20 64 65 74 65 63 74 5f 75 6e 69 63 6f 64 65 20 73 65 74 74 69 6e 67 20 6d 75 73 74 20 The.detect_unicode.setting.must.
db40 62 65 20 64 69 73 61 62 6c 65 64 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 be.disabled.".PHP_EOL;.$text..=.
db60 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 6e 64 20 6f 66 "Add.the.following.to.the.end.of
db80 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 24 74 65 78 74 .your.`php.ini`:".PHP_EOL;.$text
dba0 20 2e 3d 20 22 20 20 20 20 64 65 74 65 63 74 5f 75 6e 69 63 6f 64 65 20 3d 20 4f 66 66 22 3b 0a ..=."....detect_unicode.=.Off";.
dbc0 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 62 72 65 61 6b $displayIniMessage.=.true;.break
dbe0 3b 0a 0a 63 61 73 65 20 27 73 75 68 6f 73 69 6e 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 ;..case.'suhosin':.$text.=.PHP_E
dc00 4f 4c 2e 22 54 68 65 20 73 75 68 6f 73 69 6e 2e 65 78 65 63 75 74 6f 72 2e 69 6e 63 6c 75 64 65 OL."The.suhosin.executor.include
dc20 2e 77 68 69 74 65 6c 69 73 74 20 73 65 74 74 69 6e 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e .whitelist.setting.is.incorrect.
dc40 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 65 20 66 6f 6c ".PHP_EOL;.$text..=."Add.the.fol
dc60 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 70 68 70 2e 69 lowing.to.the.end.of.your.`php.i
dc80 6e 69 60 20 6f 72 20 73 75 68 6f 73 69 6e 2e 69 6e 69 20 28 45 78 61 6d 70 6c 65 20 70 61 74 68 ni`.or.suhosin.ini.(Example.path
dca0 20 5b 66 6f 72 20 44 65 62 69 61 6e 5d 3a 20 2f 65 74 63 2f 70 68 70 35 2f 63 6c 69 2f 63 6f 6e .[for.Debian]:./etc/php5/cli/con
dcc0 66 2e 64 2f 73 75 68 6f 73 69 6e 2e 69 6e 69 29 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 f.d/suhosin.ini):".PHP_EOL;.$tex
dce0 74 20 2e 3d 20 22 20 20 20 20 73 75 68 6f 73 69 6e 2e 65 78 65 63 75 74 6f 72 2e 69 6e 63 6c 75 t..=."....suhosin.executor.inclu
dd00 64 65 2e 77 68 69 74 65 6c 69 73 74 20 3d 20 70 68 61 72 20 22 2e 24 63 75 72 72 65 6e 74 3b 0a de.whitelist.=.phar.".$current;.
dd20 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 62 72 65 61 6b $displayIniMessage.=.true;.break
dd40 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 2e 22 ;..case.'php':.$text.=.PHP_EOL."
dd60 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 74 6f 6f 20 6f 6c 64 Your.PHP.({$current}).is.too.old
dd80 2c 20 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 ,.you.must.upgrade.to.PHP.5.3.2.
dda0 6f 72 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 or.higher.";.break;..case.'allow
ddc0 5f 75 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 _url_fopen':.$text.=.PHP_EOL."Th
dde0 65 20 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 e.allow_url_fopen.setting.is.inc
de00 6f 72 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 orrect.".PHP_EOL;.$text..=."Add.
de20 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 75 72 the.following.to.the.end.of.your
de40 20 60 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 .`php.ini`:".PHP_EOL;.$text..=."
de60 20 20 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 ....allow_url_fopen.=.On";.$disp
de80 6c 61 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 0a 63 61 layIniMessage.=.true;.break;..ca
dea0 73 65 20 27 69 6f 6e 63 75 62 65 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 se.'ioncube':.$text.=.PHP_EOL."Y
dec0 6f 75 72 20 69 6f 6e 43 75 62 65 20 4c 6f 61 64 65 72 20 65 78 74 65 6e 73 69 6f 6e 20 28 24 63 our.ionCube.Loader.extension.($c
dee0 75 72 72 65 6e 74 29 20 69 73 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 50 68 61 urrent).is.incompatible.with.Pha
df00 72 20 66 69 6c 65 73 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 55 70 67 r.files.".PHP_EOL;.$text..=."Upg
df20 72 61 64 65 20 74 6f 20 69 6f 6e 43 75 62 65 20 34 2e 30 2e 39 20 6f 72 20 68 69 67 68 65 72 20 rade.to.ionCube.4.0.9.or.higher.
df40 6f 72 20 72 65 6d 6f 76 65 20 74 68 69 73 20 6c 69 6e 65 20 28 70 61 74 68 20 6d 61 79 20 62 65 or.remove.this.line.(path.may.be
df60 20 64 69 66 66 65 72 65 6e 74 29 20 66 72 6f 6d 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 20 .different).from.your.`php.ini`.
df80 74 6f 20 64 69 73 61 62 6c 65 20 69 74 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e to.disable.it:".PHP_EOL;.$text..
dfa0 3d 20 22 20 20 20 20 7a 65 6e 64 5f 65 78 74 65 6e 73 69 6f 6e 20 3d 20 2f 75 73 72 2f 6c 69 62 =."....zend_extension.=./usr/lib
dfc0 2f 70 68 70 35 2f 32 30 30 39 30 36 32 36 2b 6c 66 73 2f 69 6f 6e 63 75 62 65 5f 6c 6f 61 64 65 /php5/20090626+lfs/ioncube_loade
dfe0 72 5f 6c 69 6e 5f 35 2e 33 2e 73 6f 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 r_lin_5.3.so";.$displayIniMessag
e000 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6f 70 65 6e 73 73 6c 27 e.=.true;.break;..case.'openssl'
e020 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 6f 70 65 6e 73 73 6c 20 65 :.$text.=.PHP_EOL."The.openssl.e
e040 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 xtension.is.missing,.which.means
e060 20 74 68 61 74 20 73 65 63 75 72 65 20 48 54 54 50 53 20 74 72 61 6e 73 66 65 72 73 20 61 72 65 .that.secure.HTTPS.transfers.are
e080 20 69 6d 70 6f 73 73 69 62 6c 65 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 .impossible.".PHP_EOL;.$text..=.
e0a0 22 49 66 20 70 6f 73 73 69 62 6c 65 20 79 6f 75 20 73 68 6f 75 6c 64 20 65 6e 61 62 6c 65 20 69 "If.possible.you.should.enable.i
e0c0 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 20 2d 2d 77 69 74 68 2d 6f t.or.recompile.php.with.--with-o
e0e0 70 65 6e 73 73 6c 22 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 74 28 24 74 65 78 74 2c 20 27 65 penssl";.break;.}.$out($text,.'e
e100 72 72 6f 72 27 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 2e 3d 20 50 48 50 5f 45 4f 4c 3b 0a 7d rror');.}..$output..=.PHP_EOL;.}
e120 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 77 61 72 6e 69 6e 67 73 29 29 20 7b 0a 66 6f 72 65 61 ..if.(!empty($warnings)).{.forea
e140 63 68 20 28 24 77 61 72 6e 69 6e 67 73 20 61 73 20 24 77 61 72 6e 69 6e 67 20 3d 3e 20 24 63 75 ch.($warnings.as.$warning.=>.$cu
e160 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 77 61 72 6e 69 6e 67 29 20 7b 0a 63 61 73 rrent).{.switch.($warning).{.cas
e180 65 20 27 61 70 63 5f 63 6c 69 27 3a 0a 24 74 65 78 74 20 3d 20 22 54 68 65 20 61 70 63 2e 65 6e e.'apc_cli':.$text.=."The.apc.en
e1a0 61 62 6c 65 5f 63 6c 69 20 73 65 74 74 69 6e 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e able_cli.setting.is.incorrect.".
e1c0 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 65 20 66 6f 6c 6c 6f PHP_EOL;.$text..=."Add.the.follo
e1e0 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 70 68 70 2e 69 6e 69 wing.to.the.end.of.your.`php.ini
e200 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 61 70 63 2e 65 6e 61 `:".PHP_EOL;.$text..=."..apc.ena
e220 62 6c 65 5f 63 6c 69 20 3d 20 4f 66 66 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 ble_cli.=.Off";.$displayIniMessa
e240 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 73 69 67 63 68 69 6c ge.=.true;.break;..case.'sigchil
e260 64 27 3a 0a 24 74 65 78 74 20 3d 20 22 50 48 50 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 d':.$text.=."PHP.was.compiled.wi
e280 74 68 20 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 th.--enable-sigchild.which.can.c
e2a0 61 75 73 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 ause.issues.on.some.platforms.".
e2c0 50 48 50 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 PHP_EOL;.$text..=."Recompile.it.
e2e0 77 69 74 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 without.this.flag.if.possible,.s
e300 65 65 20 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 68 ee.also:".PHP_EOL;.$text..=."..h
e320 74 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 ttps://bugs.php.net/bug.php?id=2
e340 32 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 2999";.break;..case.'curlwrapper
e360 73 27 3a 0a 24 74 65 78 74 20 3d 20 22 50 48 50 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 s':.$text.=."PHP.was.compiled.wi
e380 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 69 63 68 20 77 69 6c th.--with-curlwrappers.which.wil
e3a0 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 61 75 74 68 65 6e 74 l.cause.issues.with.HTTP.authent
e3c0 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 45 4f 4c 3b 0a 24 74 ication.and.GitHub.".PHP_EOL;.$t
e3e0 65 78 74 20 2e 3d 20 22 20 52 65 63 6f 6d 70 69 6c 65 20 69 74 20 77 69 74 68 6f 75 74 20 74 68 ext..=.".Recompile.it.without.th
e400 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 6b 3b 0a 0a 63 61 is.flag.if.possible";.break;..ca
e420 73 65 20 27 70 68 70 27 3a 0a 24 74 65 78 74 20 3d 20 22 59 6f 75 72 20 50 48 50 20 28 7b 24 63 se.'php':.$text.=."Your.PHP.({$c
e440 75 72 72 65 6e 74 7d 29 20 69 73 20 71 75 69 74 65 20 6f 6c 64 2c 20 75 70 67 72 61 64 69 6e 67 urrent}).is.quite.old,.upgrading
e460 20 74 6f 20 50 48 50 20 35 2e 33 2e 34 20 6f 72 20 68 69 67 68 65 72 20 69 73 20 72 65 63 6f 6d .to.PHP.5.3.4.or.higher.is.recom
e480 6d 65 6e 64 65 64 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 43 6f 6d mended.".PHP_EOL;.$text..=.".Com
e4a0 70 6f 73 65 72 20 77 6f 72 6b 73 20 77 69 74 68 20 35 2e 33 2e 32 2b 20 66 6f 72 20 6d 6f 73 74 poser.works.with.5.3.2+.for.most
e4c0 20 70 65 6f 70 6c 65 2c 20 62 75 74 20 74 68 65 72 65 20 6d 69 67 68 74 20 62 65 20 65 64 67 65 .people,.but.there.might.be.edge
e4e0 20 63 61 73 65 20 69 73 73 75 65 73 2e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 78 64 .case.issues.";.break;..case.'xd
e500 65 62 75 67 5f 6c 6f 61 64 65 64 27 3a 0a 24 74 65 78 74 20 3d 20 22 54 68 65 20 78 64 65 62 75 ebug_loaded':.$text.=."The.xdebu
e520 67 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6c 6f 61 64 65 64 2c 20 74 68 69 73 20 63 61 6e 20 g.extension.is.loaded,.this.can.
e540 73 6c 6f 77 20 64 6f 77 6e 20 43 6f 6d 70 6f 73 65 72 20 61 20 6c 69 74 74 6c 65 2e 22 2e 50 48 slow.down.Composer.a.little.".PH
e560 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 44 69 73 61 62 6c 69 6e 67 20 69 74 20 77 P_EOL;.$text..=.".Disabling.it.w
e580 68 65 6e 20 75 73 69 6e 67 20 43 6f 6d 70 6f 73 65 72 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 hen.using.Composer.is.recommende
e5a0 64 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 69 6c d.";.break;..case.'xdebug_profil
e5c0 65 27 3a 0a 24 74 65 78 74 20 3d 20 22 54 68 65 20 78 64 65 62 75 67 2e 70 72 6f 66 69 6c 65 72 e':.$text.=."The.xdebug.profiler
e5e0 5f 65 6e 61 62 6c 65 64 20 73 65 74 74 69 6e 67 20 69 73 20 65 6e 61 62 6c 65 64 2c 20 74 68 69 _enabled.setting.is.enabled,.thi
e600 73 20 63 61 6e 20 73 6c 6f 77 20 64 6f 77 6e 20 43 6f 6d 70 6f 73 65 72 20 61 20 6c 6f 74 2e 22 s.can.slow.down.Composer.a.lot."
e620 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 65 20 66 6f 6c 6c .PHP_EOL;.$text..=."Add.the.foll
e640 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 70 68 70 2e 69 6e owing.to.the.end.of.your.`php.in
e660 69 60 20 74 6f 20 64 69 73 61 62 6c 65 20 69 74 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 i`.to.disable.it:".PHP_EOL;.$tex
e680 74 20 2e 3d 20 22 20 20 78 64 65 62 75 67 2e 70 72 6f 66 69 6c 65 72 5f 65 6e 61 62 6c 65 64 20 t..=."..xdebug.profiler_enabled.
e6a0 3d 20 30 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 =.0";.$displayIniMessage.=.true;
e6c0 0a 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 74 28 24 74 65 78 74 2c 20 27 63 6f 6d 6d 65 6e 74 27 29 .break;.}.$out($text,.'comment')
e6e0 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 29 20 7b ;.}.}..if.($displayIniMessage).{
e700 0a 24 6f 75 74 28 24 69 6e 69 4d 65 73 73 61 67 65 2c 20 27 63 6f 6d 6d 65 6e 74 27 29 3b 0a 7d .$out($iniMessage,.'comment');.}
e720 0a 0a 72 65 74 75 72 6e 20 21 24 77 61 72 6e 69 6e 67 73 20 26 26 20 21 24 65 72 72 6f 72 73 20 ..return.!$warnings.&&.!$errors.
e740 3f 20 74 72 75 65 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ?.true.:.$output;.}.}.<?php.....
e760 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 6e .......namespace.Composer\Comman
e780 64 3b 0a 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 d;..use.Composer\Factory;.use.Co
e7a0 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f mposer\IO\IOInterface;.use.Compo
e7c0 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 6f 6c 3b 0a 75 73 65 ser\DependencyResolver\Pool;.use
e7e0 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 52 65 .Composer\Repository\CompositeRe
e800 70 6f 73 69 74 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 pository;.use.Composer\Script\Sc
e820 72 69 70 74 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c riptEvents;.use.Composer\Plugin\
e840 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 69 CommandEvent;.use.Composer\Plugi
e860 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 61 63 n\PluginEvents;.use.Composer\Pac
e880 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 75 73 65 kage\Version\VersionParser;..use
e8a0 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
e8c0 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
e8e0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 onent\Console\Input\InputInterfa
e900 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c ce;.use.Symfony\Component\Consol
e920 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 e\Input\InputOption;.use.Symfony
e940 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
e960 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 65 43 6f Interface;.......class.ArchiveCo
e980 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 mmand.extends.Command.{.protecte
e9a0 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d d.function.configure().{.$this.-
e9c0 3e 73 65 74 4e 61 6d 65 28 27 61 72 63 68 69 76 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 >setName('archive').->setDescrip
e9e0 74 69 6f 6e 28 27 43 72 65 61 74 65 20 61 6e 20 61 72 63 68 69 76 65 20 6f 66 20 74 68 69 73 20 tion('Create.an.archive.of.this.
ea00 63 6f 6d 70 6f 73 65 72 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 composer.package').->setDefiniti
ea20 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 on(array(.new.InputArgument('pac
ea40 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 kage',.InputArgument::OPTIONAL,.
ea60 27 54 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 61 72 63 68 69 76 65 20 69 6e 73 74 65 61 64 20 'The.package.to.archive.instead.
ea80 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e of.the.current.project'),.new.In
eaa0 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 putArgument('version',.InputArgu
eac0 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 41 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 ment::OPTIONAL,.'A.version.const
eae0 72 61 69 6e 74 20 74 6f 20 66 69 6e 64 20 74 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 61 72 63 raint.to.find.the.package.to.arc
eb00 68 69 76 65 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 hive'),.new.InputOption('format'
eb20 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 ,.'f',.InputOption::VALUE_REQUIR
eb40 45 44 2c 20 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 ED,.'Format.of.the.resulting.arc
eb60 68 69 76 65 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 hive:.tar.or.zip',.'tar'),.new.I
eb80 6e 70 75 74 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 nputOption('dir',.false,.InputOp
eba0 74 69 6f 6e 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 tion::VALUE_REQUIRED,.'Write.the
ebc0 20 61 72 63 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 .archive.to.this.directory',.'.'
ebe0 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f ),.)).->setHelp(<<<EOT.The.<info
ec00 3e 61 72 63 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 >archive</info>.command.creates.
ec20 61 6e 20 61 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 an.archive.of.the.specified.form
ec40 61 74 0a 63 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 at.containing.the.files.and.dire
ec60 63 74 6f 72 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 ctories.of.the.Composer.project.
ec80 6f 72 20 74 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 or.the.specified.package.in.the.
eca0 73 70 65 63 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 specified.version.and.writes.it.
ecc0 74 6f 20 74 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 to.the.specified.directory...<in
ece0 66 6f 3e 70 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 fo>php.composer.phar.archive.[--
ed00 66 6f 72 6d 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 format=zip].[--dir=/foo].[packag
ed20 65 20 5b 76 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 e.[version]]</info>..EOT.).;.}..
ed40 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
ed60 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
ed80 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e e.$output).{.$composer.=.$this->
eda0 67 65 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 getComposer(false);.if.($compose
edc0 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 64 r).{.$commandEvent.=.new.Command
ede0 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 61 72 Event(PluginEvents::COMMAND,.'ar
ee00 63 68 69 76 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 chive',.$input,.$output);.$compo
ee20 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 64 69 73 70 61 ser->getEventDispatcher()->dispa
ee40 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 29 2c 20 24 63 tch($commandEvent->getName(),.$c
ee60 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e ommandEvent);.$composer->getEven
ee80 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 tDispatcher()->dispatchScript(Sc
eea0 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 41 52 43 48 49 56 45 5f 43 4d 44 29 3b 0a 7d 0a riptEvents::PRE_ARCHIVE_CMD);.}.
eec0 0a 24 72 65 74 75 72 6e 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 28 0a 24 .$returnCode.=.$this->archive(.$
eee0 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 65 this->getIO(),.$input->getArgume
ef00 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 65 nt('package'),.$input->getArgume
ef20 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 6e nt('version'),.$input->getOption
ef40 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 64 ('format'),.$input->getOption('d
ef60 69 72 27 29 0a 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 74 75 72 6e 43 6f 64 65 20 26 ir').);..if.(0.===.$returnCode.&
ef80 26 20 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 &.$composer).{.$composer->getEve
efa0 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 ntDispatcher()->dispatchScript(S
efc0 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 41 52 43 48 49 56 45 5f 43 4d 44 29 3b 0a criptEvents::POST_ARCHIVE_CMD);.
efe0 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 43 6f 64 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 }..return.$returnCode;.}..protec
f000 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 49 4f 49 6e 74 65 72 66 61 63 65 ted.function.archive(IOInterface
f020 20 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 73 .$io,.$packageName.=.null,.$vers
f040 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 20 3d 20 27 74 61 72 27 2c 20 24 64 65 ion.=.null,.$format.=.'tar',.$de
f060 73 74 20 3d 20 27 2e 27 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 st.=.'.').{.$config.=.Factory::c
f080 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 reateConfig();.$factory.=.new.Fa
f0a0 63 74 6f 72 79 3b 0a 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f ctory;.$downloadManager.=.$facto
f0c0 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 24 ry->createDownloadManager($io,.$
f0e0 63 6f 6e 66 69 67 29 3b 0a 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 config);.$archiveManager.=.$fact
f100 6f 72 79 2d 3e 63 72 65 61 74 65 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 24 63 6f 6e 66 69 ory->createArchiveManager($confi
f120 67 2c 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b g,.$downloadManager);..if.($pack
f140 61 67 65 4e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c ageName).{.$package.=.$this->sel
f160 65 63 74 50 61 63 6b 61 67 65 28 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 ectPackage($io,.$packageName,.$v
f180 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 ersion);..if.(!$package).{.retur
f1a0 6e 20 31 3b 0a 7d 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 n.1;.}.}.else.{.$package.=.$this
f1c0 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d ->getComposer()->getPackage();.}
f1e0 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 69 6e ..$io->writeError('<info>Creatin
f200 67 20 74 68 65 20 61 72 63 68 69 76 65 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 61 72 63 68 69 76 g.the.archive.</info>');.$archiv
f220 65 4d 61 6e 61 67 65 72 2d 3e 61 72 63 68 69 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 eManager->archive($package,.$for
f240 6d 61 74 2c 20 24 64 65 73 74 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 mat,.$dest);..return.0;.}..prote
f260 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 61 63 6b 61 67 65 28 49 4f 49 6e cted.function.selectPackage(IOIn
f280 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 terface.$io,.$packageName,.$vers
f2a0 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c ion.=.null).{.$io->writeError('<
f2c0 69 6e 66 6f 3e 53 65 61 72 63 68 69 6e 67 20 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 info>Searching.for.the.specified
f2e0 20 70 61 63 6b 61 67 65 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 .package.</info>');..if.($compos
f300 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 65 29 29 20 er.=.$this->getComposer(false)).
f320 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 {.$localRepo.=.$composer->getRep
f340 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 ositoryManager()->getLocalReposi
f360 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 tory();.$repos.=.new.CompositeRe
f380 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 6c 6f 63 61 pository(array_merge(array($loca
f3a0 6c 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 lRepo),.$composer->getRepository
f3c0 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a Manager()->getRepositories()));.
f3e0 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 }.else.{.$defaultRepos.=.Factory
f400 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 ::createDefaultRepositories($thi
f420 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f s->getIO());.$io->writeError('No
f440 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 75 72 72 .composer.json.found.in.the.curr
f460 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 61 67 65 ent.directory,.searching.package
f480 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 6b s.from.'...implode(',.',.array_k
f4a0 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 3d 20 6e eys($defaultRepos)));.$repos.=.n
f4c0 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 6c 74 52 ew.CompositeRepository($defaultR
f4e0 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 0a 24 70 epos);.}..$pool.=.new.Pool();.$p
f500 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 24 70 61 ool->addRepository($repos);..$pa
f520 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 63 6f 6e rser.=.new.VersionParser();.$con
f540 73 74 72 61 69 6e 74 20 3d 20 28 24 76 65 72 73 69 6f 6e 29 20 3f 20 24 70 61 72 73 65 72 2d 3e straint.=.($version).?.$parser->
f560 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 20 3a 20 6e 75 6c parseConstraints($version).:.nul
f580 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 50 72 6f 76 69 64 l;.$packages.=.$pool->whatProvid
f5a0 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 2c 20 74 72 es($packageName,.$constraint,.tr
f5c0 75 65 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 ue);..if.(count($packages).>.1).
f5e0 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 72 65 73 65 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 {.$package.=.reset($packages);.$
f600 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 46 6f 75 6e 64 20 6d 75 6c 74 io->writeError('<info>Found.mult
f620 69 70 6c 65 20 6d 61 74 63 68 65 73 2c 20 73 65 6c 65 63 74 65 64 20 27 2e 24 70 61 63 6b 61 67 iple.matches,.selected.'.$packag
f640 65 2d 3e 67 65 74 50 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 e->getPrettyString().'.</info>')
f660 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 41 6c 74 65 72 6e 61 74 69 76 65 73 20 ;.$io->writeError('Alternatives.
f680 77 65 72 65 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 were.'.implode(',.',.array_map(f
f6a0 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 20 72 65 74 75 72 6e 20 24 70 2d 3e 67 65 74 50 72 65 unction.($p).{.return.$p->getPre
f6c0 74 74 79 53 74 72 69 6e 67 28 29 3b 20 7d 2c 20 24 70 61 63 6b 61 67 65 73 29 29 2e 27 2e 27 29 ttyString();.},.$packages)).'.')
f6e0 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 63 6f 6d 6d 65 6e 74 3e 50 6c 65 61 ;.$io->writeError('<comment>Plea
f700 73 65 20 75 73 65 20 61 20 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 63 6f 6e 73 74 72 61 69 6e se.use.a.more.specific.constrain
f720 74 20 74 6f 20 70 69 63 6b 20 61 20 64 69 66 66 65 72 65 6e 74 20 70 61 63 6b 61 67 65 2e 3c 2f t.to.pick.a.different.package.</
f740 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 73 29 comment>');.}.elseif.($packages)
f760 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 72 65 73 65 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a .{.$package.=.reset($packages);.
f780 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 46 6f 75 6e 64 20 61 6e 20 $io->writeError('<info>Found.an.
f7a0 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 72 65 74 74 exact.match.'.$package->getPrett
f7c0 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 65 20 7b 0a yString().'.</info>');.}.else.{.
f7e0 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 43 6f 75 6c 64 20 6e 6f $io->writeError('<error>Could.no
f800 74 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 t.find.a.package.matching.'.$pac
f820 6b 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 kageName.'.</error>');..return.f
f840 61 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 alse;.}..return.$package;.}.}.<?
f860 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
f880 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a r\Command;..use.Composer\Cache;.
f8a0 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 6e use.Composer\Factory;.use.Symfon
f8c0 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
f8e0 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\
f900 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;.
f920 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 65 61 72 43 61 63 68 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 ....class.ClearCacheCommand.exte
f940 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e nds.Command.{.protected.function
f960 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
f980 63 6c 65 61 72 2d 63 61 63 68 65 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 clear-cache').->setAliases(array
f9a0 28 27 63 6c 65 61 72 63 61 63 68 65 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e ('clearcache')).->setDescription
f9c0 28 27 43 6c 65 61 72 73 20 63 6f 6d 70 6f 73 65 72 5c 27 73 20 69 6e 74 65 72 6e 61 6c 20 70 61 ('Clears.composer\'s.internal.pa
f9e0 63 6b 61 67 65 20 63 61 63 68 65 2e 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a ckage.cache.').->setHelp(<<<EOT.
fa00 54 68 65 20 3c 69 6e 66 6f 3e 63 6c 65 61 72 2d 63 61 63 68 65 3c 2f 69 6e 66 6f 3e 20 64 65 6c The.<info>clear-cache</info>.del
fa20 65 74 65 73 20 61 6c 6c 20 63 61 63 68 65 64 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 63 6f etes.all.cached.packages.from.co
fa40 6d 70 6f 73 65 72 27 73 0a 63 61 63 68 65 20 64 69 72 65 63 74 6f 72 79 2e 0a 45 4f 54 0a 29 0a mposer's.cache.directory..EOT.).
fa60 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 ;.}..protected.function.execute(
fa80 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
faa0 65 72 66 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 erface.$output).{.$config.=.Fact
fac0 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 ory::createConfig();.$io.=.$this
fae0 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 61 63 68 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 ->getIO();..$cachePaths.=.array(
fb00 0a 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 .'cache-dir'.=>.$config->get('ca
fb20 63 68 65 2d 64 69 72 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 20 3d 3e 20 che-dir'),.'cache-files-dir'.=>.
fb40 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 64 69 72 27 29 2c $config->get('cache-files-dir'),
fb60 0a 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 .'cache-repo-dir'.=>.$config->ge
fb80 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d t('cache-repo-dir'),.'cache-vcs-
fba0 64 69 72 27 20 3d 3e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d dir'.=>.$config->get('cache-vcs-
fbc0 64 69 72 27 29 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 61 63 68 65 50 61 74 68 73 20 dir'),.);..foreach.($cachePaths.
fbe0 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 61 63 68 65 50 61 74 68 29 20 7b 0a 24 63 61 63 68 65 50 as.$key.=>.$cachePath).{.$cacheP
fc00 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 24 63 61 63 68 65 50 61 74 68 29 3b 0a 69 66 20 28 ath.=.realpath($cachePath);.if.(
fc20 21 24 63 61 63 68 65 50 61 74 68 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 !$cachePath).{.$io->writeError("
fc40 3c 69 6e 66 6f 3e 43 61 63 68 65 20 64 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 <info>Cache.directory.does.not.e
fc60 78 69 73 74 20 28 24 6b 65 79 29 3a 20 24 63 61 63 68 65 50 61 74 68 3c 2f 69 6e 66 6f 3e 22 29 xist.($key):.$cachePath</info>")
fc80 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 ;..continue;.}.$cache.=.new.Cach
fca0 65 28 24 69 6f 2c 20 24 63 61 63 68 65 50 61 74 68 29 3b 0a 69 66 20 28 21 24 63 61 63 68 65 2d e($io,.$cachePath);.if.(!$cache-
fcc0 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 >isEnabled()).{.$io->writeError(
fce0 22 3c 69 6e 66 6f 3e 43 61 63 68 65 20 69 73 20 6e 6f 74 20 65 6e 61 62 6c 65 64 20 28 24 6b 65 "<info>Cache.is.not.enabled.($ke
fd00 79 29 3a 20 24 63 61 63 68 65 50 61 74 68 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 63 6f 6e 74 69 6e y):.$cachePath</info>");..contin
fd20 75 65 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 3c 69 6e 66 6f 3e 43 6c ue;.}..$io->writeError("<info>Cl
fd40 65 61 72 69 6e 67 20 63 61 63 68 65 20 28 24 6b 65 79 29 3a 20 24 63 61 63 68 65 50 61 74 68 3c earing.cache.($key):.$cachePath<
fd60 2f 69 6e 66 6f 3e 22 29 3b 0a 24 63 61 63 68 65 2d 3e 67 63 28 30 2c 20 30 29 3b 0a 7d 0a 0a 24 /info>");.$cache->gc(0,.0);.}..$
fd80 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 41 6c 6c 20 63 61 63 68 65 73 io->writeError('<info>All.caches
fda0 20 63 6c 65 61 72 65 64 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .cleared.</info>');.}.}.<?php...
fdc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d .........namespace.Composer\Comm
fde0 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 and;..use.Composer\Composer;.use
fe00 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 6f 6e 3b 0a 75 .Composer\Console\Application;.u
fe20 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.
fe40 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 66 6f 6e 79 5c Composer\IO\NullIO;.use.Symfony\
fe60 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
fe80 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
fea0 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 nsole\Output\OutputInterface;.us
fec0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d e.Symfony\Component\Console\Comm
fee0 61 6e 64 5c 43 6f 6d 6d 61 6e 64 20 61 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a and\Command.as.BaseCommand;.....
ff00 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 ...abstract.class.Command.extend
ff20 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 s.BaseCommand.{....private.$comp
ff40 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 oser;.....private.$io;........pu
ff60 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 28 24 72 65 71 75 69 blic.function.getComposer($requi
ff80 72 65 64 20 3d 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 red.=.true,.$disablePlugins.=.fa
ffa0 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f lse).{.if.(null.===.$this->compo
ffc0 73 65 72 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ser).{.$application.=.$this->get
ffe0 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 Application();.if.($application.
10000 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 instanceof.Application).{..$this
10020 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 43 6f ->composer.=.$application->getCo
10040 6d 70 6f 73 65 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 mposer($required,.$disablePlugin
10060 73 29 3b 0a 7d 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 s);.}.elseif.($required).{.throw
10080 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 43 6f 75 6c 64 20 6e .new.\RuntimeException(.'Could.n
100a0 6f 74 20 63 72 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 ot.create.a.Composer\Composer.in
100c0 73 74 61 6e 63 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 stance,.you.must.inject.'..'one.
100e0 69 66 20 74 68 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 if.this.command.is.not.used.with
10100 20 61 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 6f 6e 20 .a.Composer\Console\Application.
10120 69 6e 73 74 61 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 instance'.);.}.}..return.$this->
10140 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 composer;.}.....public.function.
10160 73 65 74 43 6f 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 setComposer(Composer.$composer).
10180 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d {.$this->composer.=.$composer;.}
101a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 43 6f 6d 70 6f 73 .....public.function.resetCompos
101c0 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 24 er().{.$this->composer.=.null;.$
101e0 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 72 65 73 65 74 43 6f 6d this->getApplication()->resetCom
10200 70 6f 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 poser();.}.....public.function.g
10220 65 74 49 4f 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6f 29 etIO().{.if.(null.===.$this->io)
10240 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c .{.$application.=.$this->getAppl
10260 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 ication();.if.($application.inst
10280 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 69 6f anceof.Application).{..$this->io
102a0 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 49 4f 28 29 3b 0a 7d 20 65 6c 73 65 .=.$application->getIO();.}.else
102c0 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 3b 0a 7d 0a 7d .{.$this->io.=.new.NullIO();.}.}
102e0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ..return.$this->io;.}.....public
10300 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 4f 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 .function.setIO(IOInterface.$io)
10320 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 .{.$this->io.=.$io;.}.....protec
10340 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e 74 ted.function.initialize(InputInt
10360 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.$
10380 6f 75 74 70 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 output).{.if.(true.===.$input->h
103a0 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 6e asParameterOption(array('--no-an
103c0 73 69 27 29 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 si')).&&.$input->hasOption('no-p
103e0 72 6f 67 72 65 73 73 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 rogress')).{.$input->setOption('
10400 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a no-progress',.true);.}..parent::
10420 69 6e 69 74 69 61 6c 69 7a 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d initialize($input,.$output);.}.}
10440 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
10460 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 oser\Command;..use.Composer\Conf
10480 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 73 65 20 43 6f ig;.use.Composer\Factory;.use.Co
104a0 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 65 72 5c 49 mposer\Installer;.use.Composer\I
104c0 6e 73 74 61 6c 6c 65 72 5c 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 nstaller\ProjectInstaller;.use.C
104e0 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 6e 4d 61 omposer\Installer\InstallationMa
10500 6e 61 67 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 nager;.use.Composer\IO\IOInterfa
10520 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 42 61 73 65 50 61 63 ce;.use.Composer\Package\BasePac
10540 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 kage;.use.Composer\DependencyRes
10560 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 6e 64 65 olver\Pool;.use.Composer\Depende
10580 6e 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 ncyResolver\Operation\InstallOpe
105a0 72 61 74 69 6f 6e 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 ration;.use.Composer\Package\Ver
105c0 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 sion\VersionSelector;.use.Compos
105e0 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 79 er\Repository\ComposerRepository
10600 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 ;.use.Composer\Repository\Compos
10620 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 6f iteRepository;.use.Composer\Repo
10640 73 69 74 6f 72 79 5c 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 sitory\FilesystemRepository;.use
10660 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 .Composer\Repository\InstalledFi
10680 6c 65 73 79 73 74 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 lesystemRepository;.use.Composer
106a0 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e \Script\ScriptEvents;.use.Symfon
106c0 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
106e0 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 rgument;.use.Symfony\Component\C
10700 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 65 onsole\Input\InputInterface;.use
10720 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
10740 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 6f 6e \InputOption;.use.Symfony\Compon
10760 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 ent\Console\Output\OutputInterfa
10780 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 46 69 6e 64 65 72 ce;.use.Symfony\Component\Finder
107a0 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 \Finder;.use.Composer\Json\JsonF
107c0 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e ile;.use.Composer\Config\JsonCon
107e0 66 69 67 53 6f 75 72 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 figSource;.use.Composer\Util\Fil
10800 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 esystem;.use.Composer\Util\Remot
10820 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 50 61 63 6b 61 67 eFilesystem;.use.Composer\Packag
10840 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 0a 0a e\Version\VersionParser;........
10860 0a 0a 63 6c 61 73 73 20 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 20 65 78 74 ..class.CreateProjectCommand.ext
10880 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
108a0 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(
108c0 27 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 'create-project').->setDescripti
108e0 6f 6e 28 27 43 72 65 61 74 65 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 70 61 on('Create.new.project.from.a.pa
10900 63 6b 61 67 65 20 69 6e 74 6f 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e ckage.into.given.directory.').->
10920 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
10940 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a gument('package',.InputArgument:
10960 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 74 6f 20 62 65 20 69 :OPTIONAL,.'Package.name.to.be.i
10980 6e 73 74 61 6c 6c 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 64 nstalled'),.new.InputArgument('d
109a0 69 72 65 63 74 6f 72 79 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e irectory',.InputArgument::OPTION
109c0 41 4c 2c 20 27 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 73 20 73 AL,.'Directory.where.the.files.s
109e0 68 6f 75 6c 64 20 62 65 20 63 72 65 61 74 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 hould.be.created'),.new.InputArg
10a00 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a ument('version',.InputArgument::
10a20 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 2c 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 OPTIONAL,.'Version,.will.default
10a40 20 74 6f 20 6c 61 74 65 73 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 .to.latest'),.new.InputOption('s
10a60 74 61 62 69 6c 69 74 79 27 2c 20 27 73 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c tability',.'s',.InputOption::VAL
10a80 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 UE_REQUIRED,.'Minimum-stability.
10aa0 61 6c 6c 6f 77 65 64 20 28 75 6e 6c 65 73 73 20 61 20 76 65 72 73 69 6f 6e 20 69 73 20 73 70 65 allowed.(unless.a.version.is.spe
10ac0 63 69 66 69 65 64 29 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 cified).'),.new.InputOption('pre
10ae0 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a fer-source',.null,.InputOption::
10b00 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e VALUE_NONE,.'Forces.installation
10b20 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 .from.package.sources.when.possi
10b40 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 ble,.including.VCS.information.'
10b60 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 ),.new.InputOption('prefer-dist'
10b80 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,
10ba0 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
10bc0 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 ge.dist.even.for.dev.versions.')
10be0 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 ,.new.InputOption('repository-ur
10c00 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 l',.null,.InputOption::VALUE_REQ
10c20 55 49 52 45 44 2c 20 27 50 69 63 6b 20 61 20 64 69 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 UIRED,.'Pick.a.different.reposit
10c40 6f 72 79 20 75 72 6c 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e ory.url.to.look.for.the.package.
10c60 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c '),.new.InputOption('dev',.null,
10c80 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c .InputOption::VALUE_NONE,.'Enabl
10ca0 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 64 65 76 20 70 es.installation.of.require-dev.p
10cc0 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 74 2c 20 6f 6e 6c ackages.(enabled.by.default,.onl
10ce0 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 49 6e 70 75 74 4f y.present.for.BC).'),.new.InputO
10d00 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 74 4f 70 74 69 6f ption('no-dev',.null,.InputOptio
10d20 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 6e 73 74 61 6c 6c n::VALUE_NONE,.'Disables.install
10d40 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 67 65 73 2e 27 29 ation.of.require-dev.packages.')
10d60 2c 0a 6e 65 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 ,.new.InputOption('no-plugins',.
10d80 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,.'
10da0 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 61 62 6c 65 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e Whether.to.disable.plugins.'),.n
10dc0 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c ew.InputOption('no-custom-instal
10de0 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f lers',.null,.InputOption::VALUE_
10e00 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e NONE,.'DEPRECATED:.Use.no-plugin
10e20 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e s.instead.'),.new.InputOption('n
10e40 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 o-scripts',.null,.InputOption::V
10e60 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 65 ALUE_NONE,.'Whether.to.prevent.e
10e80 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 64 65 66 69 6e 65 64 20 73 63 72 69 70 74 73 20 xecution.of.all.defined.scripts.
10ea0 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 in.the.root.package.'),.new.Inpu
10ec0 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 6e 70 tOption('no-progress',.null,.Inp
10ee0 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 6f 75 utOption::VALUE_NONE,.'Do.not.ou
10f00 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 20 49 tput.download.progress.'),.new.I
10f20 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 nputOption('keep-vcs',.null,.Inp
10f40 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 65 74 68 65 72 20 74 utOption::VALUE_NONE,.'Whether.t
10f60 6f 20 70 72 65 76 65 6e 74 20 64 65 6c 65 74 69 6f 6e 20 76 63 73 20 66 6f 6c 64 65 72 2e 27 29 o.prevent.deletion.vcs.folder.')
10f80 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 69 6e 73 74 61 6c 6c 27 2c 20 ,.new.InputOption('no-install',.
10fa0 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,.'
10fc0 57 68 65 74 68 65 72 20 74 6f 20 73 6b 69 70 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 Whether.to.skip.installation.of.
10fe0 74 68 65 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 the.package.dependencies.'),.new
11000 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 .InputOption('ignore-platform-re
11020 71 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 qs',.null,.InputOption::VALUE_NO
11040 4e 45 2c 20 27 49 67 6e 6f 72 65 20 70 6c 61 74 66 6f 72 6d 20 72 65 71 75 69 72 65 6d 65 6e 74 NE,.'Ignore.platform.requirement
11060 73 20 28 70 68 70 20 26 20 65 78 74 2d 20 70 61 63 6b 61 67 65 73 29 2e 27 29 2c 0a 29 29 0a 2d s.(php.&.ext-.packages).'),.)).-
11080 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 63 72 65 61 74 65 >setHelp(<<<EOT.The.<info>create
110a0 2d 70 72 6f 6a 65 63 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 -project</info>.command.creates.
110c0 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 67 69 76 65 6e 0a 70 61 63 6b 61 a.new.project.from.a.given.packa
110e0 67 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 64 69 72 65 63 74 6f 72 79 2e 20 49 66 20 65 78 65 63 ge.into.a.new.directory..If.exec
11100 75 74 65 64 20 77 69 74 68 6f 75 74 20 70 61 72 61 6d 73 20 61 6e 64 20 69 6e 20 61 20 64 69 72 uted.without.params.and.in.a.dir
11120 65 63 74 6f 72 79 0a 77 69 74 68 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 ectory.with.a.composer.json.file
11140 20 69 74 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 66 6f 72 20 74 68 .it.installs.the.packages.for.th
11160 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 e.current.project...You.can.use.
11180 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 6f 6f 74 73 74 72 61 70 20 6e 65 77 20 70 72 this.command.to.bootstrap.new.pr
111a0 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 75 70 20 61 20 63 6c 65 61 6e 0a 76 65 72 73 69 6f 6e 2d ojects.or.setup.a.clean.version-
111c0 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 6f 72 20 64 65 76 65 controlled.installation.for.deve
111e0 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 lopers.of.your.project...<info>p
11200 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 hp.composer.phar.create-project.
11220 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 74 20 74 61 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 20 vendor/project.target-directory.
11240 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 [version]</info>..You.can.also.s
11260 70 65 63 69 66 79 20 74 68 65 20 76 65 72 73 69 6f 6e 20 77 69 74 68 20 74 68 65 20 70 61 63 6b pecify.the.version.with.the.pack
11280 61 67 65 20 6e 61 6d 65 20 75 73 69 6e 67 20 3d 20 6f 72 20 3a 20 61 73 20 73 65 70 61 72 61 74 age.name.using.=.or.:.as.separat
112a0 6f 72 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 or...To.install.unstable.package
112c0 73 2c 20 65 69 74 68 65 72 20 73 70 65 63 69 66 79 20 74 68 65 20 76 65 72 73 69 6f 6e 20 79 6f s,.either.specify.the.version.yo
112e0 75 20 77 61 6e 74 2c 20 6f 72 20 75 73 65 20 74 68 65 0a 2d 2d 73 74 61 62 69 6c 69 74 79 3d 64 u.want,.or.use.the.--stability=d
11300 65 76 20 28 77 68 65 72 65 20 64 65 76 20 63 61 6e 20 62 65 20 6f 6e 65 20 6f 66 20 52 43 2c 20 ev.(where.dev.can.be.one.of.RC,.
11320 62 65 74 61 2c 20 61 6c 70 68 61 20 6f 72 20 64 65 76 29 2e 0a 0a 54 6f 20 73 65 74 75 70 20 61 beta,.alpha.or.dev)...To.setup.a
11340 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b 61 62 6c 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 .developer.workable.version.you.
11360 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 should.create.the.project.using.
11380 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 72 6f 6c 6c 65 64 20 63 6f 64 65 20 62 79 20 61 70 the.source.controlled.code.by.ap
113a0 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 70 72 65 66 65 72 2d 73 6f 75 72 pending.the.<info>'--prefer-sour
113c0 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 61 20 70 ce'</info>.flag...To.install.a.p
113e0 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 72 65 70 6f 73 69 74 6f 72 79 20 74 ackage.from.another.repository.t
11400 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 6f 6e 65 20 79 6f 75 0a 63 61 6e 20 70 61 73 73 han.the.default.one.you.can.pass
11420 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 3d 68 74 74 .the.<info>'--repository-url=htt
11440 70 3a 2f 2f 6d 79 72 65 70 6f 73 69 74 6f 72 79 2e 6f 72 67 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 p://myrepository.org'</info>.fla
11460 67 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 69 6f g...EOT.).;.}..protected.functio
11480 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,
114a0 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 6f 6e .OutputInterface.$output).{.$con
114c0 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 0a fig.=.Factory::createConfig();..
114e0 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 72 44 69 $preferSource.=.false;.$preferDi
11500 73 74 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 50 72 65 66 65 72 72 st.=.false;.$this->updatePreferr
11520 65 64 4f 70 74 69 6f 6e 73 28 24 63 6f 6e 66 69 67 2c 20 24 69 6e 70 75 74 2c 20 24 70 72 65 66 edOptions($config,.$input,.$pref
11540 65 72 53 6f 75 72 63 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 29 3b 0a 0a 69 66 20 28 24 69 6e erSource,.$preferDist);..if.($in
11560 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 74 61 6c put->getOption('no-custom-instal
11580 6c 65 72 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 lers')).{.$this->getIO()->writeE
115a0 72 72 6f 72 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 rror('<warning>You.are.using.the
115c0 20 64 65 70 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 .deprecated.option."no-custom-in
115e0 73 74 61 6c 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 stallers"..Use."no-plugins".inst
11600 65 61 64 2e 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 ead.</warning>');.$input->setOpt
11620 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 72 65 74 75 ion('no-plugins',.true);.}..retu
11640 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 0a 24 74 68 69 73 2d rn.$this->installProject(.$this-
11660 3e 67 65 74 49 4f 28 29 2c 0a 24 63 6f 6e 66 69 67 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 >getIO(),.$config,.$input->getAr
11680 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 gument('package'),.$input->getAr
116a0 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 gument('directory'),.$input->get
116c0 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 Argument('version'),.$input->get
116e0 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 2c 0a 24 70 72 65 66 65 72 53 6f 75 72 Option('stability'),.$preferSour
11700 63 65 2c 0a 24 70 72 65 66 65 72 44 69 73 74 2c 0a 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 ce,.$preferDist,.!$input->getOpt
11720 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e ion('no-dev'),.$input->getOption
11740 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f ('repository-url'),.$input->getO
11760 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 ption('no-plugins'),.$input->get
11780 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 Option('no-scripts'),.$input->ge
117a0 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 tOption('keep-vcs'),.$input->get
117c0 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 Option('no-progress'),.$input->g
117e0 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 69 6e 73 74 61 6c 6c 27 29 2c 0a 24 69 6e 70 75 74 2d 3e etOption('no-install'),.$input->
11800 67 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 getOption('ignore-platform-reqs'
11820 29 2c 0a 24 69 6e 70 75 74 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ),.$input.);.}..public.function.
11840 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,.
11860 43 6f 6e 66 69 67 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 64 Config.$config,.$packageName,.$d
11880 69 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e irectory.=.null,.$packageVersion
118a0 20 3d 20 6e 75 6c 6c 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 .=.null,.$stability.=.'stable',.
118c0 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 65 72 44 69 $preferSource.=.false,.$preferDi
118e0 73 74 20 3d 20 66 61 6c 73 65 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 20 st.=.false,.$installDevPackages.
11900 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 =.false,.$repositoryUrl.=.null,.
11920 24 64 69 73 61 62 6c 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 $disablePlugins.=.false,.$noScri
11940 70 74 73 20 3d 20 66 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 pts.=.false,.$keepVcs.=.false,.$
11960 6e 6f 50 72 6f 67 72 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 noProgress.=.false,.$noInstall.=
11980 20 66 61 6c 73 65 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 66 61 .false,.$ignorePlatformReqs.=.fa
119a0 6c 73 65 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 24 6f lse,.InputInterface.$input).{.$o
119c0 6c 64 43 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 0a 0a 20 24 69 6f 2d 3e 6c 6f 61 64 43 6f ldCwd.=.getcwd();....$io->loadCo
119e0 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b nfiguration($config);..if.($pack
11a00 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 72 ageName.!==.null).{.$installedFr
11a20 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 67 omVcs.=.$this->installRootPackag
11a40 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 64 e($io,.$config,.$packageName,.$d
11a60 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 62 irectory,.$packageVersion,.$stab
11a80 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 73 ility,.$preferSource,.$preferDis
11aa0 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 74 t,.$installDevPackages,.$reposit
11ac0 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 69 oryUrl,.$disablePlugins,.$noScri
11ae0 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 65 pts,.$keepVcs,.$noProgress);.}.e
11b00 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 3b lse.{.$installedFromVcs.=.false;
11b20 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 28 .}..$composer.=.Factory::create(
11b40 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 63 6f $io,.null,.$disablePlugins);.$co
11b60 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 73 65 mposer->getDownloadManager()->se
11b80 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 3b 0a 0a tOutputProgress(!$noProgress);..
11ba0 24 66 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 $fs.=.new.Filesystem();..if.($no
11bc0 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 65 72 Scripts.===.false).{...$composer
11be0 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
11c00 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 52 4f 4f 54 5f 50 Script(ScriptEvents::POST_ROOT_P
11c20 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 61 63 6b 61 ACKAGE_INSTALL,.$installDevPacka
11c40 67 65 73 29 3b 0a 7d 0a 0a 24 72 6f 6f 74 50 61 63 6b 61 67 65 43 6f 6e 66 69 67 20 3d 20 24 63 ges);.}..$rootPackageConfig.=.$c
11c60 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 omposer->getConfig();.$this->upd
11c80 61 74 65 50 72 65 66 65 72 72 65 64 4f 70 74 69 6f 6e 73 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 atePreferredOptions($rootPackage
11ca0 43 6f 6e 66 69 67 2c 20 24 69 6e 70 75 74 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 20 24 Config,.$input,.$preferSource,.$
11cc0 70 72 65 66 65 72 44 69 73 74 29 3b 0a 0a 0a 20 69 66 20 28 24 6e 6f 49 6e 73 74 61 6c 6c 20 3d preferDist);....if.($noInstall.=
11ce0 3d 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 ==.false).{.$installer.=.Install
11d00 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 69 6e 73 er::create($io,.$composer);.$ins
11d20 74 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 taller->setPreferSource($preferS
11d40 6f 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 ource).->setPreferDist($preferDi
11d60 73 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 st).->setDevMode($installDevPack
11d80 61 67 65 73 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 21 24 6e 6f 53 63 72 69 70 74 ages).->setRunScripts(!$noScript
11da0 73 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e s).->setIgnorePlatformRequiremen
11dc0 74 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 0a 69 66 20 28 24 64 ts($ignorePlatformReqs);..if.($d
11de0 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 64 69 73 isablePlugins).{.$installer->dis
11e00 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 24 73 74 61 74 75 73 20 3d 20 24 69 6e 73 ablePlugins();.}..$status.=.$ins
11e20 74 61 6c 6c 65 72 2d 3e 72 75 6e 28 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 73 74 61 74 75 73 taller->run();.if.(0.!==.$status
11e40 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 3b 0a 7d 0a 7d 0a 0a 24 68 61 73 56 63 73 ).{.return.$status;.}.}..$hasVcs
11e60 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 3b 0a 69 66 20 28 21 24 6b 65 65 70 .=.$installedFromVcs;.if.(!$keep
11e80 56 63 73 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 0a 26 26 20 28 0a 21 24 Vcs.&&.$installedFromVcs.&&.(.!$
11ea0 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7c 7c 20 24 69 6f 2d 3e 61 73 6b 43 io->isInteractive().||.$io->askC
11ec0 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 3c 69 6e 66 6f 3e 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 onfirmation('<info>Do.you.want.t
11ee0 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 56 43 53 20 28 2e 67 69 74 2c o.remove.the.existing.VCS.(.git,
11f00 20 2e 73 76 6e 2e 2e 29 20 68 69 73 74 6f 72 79 3f 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 ..svn..).history?</info>.[<comme
11f20 6e 74 3e 59 2c 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 2c 20 74 72 75 65 29 0a 29 0a 29 20 nt>Y,n</comment>]?.',.true).).).
11f40 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 28 29 3b 0a 24 66 69 6e 64 65 {.$finder.=.new.Finder();.$finde
11f60 72 2d 3e 64 65 70 74 68 28 30 29 2d 3e 64 69 72 65 63 74 6f 72 69 65 73 28 29 2d 3e 69 6e 28 67 r->depth(0)->directories()->in(g
11f80 65 74 63 77 64 28 29 29 2d 3e 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 2d 3e 69 67 6e 6f etcwd())->ignoreVCS(false)->igno
11fa0 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 reDotFiles(false);.foreach.(arra
11fc0 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 27 5f 64 61 72 63 73 y('.svn',.'_svn',.'CVS',.'_darcs
11fe0 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 74 6f 6e 65 27 2c 20 ',.'.arch-params',.'.monotone',.
12000 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 29 20 61 73 20 24 76 63 73 4e 61 '.bzr',.'.git',.'.hg').as.$vcsNa
12020 6d 65 29 20 7b 0a 24 66 69 6e 64 65 72 2d 3e 6e 61 6d 65 28 24 76 63 73 4e 61 6d 65 29 3b 0a 7d me).{.$finder->name($vcsName);.}
12040 0a 0a 74 72 79 20 7b 0a 24 64 69 72 73 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 ..try.{.$dirs.=.iterator_to_arra
12060 79 28 24 66 69 6e 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 66 69 6e 64 65 72 29 3b 0a 66 6f 72 65 y($finder);.unset($finder);.fore
12080 61 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 21 24 66 73 2d 3e ach.($dirs.as.$dir).{.if.(!$fs->
120a0 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e removeDirectory($dir)).{.throw.n
120c0 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.
120e0 72 65 6d 6f 76 65 20 27 2e 24 64 69 72 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 remove.'.$dir);.}.}.}.catch.(\Ex
12100 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c ception.$e).{.$io->writeError('<
12120 65 72 72 6f 72 3e 41 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 20 77 68 69 6c 65 20 72 65 error>An.error.occurred.while.re
12140 6d 6f 76 69 6e 67 20 74 68 65 20 56 43 53 20 6d 65 74 61 64 61 74 61 3a 20 27 2e 24 65 2d 3e 67 moving.the.VCS.metadata:.'.$e->g
12160 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 68 61 73 etMessage().'</error>');.}..$has
12180 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 61 73 56 63 73 29 20 Vcs.=.false;.}....if.(!$hasVcs).
121a0 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 65 74 50 61 63 6b 61 {.$package.=.$composer->getPacka
121c0 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 20 4a 73 6f 6e 43 6f ge();.$configSource.=.new.JsonCo
121e0 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 63 6f 6d 70 6f 73 65 nfigSource(new.JsonFile('compose
12200 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 61 63 6b 61 67 65 3a r.json'));.foreach.(BasePackage:
12220 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 74 79 70 65 20 3d 3e :$supportedLinkTypes.as.$type.=>
12240 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 67 65 2d 3e 7b 27 67 .$meta).{.foreach.($package->{'g
12260 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 20 24 6c 69 6e 6b 29 et'.$meta['method']}().as.$link)
12280 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 6e 73 74 72 61 69 6e .{.if.($link->getPrettyConstrain
122a0 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 0a 24 63 6f 6e 66 69 t().===.'self.version').{.$confi
122c0 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 6c 69 6e 6b 2d 3e 67 gSource->addLink($type,.$link->g
122e0 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 50 72 65 74 74 79 56 etTarget(),.$package->getPrettyV
12300 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 6e 6f 53 63 72 69 70 ersion());.}.}.}.}..if.($noScrip
12320 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 67 65 74 ts.===.false).{...$composer->get
12340 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 53 63 72 69 70 EventDispatcher()->dispatchScrip
12360 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a t(ScriptEvents::POST_CREATE_PROJ
12380 45 43 54 5f 43 4d 44 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d ECT_CMD,.$installDevPackages);.}
123a0 0a 0a 63 68 64 69 72 28 24 6f 6c 64 43 77 64 29 3b 0a 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 ..chdir($oldCwd);.$vendorCompose
123c0 72 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 rDir.=.$composer->getConfig()->g
123e0 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 69 66 et('vendor-dir').'/composer';.if
12400 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 29 20 26 26 20 .(is_dir($vendorComposerDir).&&.
12420 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 $fs->isDirEmpty($vendorComposerD
12440 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 ir)).{.@rmdir($vendorComposerDir
12460 29 3b 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f );.$vendorDir.=.$composer->getCo
12480 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 3b 0a 69 66 20 28 69 nfig()->get('vendor-dir');.if.(i
124a0 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 20 26 26 20 24 66 73 2d 3e 69 73 44 69 72 45 s_dir($vendorDir).&&.$fs->isDirE
124c0 6d 70 74 79 28 24 76 65 6e 64 6f 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 76 65 6e 64 mpty($vendorDir)).{.@rmdir($vend
124e0 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 orDir);.}.}..return.0;.}..protec
12500 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 52 6f 6f 74 50 61 63 6b 61 67 65 28 ted.function.installRootPackage(
12520 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 67 2c IOInterface.$io,.Config.$config,
12540 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 3d 20 6e 75 6c 6c .$packageName,.$directory.=.null
12560 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 24 73 74 61 62 69 ,.$packageVersion.=.null,.$stabi
12580 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 75 72 63 65 20 3d lity.=.'stable',.$preferSource.=
125a0 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 65 2c 20 24 69 6e .false,.$preferDist.=.false,.$in
125c0 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 24 72 65 70 6f 73 stallDevPackages.=.false,.$repos
125e0 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 6c 75 67 69 6e 73 itoryUrl.=.null,.$disablePlugins
12600 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 73 65 2c 20 24 6b .=.false,.$noScripts.=.false,.$k
12620 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 73 20 3d 20 66 61 eepVcs.=.false,.$noProgress.=.fa
12640 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 69 74 6f 72 79 55 lse).{.if.(null.===.$repositoryU
12660 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 6d 70 6f 73 69 74 rl).{.$sourceRepo.=.new.Composit
12680 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 65 44 65 66 61 75 eRepository(Factory::createDefau
126a0 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 67 29 29 3b 0a 7d ltRepositories($io,.$config));.}
126c0 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 66 6f 28 24 72 65 .elseif.("json".===.pathinfo($re
126e0 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 4e 53 49 4f 4e 29 positoryUrl,.PATHINFO_EXTENSION)
12700 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 29 .&&.file_exists($repositoryUrl))
12720 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 72 65 70 6f 73 69 74 .{.$json.=.new.JsonFile($reposit
12740 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 65 6d 28 24 69 6f oryUrl,.new.RemoteFilesystem($io
12760 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 61 74 61 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 ,.$config));.$data.=.$json->read
12780 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d ();.if.(!empty($data['packages']
127a0 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 20 7c ).||.!empty($data['includes']).|
127c0 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 |.!empty($data['provider-include
127e0 73 27 5d 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 s'])).{.$sourceRepo.=.new.Compos
12800 65 72 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 27 66 69 6c erRepository(array('url'.=>.'fil
12820 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 72 65 61 6c 70 61 74 68 28 24 72 65 70 6f 73 69 74 6f e://'...strtr(realpath($reposito
12840 72 79 55 72 6c 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 69 ryUrl),.'\\',.'/')),.$io,.$confi
12860 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 46 g);.}.else.{.$sourceRepo.=.new.F
12880 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 7d 20 ilesystemRepository($json);.}.}.
128a0 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 70 6f 73 69 74 6f 72 79 elseif.(0.===.strpos($repository
128c0 55 72 6c 2c 20 27 68 74 74 70 27 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 Url,.'http')).{.$sourceRepo.=.ne
128e0 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 w.ComposerRepository(array('url'
12900 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 69 .=>.$repositoryUrl),.$io,.$confi
12920 67 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 41 g);.}.else.{.throw.new.\InvalidA
12940 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 rgumentException("Invalid.reposi
12960 74 6f 72 79 20 75 72 6c 20 67 69 76 65 6e 2e 20 48 61 73 20 74 6f 20 62 65 20 61 20 2e 6a 73 6f tory.url.given..Has.to.be.a..jso
12980 6e 20 66 69 6c 65 20 6f 72 20 61 6e 20 68 74 74 70 20 75 72 6c 2e 22 29 3b 0a 7d 0a 0a 24 70 61 n.file.or.an.http.url.");.}..$pa
129a0 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 71 rser.=.new.VersionParser();.$req
129c0 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 6d 65 56 65 uirements.=.$parser->parseNameVe
129e0 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 65 29 29 3b rsionPairs(array($packageName));
12a00 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 6d 65 6e 74 .$name.=.strtolower($requirement
12a20 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 56 65 72 73 s[0]['name']);.if.(!$packageVers
12a40 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 5d 5b 27 76 ion.&&.isset($requirements[0]['v
12a60 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 20 3d 20 24 ersion'])).{.$packageVersion.=.$
12a80 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 7d 0a 0a 69 requirements[0]['version'];.}..i
12aa0 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 20 28 70 72 f.(null.===.$stability).{.if.(pr
12ac0 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 6f 64 65 28 eg_match('{^[^,\s]*?@('.implode(
12ae0 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 3a 24 73 74 '|',.array_keys(BasePackage::$st
12b00 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 56 65 72 73 abilities)).')$}i',.$packageVers
12b20 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 20 24 6d 61 ion,.$match)).{.$stability.=.$ma
12b40 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 3d 20 56 65 tch[1];.}.else.{.$stability.=.Ve
12b60 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 70 61 63 rsionParser::parseStability($pac
12b80 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 79 20 3d 20 kageVersion);.}.}..$stability.=.
12ba0 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
12bc0 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 61 73 65 50 y($stability);..if.(!isset(BaseP
12be0 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 69 74 79 5d ackage::$stabilities[$stability]
12c00 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
12c20 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 70 72 6f 76 xception('Invalid.stability.prov
12c40 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 62 65 20 6f ided.('.$stability.'),.must.be.o
12c60 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 65 79 ne.of:.'.implode(',.',.array_key
12c80 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 29 3b 0a s(BasePackage::$stabilities)));.
12ca0 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 74 79 29 3b }..$pool.=.new.Pool($stability);
12cc0 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 65 52 65 70 .$pool->addRepository($sourceRep
12ce0 6f 29 3b 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 20 3d 20 6e 65 77 20 56 65 o);....$versionSelector.=.new.Ve
12d00 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 28 24 70 6f 6f 6c 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d rsionSelector($pool);.$package.=
12d20 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 2d 3e 66 69 6e 64 42 65 73 74 43 61 6e 64 69 .$versionSelector->findBestCandi
12d40 64 61 74 65 28 24 6e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 3b 0a 0a 69 date($name,.$packageVersion);..i
12d60 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
12d80 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 idArgumentException("Could.not.f
12da0 69 6e 64 20 70 61 63 6b 61 67 65 20 24 6e 61 6d 65 22 20 2e 20 28 24 70 61 63 6b 61 67 65 56 65 ind.package.$name"...($packageVe
12dc0 72 73 69 6f 6e 20 3f 20 22 20 77 69 74 68 20 76 65 72 73 69 6f 6e 20 24 70 61 63 6b 61 67 65 56 rsion.?.".with.version.$packageV
12de0 65 72 73 69 6f 6e 2e 22 20 3a 20 22 20 77 69 74 68 20 73 74 61 62 69 6c 69 74 79 20 24 73 74 61 ersion.".:.".with.stability.$sta
12e00 62 69 6c 69 74 79 2e 22 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 69 72 bility."));.}..if.(null.===.$dir
12e20 65 63 74 6f 72 79 29 20 7b 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 ectory).{.$parts.=.explode("/",.
12e40 24 6e 61 6d 65 2c 20 32 29 3b 0a 24 64 69 72 65 63 74 6f 72 79 20 3d 20 67 65 74 63 77 64 28 29 $name,.2);.$directory.=.getcwd()
12e60 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 61 72 72 61 79 5f 70 ...DIRECTORY_SEPARATOR...array_p
12e80 6f 70 28 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 op($parts);.}..$io->writeError('
12ea0 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 <info>Installing.'...$package->g
12ec0 65 74 4e 61 6d 65 28 29 20 2e 20 27 20 28 27 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a etName()...'.('...VersionParser:
12ee0 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 66 61 6c 73 65 29 20 :formatVersion($package,.false).
12f00 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 50 6c 75 67 ..')</info>');..if.($disablePlug
12f20 69 6e 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 50 6c ins).{.$io->writeError('<info>Pl
12f40 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 2f 69 6e 66 6f 3e ugins.have.been.disabled.</info>
12f60 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 61 63 6b 61 67 65 ');.}..if.(0.===.strpos($package
12f80 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 2d 27 29 20 26 26 ->getPrettyVersion(),.'dev-').&&
12fa0 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 72 63 65 54 79 70 .in_array($package->getSourceTyp
12fc0 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 7b 0a 24 70 61 63 e(),.array('git',.'hg'))).{.$pac
12fe0 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 75 62 73 74 72 28 kage->setSourceReference(substr(
13000 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 34 29 $package->getPrettyVersion(),.4)
13020 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 6f 77 6e 6c 6f 61 );.}..$dm.=.$this->createDownloa
13040 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 6d 2d 3e 73 65 74 dManager($io,.$config);.$dm->set
13060 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 29 0a 2d 3e 73 65 PreferSource($preferSource).->se
13080 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 3e 73 65 74 4f 75 tPreferDist($preferDist).->setOu
130a0 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 3b 0a 0a 24 70 72 tputProgress(!$noProgress);..$pr
130c0 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 63 74 49 6e 73 74 ojectInstaller.=.new.ProjectInst
130e0 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 6d 20 3d 20 24 74 aller($directory,.$dm);.$im.=.$t
13100 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 his->createInstallationManager()
13120 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 63 74 49 6e 73 74 ;.$im->addInstaller($projectInst
13140 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 6e 73 74 61 6c 6c aller);.$im->install(new.Install
13160 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 edFilesystemRepository(new.JsonF
13180 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 49 6e 73 74 61 6c ile('php://memory')),.new.Instal
131a0 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 2d 3e 6e 6f 74 69 lOperation($package));.$im->noti
131c0 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 72 6f 6d 56 63 73 fyInstalls();..$installedFromVcs
131e0 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 67 65 74 49 6e 73 .=.'source'.===.$package->getIns
13200 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 72 69 74 65 45 72 tallationSource();..$io->writeEr
13220 72 6f 72 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 65 64 20 70 72 6f 6a 65 63 74 20 69 6e 20 27 20 ror('<info>Created.project.in.'.
13240 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 72 ..$directory...'</info>');.chdir
13260 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a 24 5f 53 45 52 56 45 52 5b 27 43 4f 4d 50 4f 53 45 ($directory);..$_SERVER['COMPOSE
13280 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 R_ROOT_VERSION'].=.$package->get
132a0 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 70 75 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 PrettyVersion();.putenv('COMPOSE
132c0 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 3d 27 2e 24 5f 53 45 52 56 45 52 5b 27 43 4f 4d 50 4f R_ROOT_VERSION='.$_SERVER['COMPO
132e0 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e SER_ROOT_VERSION']);..return.$in
13300 73 74 61 6c 6c 65 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 stalledFromVcs;.}..protected.fun
13320 63 74 69 6f 6e 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 ction.createDownloadManager(IOIn
13340 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 29 0a 7b 0a 24 terface.$io,.Config.$config).{.$
13360 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 28 29 3b 0a 0a 72 65 74 75 72 6e factory.=.new.Factory();..return
13380 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 .$factory->createDownloadManager
133a0 28 24 69 6f 2c 20 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 ($io,.$config);.}..protected.fun
133c0 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 ction.createInstallationManager(
133e0 29 0a 7b 0a 72 65 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 ).{.return.new.InstallationManag
13400 65 72 28 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 er();.}.........protected.functi
13420 6f 6e 20 75 70 64 61 74 65 50 72 65 66 65 72 72 65 64 4f 70 74 69 6f 6e 73 28 43 6f 6e 66 69 67 on.updatePreferredOptions(Config
13440 20 24 63 6f 6e 66 69 67 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c .$config,.InputInterface.$input,
13460 20 26 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 20 26 24 70 72 65 66 65 72 44 69 73 74 29 0a 7b .&$preferSource,.&$preferDist).{
13480 0a 73 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 .switch.($config->get('preferred
134a0 2d 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 -install')).{.case.'source':.$pr
134c0 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d eferSource.=.true;.$preferDist.=
134e0 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 .false;.break;.case.'dist':.$pre
13500 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 72 44 69 73 74 20 3d ferSource.=.false;.$preferDist.=
13520 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 .true;.break;.case.'auto':.defau
13540 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f lt:...break;.}..if.($input->getO
13560 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 ption('prefer-source').||.$input
13580 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 29 29 20 7b 0a 24 70 ->getOption('prefer-dist')).{.$p
135a0 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 referSource.=.$input->getOption(
135c0 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 'prefer-source');.$preferDist.=.
135e0 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 29 $input->getOption('prefer-dist')
13600 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ;.}.}.}.<?php............namespa
13620 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e ce.Composer\Command;..use.Symfon
13640 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
13660 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\
13680 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;.
136a0 0a 0a 0a 0a 63 6c 61 73 73 20 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 ....class.AboutCommand.extends.C
136c0 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
136e0 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 61 62 6f 75 74 igure().{.$this.->setName('about
13700 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 72 74 20 69 6e 66 6f 72 ').->setDescription('Short.infor
13720 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 43 6f 6d 70 6f 73 65 72 27 29 0a 2d 3e 73 65 74 48 65 6c mation.about.Composer').->setHel
13740 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 p(<<<EOT.<info>php.composer.phar
13760 20 61 62 6f 75 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 .about</info>.EOT.).;.}..protect
13780 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 ed.function.execute(InputInterfa
137a0 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
137c0 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 3c 3c 3c 45 ut).{.$this->getIO()->write(<<<E
137e0 4f 54 0a 3c 69 6e 66 6f 3e 43 6f 6d 70 6f 73 65 72 20 2d 20 50 61 63 6b 61 67 65 20 4d 61 6e 61 OT.<info>Composer.-.Package.Mana
13800 67 65 6d 65 6e 74 20 66 6f 72 20 50 48 50 3c 2f 69 6e 66 6f 3e 0a 3c 63 6f 6d 6d 65 6e 74 3e 43 gement.for.PHP</info>.<comment>C
13820 6f 6d 70 6f 73 65 72 20 69 73 20 61 20 64 65 70 65 6e 64 65 6e 63 79 20 6d 61 6e 61 67 65 72 20 omposer.is.a.dependency.manager.
13840 74 72 61 63 6b 69 6e 67 20 6c 6f 63 61 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 tracking.local.dependencies.of.y
13860 6f 75 72 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 2e 0a 53 65 65 20 our.projects.and.libraries..See.
13880 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 66 6f 72 20 6d 6f 72 65 http://getcomposer.org/.for.more
138a0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 3b 0a 7d .information.</comment>.EOT.);.}
138c0 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
138e0 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 6d mposer\Command;..use.Symfony\Com
13900 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 66 ponent\Console\Input\InputInterf
13920 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
13940 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 6e le\Input\InputOption;.use.Symfon
13960 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
13980 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 rgument;.use.Symfony\Component\C
139a0 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 0a onsole\Output\OutputInterface;..
139c0 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 41 6c 69 61 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 ...class.ScriptAliasCommand.exte
139e0 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 63 72 69 70 74 3b 0a 0a nds.Command.{.private.$script;..
13a00 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 63 72 public.function.__construct($scr
13a20 69 70 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 69 70 74 20 3d 20 24 73 63 72 69 70 74 3b 0a ipt).{.$this->script.=.$script;.
13a40 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 .parent::__construct();.}..prote
13a60 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 cted.function.configure().{.$thi
13a80 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 24 74 68 69 73 2d 3e 73 63 72 69 70 74 29 0a 2d 3e 73 65 74 s.->setName($this->script).->set
13aa0 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 75 6e 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 73 63 Description('Run.the.'.$this->sc
13ac0 72 69 70 74 2e 27 20 73 63 72 69 70 74 20 61 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 ript.'.script.as.defined.in.comp
13ae0 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 6f 6e 28 61 72 72 oser.json.').->setDefinition(arr
13b00 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c ay(.new.InputOption('dev',.null,
13b20 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 74 73 20 .InputOption::VALUE_NONE,.'Sets.
13b40 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 69 6f 6e the.dev.mode.'),.new.InputOption
13b60 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 3a 56 41 ('no-dev',.null,.InputOption::VA
13b80 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 6f 64 65 LUE_NONE,.'Disables.the.dev.mode
13ba0 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 61 72 67 73 27 2c 20 49 .'),.new.InputArgument('args',.I
13bc0 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 nputArgument::IS_ARRAY.|.InputAr
13be0 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 gument::OPTIONAL,.''),.)).->setH
13c00 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 72 75 6e 2d 73 63 72 69 70 74 3c elp(<<<EOT.The.<info>run-script<
13c20 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 75 6e 73 20 73 63 72 69 70 74 73 20 64 65 66 69 /info>.command.runs.scripts.defi
13c40 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 ned.in.composer.json:..<info>php
13c60 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 72 75 6e 2d 73 63 72 69 70 74 20 70 6f 73 74 2d 75 .composer.phar.run-script.post-u
13c80 70 64 61 74 65 2d 63 6d 64 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 pdate-cmd</info>.EOT.).;.}..prot
13ca0 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
13cc0 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
13ce0 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 65 74 43 utput).{.$composer.=.$this->getC
13d00 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 0a 20 24 62 69 6e 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 omposer();....$binDir.=.$compose
13d20 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 69 72 27 29 3b 0a r->getConfig()->get('bin-dir');.
13d40 69 66 20 28 69 73 5f 64 69 72 28 24 62 69 6e 44 69 72 29 29 20 7b 0a 24 5f 53 45 52 56 45 52 5b if.(is_dir($binDir)).{.$_SERVER[
13d60 27 50 41 54 48 27 5d 20 3d 20 72 65 61 6c 70 61 74 68 28 24 62 69 6e 44 69 72 29 2e 50 41 54 48 'PATH'].=.realpath($binDir).PATH
13d80 5f 53 45 50 41 52 41 54 4f 52 2e 67 65 74 65 6e 76 28 27 50 41 54 48 27 29 3b 0a 70 75 74 65 6e _SEPARATOR.getenv('PATH');.puten
13da0 76 28 27 50 41 54 48 3d 27 2e 24 5f 53 45 52 56 45 52 5b 27 50 41 54 48 27 5d 29 3b 0a 7d 0a 0a v('PATH='.$_SERVER['PATH']);.}..
13dc0 24 61 72 67 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a $args.=.$input->getArguments();.
13de0 0a 72 65 74 75 72 6e 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 .return.$composer->getEventDispa
13e00 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 24 74 68 69 73 2d 3e 73 tcher()->dispatchScript($this->s
13e20 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').
13e40 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 2c ||.!$input->getOption('no-dev'),
13e60 20 24 61 72 67 73 5b 27 61 72 67 73 27 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .$args['args']);.}.}.<?php......
13e80 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
13ea0 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 52 65 73 6f 6c 76 ;..use.Composer\DependencyResolv
13ec0 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 63 79 er\Pool;.use.Composer\Dependency
13ee0 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a 75 73 65 20 43 6f 6d 70 Resolver\DefaultPolicy;.use.Comp
13f00 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 oser\Factory;.use.Composer\Packa
13f20 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 3b 0a 75 73 65 ge\CompletePackageInterface;.use
13f40 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f .Composer\Package\Version\Versio
13f60 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 5c 43 6f 6d nParser;.use.Composer\Plugin\Com
13f80 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
13fa0 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 70 6f 6e 65 luginEvents;.use.Symfony\Compone
13fc0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b nt\Console\Input\InputInterface;
13fe0 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
14000 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 6e 79 5c nput\InputArgument;.use.Symfony\
14020 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
14040 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 6f ion;.use.Symfony\Component\Conso
14060 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 le\Output\OutputInterface;.use.C
14080 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 73 69 74 6f omposer\Repository\ArrayReposito
140a0 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 43 6f 6d 70 ry;.use.Composer\Repository\Comp
140c0 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 ositeRepository;.use.Composer\Re
140e0 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 pository\ComposerRepository;.use
14100 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 .Composer\Repository\PlatformRep
14120 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ository;.use.Composer\Repository
14140 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 \RepositoryInterface;......class
14160 20 53 68 6f 77 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 .ShowCommand.extends.Command.{.p
14180 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 70 72 6f 74 65 63 rotected.$versionParser;..protec
141a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 ted.function.configure().{.$this
141c0 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 68 6f 77 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 .->setName('show').->setAliases(
141e0 61 72 72 61 79 28 27 69 6e 66 6f 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 array('info')).->setDescription(
14200 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 70 61 63 6b 61 67 65 73 'Show.information.about.packages
14220 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
14240 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 75 putArgument('package',.InputArgu
14260 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 69 6e 73 70 ment::OPTIONAL,.'Package.to.insp
14280 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 72 73 69 6f ect'),.new.InputArgument('versio
142a0 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 n',.InputArgument::OPTIONAL,.'Ve
142c0 72 73 69 6f 6e 20 6f 72 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 69 rsion.or.version.constraint.to.i
142e0 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 nspect'),.new.InputOption('insta
14300 6c 6c 65 64 27 2c 20 27 69 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e lled',.'i',.InputOption::VALUE_N
14320 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 73 20 6f 6e ONE,.'List.installed.packages.on
14340 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 ly'),.new.InputOption('platform'
14360 2c 20 27 70 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 ,.'p',.InputOption::VALUE_NONE,.
14380 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 'List.platform.packages.only'),.
143a0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 2c 20 27 61 27 new.InputOption('available',.'a'
143c0 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 ,.InputOption::VALUE_NONE,.'List
143e0 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 .available.packages.only'),.new.
14400 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 2c 20 27 73 27 2c 20 49 6e 70 75 74 4f 70 InputOption('self',.'s',.InputOp
14420 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 74 68 65 20 72 6f 6f 74 tion::VALUE_NONE,.'Show.the.root
14440 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 .package.information'),.new.Inpu
14460 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 2c 20 27 4e 27 2c 20 49 6e 70 75 74 4f tOption('name-only',.'N',.InputO
14480 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 70 61 63 6b 61 67 65 ption::VALUE_NONE,.'List.package
144a0 20 6e 61 6d 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 27 .names.only'),.new.InputOption('
144c0 70 61 74 68 27 2c 20 27 50 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e path',.'P',.InputOption::VALUE_N
144e0 4f 4e 45 2c 20 27 53 68 6f 77 20 70 61 63 6b 61 67 65 20 70 61 74 68 73 27 29 2c 0a 29 29 0a 2d ONE,.'Show.package.paths'),.)).-
14500 3e 73 65 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 >setHelp(<<<EOT.The.show.command
14520 20 64 69 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 .displays.detailed.information.a
14540 62 6f 75 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 bout.a.package,.or.lists.all.pac
14560 6b 61 67 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 kages.available...EOT.).;.}..pro
14580 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 tected.function.execute(InputInt
145a0 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.$
145c0 6f 75 74 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 output).{.$this->versionParser.=
145e0 20 6e 65 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 .new.VersionParser;....$platform
14600 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 0a Repo.=.new.PlatformRepository;..
14620 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 66 $composer.=.$this->getComposer(f
14640 61 6c 73 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 alse);.if.($input->getOption('se
14660 6c 66 27 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 lf')).{.$package.=.$this->getCom
14680 70 6f 73 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 poser()->getPackage();.$repos.=.
146a0 24 69 6e 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 $installedRepo.=.new.ArrayReposi
146c0 74 6f 72 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 tory(array($package));.}.elseif.
146e0 28 24 69 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 ($input->getOption('platform')).
14700 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 {.$repos.=.$installedRepo.=.$pla
14720 74 66 6f 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 tformRepo;.}.elseif.($input->get
14740 4f 70 74 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 Option('installed')).{.$repos.=.
14760 24 69 6e 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 $installedRepo.=.$this->getCompo
14780 73 65 72 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 ser()->getRepositoryManager()->g
147a0 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 etLocalRepository();.}.elseif.($
147c0 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 29 20 7b input->getOption('available')).{
147e0 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b .$installedRepo.=.$platformRepo;
14800 0a 69 66 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 .if.($composer).{.$repos.=.new.C
14820 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 ompositeRepository($composer->ge
14840 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 52 65 70 6f 73 69 74 tRepositoryManager()->getReposit
14860 6f 72 69 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 ories());.}.else.{.$defaultRepos
14880 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 .=.Factory::createDefaultReposit
148a0 6f 72 69 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 ories($this->getIO());.$repos.=.
148c0 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 6c 74 new.CompositeRepository($default
148e0 52 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 Repos);.$this->getIO()->writeErr
14900 6f 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 or('No.composer.json.found.in.th
14920 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 61 76 61 e.current.directory,.showing.ava
14940 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 ilable.packages.from.'...implode
14960 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 (',.',.array_keys($defaultRepos)
14980 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 6c 6f ));.}.}.elseif.($composer).{.$lo
149a0 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f calRepo.=.$composer->getReposito
149c0 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 ryManager()->getLocalRepository(
149e0 29 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 );.$installedRepo.=.new.Composit
14a00 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 eRepository(array($localRepo,.$p
14a20 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 latformRepo));.$repos.=.new.Comp
14a40 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 61 ositeRepository(array_merge(arra
14a60 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 y($installedRepo),.$composer->ge
14a80 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 52 65 70 6f 73 69 74 tRepositoryManager()->getReposit
14aa0 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f ories()));.}.else.{.$defaultRepo
14ac0 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 69 s.=.Factory::createDefaultReposi
14ae0 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 tories($this->getIO());.$this->g
14b00 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e etIO()->writeError('No.composer.
14b20 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 json.found.in.the.current.direct
14b40 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 65 73 20 ory,.showing.available.packages.
14b60 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 6b 65 79 from.'...implode(',.',.array_key
14b80 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 s($defaultRepos)));.$installedRe
14ba0 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 po.=.$platformRepo;.$repos.=.new
14bc0 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
14be0 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 64 65 66 61 75 6c 74 (array($installedRepo),.$default
14c00 52 65 70 6f 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 Repos));.}..if.($composer).{.$co
14c20 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 74 28 50 6c mmandEvent.=.new.CommandEvent(Pl
14c40 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 68 6f 77 27 2c 20 24 69 6e uginEvents::COMMAND,.'show',.$in
14c60 70 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 put,.$output);.$composer->getEve
14c80 6e 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 ntDispatcher()->dispatch($comman
14ca0 64 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 dEvent->getName(),.$commandEvent
14cc0 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 );.}....if.($input->getArgument(
14ce0 27 70 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 'package').||.!empty($package)).
14d00 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 {.$versions.=.array();.if.(empty
14d20 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 ($package)).{.list($package,.$ve
14d40 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 24 69 6e 73 rsions).=.$this->getPackage($ins
14d60 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 talledRepo,.$repos,.$input->getA
14d80 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 rgument('package'),.$input->getA
14da0 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b rgument('version'));..if.(!$pack
14dc0 61 67 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 age).{.throw.new.\InvalidArgumen
14de0 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 69 6e 70 75 74 2d 3e 67 65 tException('Package.'.$input->ge
14e00 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 tArgument('package').'.not.found
14e20 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 ');.}.}.else.{.$versions.=.array
14e40 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3e ($package->getPrettyVersion().=>
14e60 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 24 74 68 .$package->getVersion());.}..$th
14e80 69 73 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 is->printMeta($input,.$output,.$
14ea0 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 package,.$versions,.$installedRe
14ec0 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 po,.$repos);.$this->printLinks($
14ee0 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 72 65 71 75 69 input,.$output,.$package,.'requi
14f00 72 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 6e 70 75 74 2c res');.$this->printLinks($input,
14f20 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 64 65 76 52 65 71 75 69 72 65 73 .$output,.$package,.'devRequires
14f40 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 ',.'requires.(dev)');.if.($packa
14f60 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 ge->getSuggests()).{.$this->getI
14f80 4f 28 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 67 67 65 73 74 73 3c 2f 69 6e O()->write("\n<info>suggests</in
14fa0 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 fo>");.foreach.($package->getSug
14fc0 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 61 73 6f 6e gests().as.$suggested.=>.$reason
14fe0 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 73 75 67 67 65 ).{.$this->getIO()->write($sugge
15000 73 74 65 64 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 72 65 61 73 6f 6e 20 2e 20 sted...'.<comment>'...$reason...
15020 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c '</comment>');.}.}.$this->printL
15040 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 inks($input,.$output,.$package,.
15060 27 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 'provides');.$this->printLinks($
15080 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 63 6f 6e 66 6c input,.$output,.$package,.'confl
150a0 69 63 74 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 icts');.$this->printLinks($input
150c0 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 72 65 70 6c 61 63 65 73 27 29 ,.$output,.$package,.'replaces')
150e0 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 ;..return;.}....$packages.=.arra
15100 79 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 y();..if.($repos.instanceof.Comp
15120 6f 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 ositeRepository).{.$repos.=.$rep
15140 6f 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 os->getRepositories();.}.elseif.
15160 28 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 (!is_array($repos)).{.$repos.=.a
15180 72 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 rray($repos);.}..foreach.($repos
151a0 20 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 .as.$repo).{.if.($repo.===.$plat
151c0 66 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 formRepo).{.$type.=.'<info>platf
151e0 6f 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 orm</info>:';.}.elseif.(.$repo.=
15200 3d 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 ==.$installedRepo.||.($installed
15220 52 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 Repo.instanceof.CompositeReposit
15240 6f 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 ory.&&.in_array($repo,.$installe
15260 64 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 dRepo->getRepositories(),.true))
15280 0a 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 .).{.$type.=.'<info>installed</i
152a0 6e 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 nfo>:';.}.else.{.$type.=.'<comme
152c0 6e 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 nt>available</comment>:';.}.if.(
152e0 24 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 $repo.instanceof.ComposerReposit
15300 6f 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 ory.&&.$repo->hasProviders()).{.
15320 66 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 foreach.($repo->getProviderNames
15340 28 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 ().as.$name).{.$packages[$type][
15360 24 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 $name].=.$name;.}.}.else.{.forea
15380 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 61 63 ch.($repo->getPackages().as.$pac
153a0 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 5b 24 74 79 kage).{.if.(!isset($packages[$ty
153c0 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 21 69 73 pe][$package->getName()]).||.!is
153e0 5f 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 _object($packages[$type][$packag
15400 65 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 e->getName()]).||.version_compar
15420 65 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 e($packages[$type][$package->get
15440 4e 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 Name()]->getVersion(),.$package-
15460 3e 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 >getVersion(),.'<').).{.$package
15480 73 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 s[$type][$package->getName()].=.
154a0 24 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 $package;.}.}.}.}..$tree.=.!$inp
154c0 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 20 26 26 20 21 24 69 ut->getOption('platform').&&.!$i
154e0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 20 26 26 20 nput->getOption('installed').&&.
15500 21 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 !$input->getOption('available');
15520 0a 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 .$indent.=.$tree.?.'..'.:.'';.fo
15540 72 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 reach.(array('<info>platform</in
15560 66 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 fo>:'.=>.true,.'<comment>availab
15580 6c 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 le</comment>:'.=>.false,.'<info>
155a0 69 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 installed</info>:'.=>.true).as.$
155c0 74 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 type.=>.$showVersion).{.if.(isse
155e0 74 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 t($packages[$type])).{.if.($tree
15600 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 74 79 70 65 29 ).{.$this->getIO()->write($type)
15620 3b 0a 7d 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 0a 24 6e ;.}.ksort($packages[$type]);..$n
15640 61 6d 65 4c 65 6e 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 ameLength.=.$versionLength.=.0;.
15660 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 foreach.($packages[$type].as.$pa
15680 63 6b 61 67 65 29 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 ckage).{.if.(is_object($package)
156a0 29 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 6e 67 74 ).{.$nameLength.=.max($nameLengt
156c0 68 2c 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d h,.strlen($package->getPrettyNam
156e0 65 28 29 29 29 3b 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 e()));.$versionLength.=.max($ver
15700 73 69 6f 6e 4c 65 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 sionLength,.strlen($this->versio
15720 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 29 nParser->formatVersion($package)
15740 29 29 3b 0a 7d 20 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 ));.}.else.{.$nameLength.=.max($
15760 6e 61 6d 65 4c 65 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 nameLength,.$package);.}.}.list(
15780 24 77 69 64 74 68 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 $width).=.$this->getApplication(
157a0 29 2d 3e 67 65 74 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 )->getTerminalDimensions();.if.(
157c0 6e 75 6c 6c 20 3d 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 null.===.$width).{.....$width.=.
157e0 50 48 50 5f 49 4e 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 PHP_INT_MAX;.}.if.(defined('PHP_
15800 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 77 69 64 74 WINDOWS_VERSION_BUILD')).{.$widt
15820 68 2d 2d 3b 0a 7d 0a 0a 24 77 72 69 74 65 50 61 74 68 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 h--;.}..$writePath.=.!$input->ge
15840 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e tOption('name-only').&&.$input->
15860 67 65 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 29 3b 0a 24 77 72 69 74 65 56 65 72 73 69 6f 6e getOption('path');.$writeVersion
15880 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 6f 6e 6c 79 .=.!$input->getOption('name-only
158a0 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 29 ').&&.!$input->getOption('path')
158c0 20 26 26 20 24 73 68 6f 77 56 65 72 73 69 6f 6e 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 .&&.$showVersion.&&.($nameLength
158e0 20 2b 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 2b 20 33 20 3c 3d 20 24 77 69 64 74 68 29 .+.$versionLength.+.3.<=.$width)
15900 3b 0a 24 77 72 69 74 65 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 ;.$writeDescription.=.!$input->g
15920 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 29 20 26 26 20 21 24 69 6e 70 75 74 etOption('name-only').&&.!$input
15940 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 29 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e ->getOption('path').&&.($nameLen
15960 67 74 68 20 2b 20 28 24 73 68 6f 77 56 65 72 73 69 6f 6e 20 3f 20 24 76 65 72 73 69 6f 6e 4c 65 gth.+.($showVersion.?.$versionLe
15980 6e 67 74 68 20 3a 20 30 29 20 2b 20 32 34 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 66 6f 72 65 61 ngth.:.0).+.24.<=.$width);.forea
159a0 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 ch.($packages[$type].as.$package
159c0 29 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 ).{.if.(is_object($package)).{.$
159e0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 69 6e 64 65 6e 74 20 2e 20 73 74 72 5f 70 61 64 28 output->write($indent...str_pad(
15a00 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 6e 61 6d 65 $package->getPrettyName(),.$name
15a20 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 77 72 69 74 Length,.'.'),.false);..if.($writ
15a40 65 56 65 72 73 69 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e eVersion).{.$output->write('.'..
15a60 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 .str_pad($this->versionParser->f
15a80 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 2c 20 24 76 65 72 73 69 6f 6e ormatVersion($package),.$version
15aa0 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 Length,.'.'),.false);.}..if.($wr
15ac0 69 74 65 44 65 73 63 72 69 70 74 69 6f 6e 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d iteDescription).{.$description.=
15ae0 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e .strtok($package->getDescription
15b00 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 24 77 69 64 74 68 (),."\r\n");.$remaining.=.$width
15b20 20 2d 20 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2d 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 .-.$nameLength.-.$versionLength.
15b40 2d 20 34 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 3e 20 -.4;.if.(strlen($description).>.
15b60 24 72 65 6d 61 69 6e 69 6e 67 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 $remaining).{.$description.=.sub
15b80 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 30 2c 20 24 72 65 6d 61 69 6e 69 6e 67 20 str($description,.0,.$remaining.
15ba0 2d 20 33 29 20 2e 20 27 2e 2e 2e 27 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 -.3)...'...';.}.$output->write('
15bc0 20 27 20 2e 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 .'...$description);.}..if.($writ
15be0 65 50 61 74 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 6f 6b 28 72 65 61 6c 70 61 74 68 ePath).{.$path.=.strtok(realpath
15c00 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 ($composer->getInstallationManag
15c20 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 2c er()->getInstallPath($package)),
15c40 20 22 5c 72 5c 6e 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 ."\r\n");.$output->write('.'...$
15c60 70 61 74 68 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 path);.}.}.else.{.$output->write
15c80 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 74 68 69 73 2d 3e 67 ($indent...$package);.}.$this->g
15ca0 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 69 66 20 28 24 74 72 65 65 29 20 etIO()->write('');.}.if.($tree).
15cc0 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 7d {.$this->getIO()->write('');.}.}
15ce0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .}.}............protected.functi
15d00 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 on.getPackage(RepositoryInterfac
15d20 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 e.$installedRepo,.RepositoryInte
15d40 72 66 61 63 65 20 24 72 65 70 6f 73 2c 20 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 rface.$repos,.$name,.$version.=.
15d60 6e 75 6c 6c 29 0a 7b 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 null).{.$name.=.strtolower($name
15d80 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 76 65 72 73 );.$constraint.=.null;.if.($vers
15da0 69 6f 6e 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 ion).{.$constraint.=.$this->vers
15dc0 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 76 65 72 ionParser->parseConstraints($ver
15de0 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 6f 6c 69 63 79 20 3d 20 6e 65 77 20 44 65 66 61 75 6c 74 50 sion);.}..$policy.=.new.DefaultP
15e00 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 olicy();.$pool.=.new.Pool('dev')
15e20 3b 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 ;.$pool->addRepository($repos);.
15e40 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 24 76 65 72 73 69 6f .$matchedPackage.=.null;.$versio
15e60 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e ns.=.array();.$matches.=.$pool->
15e80 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 whatProvides($name,.$constraint)
15ea0 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 3d 3e ;.foreach.($matches.as.$index.=>
15ec0 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 .$package).{...if.($package->get
15ee0 4e 61 6d 65 28 29 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 Name().!==.$name).{.unset($match
15f00 65 73 5b 24 69 6e 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 es[$index]);.continue;.}....if.(
15f20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 52 null.===.$version.&&.$installedR
15f40 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 6d 61 epo->hasPackage($package)).{.$ma
15f60 74 63 68 65 64 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 24 76 65 72 tchedPackage.=.$package;.}..$ver
15f80 73 69 6f 6e 73 5b 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 sions[$package->getPrettyVersion
15fa0 28 29 5d 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 24 6d ()].=.$package->getVersion();.$m
15fc0 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 atches[$index].=.$package->getId
15fe0 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 26 26 ();.}....if.(!$matchedPackage.&&
16000 20 24 6d 61 74 63 68 65 73 20 26 26 20 24 70 72 65 66 65 72 65 64 20 3d 20 24 70 6f 6c 69 63 79 .$matches.&&.$prefered.=.$policy
16020 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 70 6f 6f 6c 2c 20 ->selectPreferedPackages($pool,.
16040 61 72 72 61 79 28 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 array(),.$matches)).{.$matchedPa
16060 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(
16080 24 70 72 65 66 65 72 65 64 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 $prefered[0]);.}..return.array($
160a0 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a matchedPackage,.$versions);.}...
160c0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4d 65 74 61 28 49 ..protected.function.printMeta(I
160e0 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 nputInterface.$input,.OutputInte
16100 72 66 61 63 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 rface.$output,.CompletePackageIn
16120 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e terface.$package,.array.$version
16140 73 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 s,.RepositoryInterface.$installe
16160 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 6f dRepo,.RepositoryInterface.$repo
16180 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 s).{.$this->getIO()->write('<inf
161a0 6f 3e 6e 61 6d 65 3c 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 o>name</info>.....:.'...$package
161c0 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f ->getPrettyName());.$this->getIO
161e0 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 64 65 73 63 72 69 70 2e 3c 2f 69 6e 66 6f 3e ()->write('<info>descrip.</info>
16200 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 .:.'...$package->getDescription(
16220 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f ));.$this->getIO()->write('<info
16240 3e 6b 65 79 77 6f 72 64 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 6a 6f 69 6e 28 27 2c 20 27 >keywords</info>.:.'...join(',.'
16260 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 20 3f 3a 20 61 72 72 ,.$package->getKeywords().?:.arr
16280 61 79 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 28 24 69 6e ay()));.$this->printVersions($in
162a0 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e put,.$output,.$package,.$version
162c0 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 s,.$installedRepo,.$repos);.$thi
162e0 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 74 79 70 65 3c 2f 69 s->getIO()->write('<info>type</i
16300 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 70 65 nfo>.....:.'...$package->getType
16320 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 ());.$this->getIO()->write('<inf
16340 6f 3e 6c 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 o>license</info>..:.'...implode(
16360 27 2c 20 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 ',.',.$package->getLicense()));.
16380 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 73 6f 75 $this->getIO()->write('<info>sou
163a0 72 63 65 3c 2f 69 6e 66 6f 3e 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d rce</info>...:.'...sprintf('[%s]
163c0 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 20 24 70 61 63 .<comment>%s</comment>.%s',.$pac
163e0 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d kage->getSourceType(),.$package-
16400 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f >getSourceUrl(),.$package->getSo
16420 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 urceReference()));.$this->getIO(
16440 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 64 69 73 74 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 )->write('<info>dist</info>.....
16460 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 74 3e 25 73 3c :.'...sprintf('[%s].<comment>%s<
16480 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 74 44 69 73 74 /comment>.%s',.$package->getDist
164a0 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 Type(),.$package->getDistUrl(),.
164c0 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 29 29 3b 0a $package->getDistReference()));.
164e0 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 6e 61 6d $this->getIO()->write('<info>nam
16500 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c es</info>....:.'...implode(',.',
16520 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 3b 0a 0a 69 66 20 28 24 70 .$package->getNames()));..if.($p
16540 61 63 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 29 20 7b 0a 24 72 65 70 6c 61 63 ackage->isAbandoned()).{.$replac
16560 65 6d 65 6e 74 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e ement.=.($package->getReplacemen
16580 74 50 61 63 6b 61 67 65 28 29 20 21 3d 3d 20 6e 75 6c 6c 29 0a 3f 20 27 20 54 68 65 20 61 75 74 tPackage().!==.null).?.'.The.aut
165a0 68 6f 72 20 73 75 67 67 65 73 74 73 20 75 73 69 6e 67 20 74 68 65 20 27 20 2e 20 24 70 61 63 6b hor.suggests.using.the.'...$pack
165c0 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 2e 20 27 20 age->getReplacementPackage()..'.
165e0 70 61 63 6b 61 67 65 20 69 6e 73 74 65 61 64 2e 27 0a 3a 20 6e 75 6c 6c 3b 0a 0a 24 74 68 69 73 package.instead.'.:.null;..$this
16600 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 73 70 72 69 6e 74 66 28 27 ->getIO()->writeError(.sprintf('
16620 3c 65 72 72 6f 72 3e 41 74 74 65 6e 74 69 6f 6e 3a 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 69 <error>Attention:.This.package.i
16640 73 20 61 62 61 6e 64 6f 6e 65 64 20 61 6e 64 20 6e 6f 20 6c 6f 6e 67 65 72 20 6d 61 69 6e 74 61 s.abandoned.and.no.longer.mainta
16660 69 6e 65 64 2e 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 29 0a ined.%s</error>',.$replacement).
16680 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 );.}..if.($package->getSupport()
166a0 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e ).{.$this->getIO()->write("\n<in
166c0 66 6f 3e 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 fo>support</info>");.foreach.($p
166e0 61 63 6b 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 ackage->getSupport().as.$type.=>
16700 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 .$value).{.$this->getIO()->write
16720 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 6d 6d 65 6e ('<comment>'...$type...'</commen
16740 74 3e 20 3a 20 27 2e 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 t>.:.'.$value);.}.}..if.($packag
16760 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f e->getAutoload()).{.$this->getIO
16780 28 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e 66 6f 3e 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 ()->write("\n<info>autoload</inf
167a0 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f o>");.foreach.($package->getAuto
167c0 6c 6f 61 64 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 61 75 74 6f 6c 6f 61 64 73 29 20 7b load().as.$type.=>.$autoloads).{
167e0 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 .$this->getIO()->write('<comment
16800 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 69 66 20 >'...$type...'</comment>');..if.
16820 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 ($type.===.'psr-0').{.foreach.($
16840 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 autoloads.as.$name.=>.$path).{.$
16860 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 28 24 6e 61 6d 65 20 3f 3a 20 27 this->getIO()->write(($name.?:.'
16880 2a 27 29 20 2e 20 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 *')...'.=>.'...(is_array($path).
168a0 3f 20 69 6d 70 6c 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 ?.implode(',.',.$path).:.($path.
168c0 3f 3a 20 27 2e 27 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 ?:.'.')));.}.}.elseif.($type.===
168e0 20 27 70 73 72 2d 34 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 .'psr-4').{.foreach.($autoloads.
16900 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 as.$name.=>.$path).{.$this->getI
16920 4f 28 29 2d 3e 77 72 69 74 65 28 28 24 6e 61 6d 65 20 3f 3a 20 27 2a 27 29 20 2e 20 27 20 3d 3e O()->write(($name.?:.'*')...'.=>
16940 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 6f 64 65 28 .'...(is_array($path).?.implode(
16960 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 29 29 29 3b ',.',.$path).:.($path.?:.'.')));
16980 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 .}.}.elseif.($type.===.'classmap
169a0 27 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f ').{.$this->getIO()->write(implo
169c0 64 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 de(',.',.$autoloads));.}.}.if.($
169e0 70 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 74 package->getIncludePaths()).{.$t
16a00 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 69 6e his->getIO()->write('<comment>in
16a20 63 6c 75 64 65 2d 70 61 74 68 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 clude-path</comment>');.$this->g
16a40 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 etIO()->write(implode(',.',.$pac
16a60 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 29 3b 0a 7d 0a 7d 0a 7d kage->getIncludePaths()));.}.}.}
16a80 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 56 65 72 .....protected.function.printVer
16aa0 73 69 6f 6e 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 sions(InputInterface.$input,.Out
16ac0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 putInterface.$output,.CompletePa
16ae0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 ckageInterface.$package,.array.$
16b00 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 versions,.RepositoryInterface.$i
16b20 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 nstalledRepo,.RepositoryInterfac
16b40 65 20 24 72 65 70 6f 73 29 0a 7b 0a 75 61 73 6f 72 74 28 24 76 65 72 73 69 6f 6e 73 2c 20 27 76 e.$repos).{.uasort($versions,.'v
16b60 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 27 29 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 ersion_compare');.$versions.=.ar
16b80 72 61 79 5f 6b 65 79 73 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 76 65 72 73 69 6f 6e 73 ray_keys(array_reverse($versions
16ba0 29 29 3b 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 ));....if.($installedRepo->hasPa
16bc0 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 ckage($package)).{.$installedVer
16be0 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f sion.=.$package->getPrettyVersio
16c00 6e 28 29 3b 0a 24 6b 65 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 6e 73 74 61 6c n();.$key.=.array_search($instal
16c20 6c 65 64 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 ledVersion,.$versions);.if.(fals
16c40 65 20 21 3d 3d 20 24 6b 65 79 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 24 6b 65 79 5d 20 3d 20 e.!==.$key).{.$versions[$key].=.
16c60 27 3c 69 6e 66 6f 3e 2a 20 27 20 2e 20 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 2e '<info>*.'...$installedVersion..
16c80 20 27 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 69 6d 70 .'</info>';.}.}..$versions.=.imp
16ca0 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 lode(',.',.$versions);..$this->g
16cc0 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 etIO()->write('<info>versions</i
16ce0 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a nfo>.:.'...$versions);.}........
16d00 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 ...protected.function.printLinks
16d20 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
16d40 74 65 72 66 61 63 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 terface.$output,.CompletePackage
16d60 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 54 79 70 65 2c 20 24 Interface.$package,.$linkType,.$
16d80 74 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 74 6c 65 20 3d 20 24 74 69 74 6c 65 20 title.=.null).{.$title.=.$title.
16da0 3f 3a 20 24 6c 69 6e 6b 54 79 70 65 3b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b ?:.$linkType;.if.($links.=.$pack
16dc0 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 54 79 70 65 29 7d 28 age->{'get'.ucfirst($linkType)}(
16de0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 )).{.$this->getIO()->write("\n<i
16e00 6e 66 6f 3e 22 20 2e 20 24 74 69 74 6c 65 20 2e 20 22 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 66 6f nfo>"...$title..."</info>");..fo
16e20 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 74 68 69 73 2d reach.($links.as.$link).{.$this-
16e40 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 >getIO()->write($link->getTarget
16e60 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 3e 67 65 74 50 72 ()...'.<comment>'...$link->getPr
16e80 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 65 6e 74 3e 27 29 ettyConstraint()...'</comment>')
16ea0 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 0a 6e 61 6d 65 73 ;.}.}.}.}.<?php............names
16ec0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 pace.Composer\Command;..use.Comp
16ee0 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 50 6c 75 oser\Installer;.use.Composer\Plu
16f00 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
16f20 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\
16f40 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
16f60 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
16f80 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d nsole\Input\InputOption;.use.Sym
16fa0 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
16fc0 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 6e utArgument;.use.Symfony\Componen
16fe0 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
17000 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 20 65 78 74 65 6e ;......class.UpdateCommand.exten
17020 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ds.Command.{.protected.function.
17040 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 75 configure().{.$this.->setName('u
17060 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 pdate').->setDescription('Update
17080 73 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 74 68 65 20 6c 61 74 65 73 s.your.dependencies.to.the.lates
170a0 74 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e t.version.according.to.composer.
170c0 6a 73 6f 6e 2c 20 61 6e 64 20 75 70 64 61 74 65 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c json,.and.updates.the.composer.l
170e0 6f 63 6b 20 66 69 6c 65 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 ock.file.').->setDefinition(arra
17100 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 73 27 2c y(.new.InputArgument('packages',
17120 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 .InputArgument::IS_ARRAY.|.Input
17140 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 73 20 74 68 Argument::OPTIONAL,.'Packages.th
17160 61 74 20 73 68 6f 75 6c 64 20 62 65 20 75 70 64 61 74 65 64 2c 20 69 66 20 6e 6f 74 20 70 72 6f at.should.be.updated,.if.not.pro
17180 76 69 64 65 64 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 2e 27 29 2c 0a 6e 65 77 20 49 vided.all.packages.are.'),.new.I
171a0 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 75 6c 6c nputOption('prefer-source',.null
171c0 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 ,.InputOption::VALUE_NONE,.'Forc
171e0 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 73 6f 75 es.installation.from.package.sou
17200 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 20 56 43 rces.when.possible,.including.VC
17220 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 74 69 6f S.information.'),.new.InputOptio
17240 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 70 74 69 n('prefer-dist',.null,.InputOpti
17260 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 on::VALUE_NONE,.'Forces.installa
17280 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 6f 72 20 tion.from.package.dist.even.for.
172a0 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 69 6f 6e dev.versions.'),.new.InputOption
172c0 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 ('dry-run',.null,.InputOption::V
172e0 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f ALUE_NONE,.'Outputs.the.operatio
17300 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 ns.but.will.not.execute.anything
17320 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e .(implicitly.enables.--verbose).
17340 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c '),.new.InputOption('dev',.null,
17360 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c .InputOption::VALUE_NONE,.'Enabl
17380 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 64 65 76 20 70 es.installation.of.require-dev.p
173a0 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 74 2c 20 6f 6e 6c ackages.(enabled.by.default,.onl
173c0 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 49 6e 70 75 74 4f y.present.for.BC).'),.new.InputO
173e0 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 74 4f 70 74 69 6f ption('no-dev',.null,.InputOptio
17400 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 6e 73 74 61 6c 6c n::VALUE_NONE,.'Disables.install
17420 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 67 65 73 2e 27 29 ation.of.require-dev.packages.')
17440 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 6e 75 6c 6c 2c 20 ,.new.InputOption('lock',.null,.
17460 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 6e 6c 79 20 75 InputOption::VALUE_NONE,.'Only.u
17480 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 74 6f 20 73 75 70 pdates.the.lock.file.hash.to.sup
174a0 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 63 6b 20 66 69 6c press.warning.about.the.lock.fil
174c0 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 77 20 49 6e 70 75 e.being.out.of.date.'),.new.Inpu
174e0 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 2c 20 49 6e 70 75 tOption('no-plugins',.null,.Inpu
17500 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 61 tOption::VALUE_NONE,.'Disables.a
17520 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 74 69 6f 6e 28 27 ll.plugins.'),.new.InputOption('
17540 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 no-custom-installers',.null,.Inp
17560 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 54 45 utOption::VALUE_NONE,.'DEPRECATE
17580 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 6e 65 D:.Use.no-plugins.instead.'),.ne
175a0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 6e w.InputOption('no-autoloader',.n
175c0 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 53 ull,.InputOption::VALUE_NONE,.'S
175e0 6b 69 70 73 20 61 75 74 6f 6c 6f 61 64 65 72 20 67 65 6e 65 72 61 74 69 6f 6e 27 29 2c 0a 6e 65 kips.autoloader.generation'),.ne
17600 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 6c 6c w.InputOption('no-scripts',.null
17620 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 6b 69 70 ,.InputOption::VALUE_NONE,.'Skip
17640 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 s.the.execution.of.all.scripts.d
17660 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c efined.in.composer.json.file.'),
17680 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 65 73 73 27 2c 20 .new.InputOption('no-progress',.
176a0 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,.'
176c0 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 67 72 65 73 73 2e Do.not.output.download.progress.
176e0 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 64 65 70 65 6e 64 '),.new.InputOption('with-depend
17700 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 3a 3a 56 41 4c 55 encies',.null,.InputOption::VALU
17720 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 6e 64 65 6e 63 69 E_NONE,.'Add.also.all.dependenci
17740 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 20 74 6f 20 74 68 es.of.whitelisted.packages.to.th
17760 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 70 74 69 6f 6e 28 e.whitelist.'),.new.InputOption(
17780 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 74 69 'verbose',.'v|vv|vvv',.InputOpti
177a0 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 65 20 64 65 74 61 on::VALUE_NONE,.'Shows.more.deta
177c0 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 70 75 6c 6c 65 64 ils.including.new.commits.pulled
177e0 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 2e 27 29 2c 0a 6e .in.when.updating.packages.'),.n
17800 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 75 74 6f 6c 6f 61 ew.InputOption('optimize-autoloa
17820 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 4c 55 45 5f 4e 4f der',.'o',.InputOption::VALUE_NO
17840 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 75 72 69 6e 67 20 NE,.'Optimize.autoloader.during.
17860 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 autoloader.dump.'),.new.InputOpt
17880 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 2c 20 6e 75 6c 6c ion('ignore-platform-reqs',.null
178a0 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 49 67 6e 6f ,.InputOption::VALUE_NONE,.'Igno
178c0 72 65 20 70 6c 61 74 66 6f 72 6d 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 28 70 68 70 20 26 20 re.platform.requirements.(php.&.
178e0 65 78 74 2d 20 70 61 63 6b 61 67 65 73 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 ext-.packages).'),.new.InputOpti
17900 6f 6e 28 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f on('prefer-stable',.null,.InputO
17920 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 50 72 65 66 65 72 20 73 74 61 62 6c ption::VALUE_NONE,.'Prefer.stabl
17940 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e e.versions.of.dependencies.'),.n
17960 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 6c 6f 77 65 73 74 27 2c 20 ew.InputOption('prefer-lowest',.
17980 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,.'
179a0 50 72 65 66 65 72 20 6c 6f 77 65 73 74 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 64 65 70 65 6e 64 Prefer.lowest.versions.of.depend
179c0 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 4f 54 0a 54 encies.'),.)).->setHelp(<<<EOT.T
179e0 68 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 he.<info>update</info>.command.r
17a00 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d eads.the.composer.json.file.from
17a20 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 .the.current.directory,.processe
17a40 73 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 73 2c 20 72 65 6d 6f 76 65 73 20 6f 72 20 69 6e s.it,.and.updates,.removes.or.in
17a60 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 3c 69 stalls.all.the.dependencies...<i
17a80 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 3c 2f 69 6e nfo>php.composer.phar.update</in
17aa0 66 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 65 20 75 70 64 61 74 65 20 6f 70 65 72 61 74 69 fo>..To.limit.the.update.operati
17ac0 6f 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b 61 67 65 73 2c 20 79 6f 75 20 63 61 6e 20 6c 69 on.to.a.few.packages,.you.can.li
17ae0 73 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 29 0a 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 70 st.the.package(s).you.want.to.up
17b00 64 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 date.as.such:..<info>php.compose
17b20 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 6f 72 2f 70 61 63 6b 61 67 65 31 20 66 6f r.phar.update.vendor/package1.fo
17b40 6f 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e 5d 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 6d 61 o/mypackage.[...]</info>..You.ma
17b60 79 20 61 6c 73 6f 20 75 73 65 20 61 6e 20 61 73 74 65 72 69 73 6b 20 28 2a 29 20 70 61 74 74 65 y.also.use.an.asterisk.(*).patte
17b80 72 6e 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 75 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e rn.to.limit.the.update.operation
17ba0 20 74 6f 20 70 61 63 6b 61 67 65 28 73 29 0a 66 72 6f 6d 20 61 20 73 70 65 63 69 66 69 63 20 76 .to.package(s).from.a.specific.v
17bc0 65 6e 64 6f 72 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 endor:..<info>php.composer.phar.
17be0 75 70 64 61 74 65 20 76 65 6e 64 6f 72 2f 70 61 63 6b 61 67 65 31 20 66 6f 6f 2f 2a 20 5b 2e 2e update.vendor/package1.foo/*.[..
17c00 2e 5d 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 .]</info>.EOT.).;.}..protected.f
17c20 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.$
17c40 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).
17c60 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 6e 6f 2d 63 75 73 74 {.if.($input->getOption('no-cust
17c80 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 om-installers')).{.$this->getIO(
17ca0 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 )->writeError('<warning>You.are.
17cc0 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d using.the.deprecated.option."no-
17ce0 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 22 2e 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 custom-installers"..Use."no-plug
17d00 69 6e 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 ins".instead.</warning>');.$inpu
17d20 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 t->setOption('no-plugins',.true)
17d40 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 6e 28 27 64 65 76 27 ;.}..if.($input->getOption('dev'
17d60 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 )).{.$this->getIO()->writeError(
17d80 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 72 '<warning>You.are.using.the.depr
17da0 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 64 65 76 22 2e 20 44 65 76 20 70 61 63 6b 61 67 65 ecated.option."dev"..Dev.package
17dc0 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 6e 6f 77 2e 3c s.are.installed.by.default.now.<
17de0 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 /warning>');.}..$composer.=.$thi
17e00 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 2d 3e 67 65 74 s->getComposer(true,.$input->get
17e20 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 70 6f 73 65 72 Option('no-plugins'));.$composer
17e40 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 4f 75 74 70 75 ->getDownloadManager()->setOutpu
17e60 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 6e 28 27 6e 6f tProgress(!$input->getOption('no
17e80 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 67 65 74 49 4f -progress'));.$io.=.$this->getIO
17ea0 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 6d 6d 61 6e 64 ();..$commandEvent.=.new.Command
17ec0 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 75 70 Event(PluginEvents::COMMAND,.'up
17ee0 64 61 74 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 date',.$input,.$output);.$compos
17f00 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
17f20 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
17f40 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 6e 73 74 61 6c 6c mmandEvent);..$install.=.Install
17f60 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 70 72 er::create($io,.$composer);..$pr
17f80 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 72 44 69 73 74 20 eferSource.=.false;.$preferDist.
17fa0 3d 20 66 61 6c 73 65 3b 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 =.false;..$config.=.$composer->g
17fc0 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e 67 65 etConfig();..switch.($config->ge
17fe0 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 20 27 t('preferred-install')).{.case.'
18000 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 source':.$preferSource.=.true;.b
18020 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d reak;.case.'dist':.$preferDist.=
18040 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 .true;.break;.case.'auto':.defau
18060 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 lt:...break;.}.if.($input->getOp
18080 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d tion('prefer-source').||.$input-
180a0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 >getOption('prefer-dist')).{.$pr
180c0 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 eferSource.=.$input->getOption('
180e0 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 prefer-source');.$preferDist.=.$
18100 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 29 3b input->getOption('prefer-dist');
18120 0a 7d 0a 0a 24 6f 70 74 69 6d 69 7a 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f .}..$optimize.=.$input->getOptio
18140 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c 20 24 63 6f 6e n('optimize-autoloader').||.$con
18160 66 69 67 2d 3e 67 65 74 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 fig->get('optimize-autoloader').
18180 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 ||.$config->get('classmap-author
181a0 69 74 61 74 69 76 65 27 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e itative');..$install.->setDryRun
181c0 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d ($input->getOption('dry-run')).-
181e0 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 >setVerbose($input->getOption('v
18200 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 erbose')).->setPreferSource($pre
18220 66 65 72 53 6f 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 ferSource).->setPreferDist($pref
18240 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 21 24 69 6e 70 75 74 2d 3e 67 65 erDist).->setDevMode(!$input->ge
18260 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 0a 2d 3e 73 65 74 44 75 6d 70 41 75 74 6f tOption('no-dev')).->setDumpAuto
18280 6c 6f 61 64 65 72 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 61 75 loader(!$input->getOption('no-au
182a0 74 6f 6c 6f 61 64 65 72 27 29 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 21 24 69 6e toloader')).->setRunScripts(!$in
182c0 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 2d 3e put->getOption('no-scripts')).->
182e0 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 29 setOptimizeAutoloader($optimize)
18300 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 .->setUpdate(true).->setUpdateWh
18320 69 74 65 6c 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 6f 63 6b 27 itelist($input->getOption('lock'
18340 29 20 3f 20 61 72 72 61 79 28 27 6c 6f 63 6b 27 29 20 3a 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 ).?.array('lock').:.$input->getA
18360 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 0a 2d 3e 73 65 74 57 68 69 74 65 6c rgument('packages')).->setWhitel
18380 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f istDependencies($input->getOptio
183a0 6e 28 27 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 29 0a 2d 3e 73 65 74 49 67 6e n('with-dependencies')).->setIgn
183c0 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2d 3e orePlatformRequirements($input->
183e0 67 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 getOption('ignore-platform-reqs'
18400 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 )).->setPreferStable($input->get
18420 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 29 29 0a 2d 3e 73 65 74 50 72 Option('prefer-stable')).->setPr
18440 65 66 65 72 4c 6f 77 65 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 eferLowest($input->getOption('pr
18460 65 66 65 72 2d 6c 6f 77 65 73 74 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 efer-lowest')).;..if.($input->ge
18480 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 6c tOption('no-plugins')).{.$instal
184a0 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 24 l->disablePlugins();.}..return.$
184c0 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 0a install->run();.}.}.<?php.......
184e0 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 3b .....namespace.Composer\Command;
18500 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\
18520 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
18540 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
18560 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 rgument;.use.Symfony\Component\C
18580 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 onsole\Input\InputOption;.use.Sy
185a0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f mfony\Component\Console\Output\O
185c0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e utputInterface;.use.Composer\Con
185e0 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e fig;.use.Composer\Config\JsonCon
18600 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b figSource;.use.Composer\Factory;
18620 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a .use.Composer\Json\JsonFile;....
18640 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f ..class.ConfigCommand.extends.Co
18660 6d 6d 61 6e 64 0a 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 mmand.{....protected.$config;...
18680 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 46 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 6f ..protected.$configFile;.....pro
186a0 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 tected.$configSource;.....protec
186c0 74 65 64 20 24 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ted.$authConfigFile;.....protect
186e0 65 64 20 24 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ed.$authConfigSource;.....protec
18700 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 ted.function.configure().{.$this
18720 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 6f 6e 66 69 67 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 .->setName('config').->setDescri
18740 70 74 69 6f 6e 28 27 53 65 74 20 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 73 27 29 0a 2d 3e 73 65 ption('Set.config.options').->se
18760 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 tDefinition(array(.new.InputOpti
18780 6f 6e 28 27 67 6c 6f 62 61 6c 27 2c 20 27 67 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 on('global',.'g',.InputOption::V
187a0 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 70 70 6c 79 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 ALUE_NONE,.'Apply.command.to.the
187c0 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 20 66 69 6c 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 .global.config.file'),.new.Input
187e0 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 2c 20 27 65 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f Option('editor',.'e',.InputOptio
18800 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 65 6e 20 65 64 69 74 6f 72 27 29 2c 0a 6e n::VALUE_NONE,.'Open.editor'),.n
18820 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 27 2c 20 27 61 27 2c 20 49 6e 70 75 ew.InputOption('auth',.'a',.Inpu
18840 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 66 66 65 63 74 20 61 75 74 tOption::VALUE_NONE,.'Affect.aut
18860 68 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 28 6f 6e 6c 79 20 75 73 65 64 20 66 6f 72 20 2d 2d 65 h.config.file.(only.used.for.--e
18880 64 69 74 6f 72 29 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 ditor)'),.new.InputOption('unset
188a0 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
188c0 2c 20 27 55 6e 73 65 74 20 74 68 65 20 67 69 76 65 6e 20 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 ,.'Unset.the.given.setting-key')
188e0 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 ,.new.InputOption('list',.'l',.I
18900 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 63 6f nputOption::VALUE_NONE,.'List.co
18920 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 65 74 74 69 6e 67 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 nfiguration.settings'),.new.Inpu
18940 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e tOption('file',.'f',.InputOption
18960 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 49 66 20 79 6f 75 20 77 61 6e 74 20 74 ::VALUE_REQUIRED,.'If.you.want.t
18980 6f 20 63 68 6f 6f 73 65 20 61 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 o.choose.a.different.composer.js
189a0 6f 6e 20 6f 72 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 on.or.config.json',.'composer.js
189c0 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 62 73 6f 6c 75 74 65 27 on'),.new.InputOption('absolute'
189e0 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,
18a00 20 27 52 65 74 75 72 6e 73 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 20 77 68 65 6e 20 66 65 .'Returns.absolute.paths.when.fe
18a20 74 63 68 69 6e 67 20 2a 2d 64 69 72 20 63 6f 6e 66 69 67 20 76 61 6c 75 65 73 20 69 6e 73 74 65 tching.*-dir.config.values.inste
18a40 61 64 20 6f 66 20 72 65 6c 61 74 69 76 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d ad.of.relative'),.new.InputArgum
18a60 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 74 69 6e ent('setting-key',.null,.'Settin
18a80 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 65 74 74 g.key'),.new.InputArgument('sett
18aa0 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 5f 41 52 ing-value',.InputArgument::IS_AR
18ac0 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 65 74 48 RAY,.'Setting.value'),.)).->setH
18ae0 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 73 20 79 elp(<<<EOT.This.command.allows.y
18b00 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 72 20 73 ou.to.edit.some.basic.composer.s
18b20 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 6f 6d 70 ettings.in.either.the.local.comp
18b40 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 63 6f 6e oser.json.file.or.the.global.con
18b60 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 54 6f 20 73 65 74 20 61 20 63 6f 6e 66 69 67 20 fig.json.file...To.set.a.config.
18b80 73 65 74 74 69 6e 67 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 setting:......<comment>%command.
18ba0 66 75 6c 6c 5f 6e 61 6d 65 25 20 62 69 6e 2d 64 69 72 20 62 69 6e 2f 3c 2f 63 6f 6d 6d 65 6e 74 full_name%.bin-dir.bin/</comment
18bc0 3e 0a 0a 54 6f 20 72 65 61 64 20 61 20 63 6f 6e 66 69 67 20 73 65 74 74 69 6e 67 3a 0a 0a 20 20 >..To.read.a.config.setting:....
18be0 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 62 ..<comment>%command.full_name%.b
18c00 69 6e 2d 64 69 72 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 20 20 20 20 4f 75 74 70 75 74 73 3a 20 3c 69 in-dir</comment>.....Outputs:.<i
18c20 6e 66 6f 3e 62 69 6e 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 67 6c 6f 62 nfo>bin</info>..To.edit.the.glob
18c40 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 6d 6d 65 al.config.json.file:......<comme
18c60 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 61 6c 3c nt>%command.full_name%.--global<
18c80 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 79 3a 0a /comment>..To.add.a.repository:.
18ca0 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 .....<comment>%command.full_name
18cc0 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 2f 62 61 %.repositories.foo.vcs.http://ba
18ce0 72 2e 63 6f 6d 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 72 65 6d 6f 76 65 20 61 20 72 65 70 r.com</comment>..To.remove.a.rep
18d00 6f 73 69 74 6f 72 79 20 28 72 65 70 6f 20 69 73 20 61 20 73 68 6f 72 74 20 61 6c 69 61 73 20 66 ository.(repo.is.a.short.alias.f
18d20 6f 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 29 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e or.repositories):......<comment>
18d40 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 75 6e 73 65 74 20 72 65 70 6f %command.full_name%.--unset.repo
18d60 2e 66 6f 6f 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 64 69 73 61 62 6c 65 20 70 61 63 6b 61 .foo</comment>..To.disable.packa
18d80 67 69 73 74 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 gist:......<comment>%command.ful
18da0 6c 5f 6e 61 6d 65 25 20 72 65 70 6f 2e 70 61 63 6b 61 67 69 73 74 20 66 61 6c 73 65 3c 2f 63 6f l_name%.repo.packagist.false</co
18dc0 6d 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 74 65 72 20 72 65 70 6f 73 69 74 6f 72 69 mment>..You.can.alter.repositori
18de0 65 73 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c es.in.the.global.config.json.fil
18e00 65 20 62 79 20 70 61 73 73 69 6e 67 20 69 6e 20 74 68 65 0a 3c 69 6e 66 6f 3e 2d 2d 67 6c 6f 62 e.by.passing.in.the.<info>--glob
18e20 61 6c 3c 2f 69 6e 66 6f 3e 20 6f 70 74 69 6f 6e 2e 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 66 al</info>.option...To.edit.the.f
18e40 69 6c 65 20 69 6e 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 65 64 69 74 6f 72 3a 0a 0a 20 20 20 20 ile.in.an.external.editor:......
18e60 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 <comment>%command.full_name%.--e
18e80 64 69 74 6f 72 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 63 68 6f 6f 73 65 20 79 6f 75 72 20 ditor</comment>..To.choose.your.
18ea0 65 64 69 74 6f 72 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 65 20 22 45 44 49 54 4f 52 22 20 editor.you.can.set.the."EDITOR".
18ec0 65 6e 76 20 76 61 72 69 61 62 6c 65 2e 0a 0a 54 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 env.variable...To.get.a.list.of.
18ee0 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 configuration.values.in.the.file
18f00 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 :......<comment>%command.full_na
18f20 6d 65 25 20 2d 2d 6c 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c me%.--list</comment>..You.can.al
18f40 77 61 79 73 20 70 61 73 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 6f 70 74 69 6f 6e 2e 20 ways.pass.more.than.one.option..
18f60 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 65 64 As.an.example,.if.you.want.to.ed
18f80 69 74 20 74 68 65 0a 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a it.the.global.config.json.file..
18fa0 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 .....<comment>%command.full_name
18fc0 25 20 2d 2d 65 64 69 74 6f 72 20 2d 2d 67 6c 6f 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f %.--editor.--global</comment>.EO
18fe0 54 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 T.).;.}.....protected.function.i
19000 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 74 2c nitialize(InputInterface.$input,
19020 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 70 61 72 65 .OutputInterface.$output).{.pare
19040 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b nt::initialize($input,.$output);
19060 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 67 6c 6f 62 61 6c 27 ..if.($input->getOption('global'
19080 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 70 75 74 2d ).&&.'composer.json'.!==.$input-
190a0 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 6e 65 77 20 >getOption('file')).{.throw.new.
190c0 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 64 20 2d 2d \RuntimeException('--file.and.--
190e0 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 3b 0a 7d 0a global.can.not.be.combined');.}.
19100 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 65 61 74 65 .$this->config.=.Factory::create
19120 43 6f 6e 66 69 67 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 0a 0a 20 0a 20 24 63 6f Config($this->getIO());......$co
19140 6e 66 69 67 46 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c nfigFile.=.$input->getOption('gl
19160 6f 62 61 6c 27 29 0a 3f 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f obal').?.($this->config->get('ho
19180 6d 65 27 29 20 2e 20 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 0a 3a 20 24 69 6e 70 75 74 2d me')...'/config.json').:.$input-
191a0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 >getOption('file');..$this->conf
191c0 69 67 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6e 66 69 67 46 69 6c igFile.=.new.JsonFile($configFil
191e0 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e 65 77 20 4a 73 e);.$this->configSource.=.new.Js
19200 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 onConfigSource($this->configFile
19220 29 3b 0a 0a 24 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 );..$authConfigFile.=.$input->ge
19240 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 0a 3f 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 tOption('global').?.($this->conf
19260 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 29 0a ig->get('home')...'/auth.json').
19280 3a 20 64 69 72 6e 61 6d 65 28 72 65 61 6c 70 61 74 68 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 :.dirname(realpath($input->getOp
192a0 74 69 6f 6e 28 27 66 69 6c 65 27 29 29 29 20 2e 20 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 3b 0a 0a tion('file')))...'/auth.json';..
192c0 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e $this->authConfigFile.=.new.Json
192e0 46 69 6c 65 28 24 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 61 75 File($authConfigFile);.$this->au
19300 74 68 43 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 thConfigSource.=.new.JsonConfigS
19320 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2c 20 74 72 75 ource($this->authConfigFile,.tru
19340 65 29 3b 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 67 6c e);....if.($input->getOption('gl
19360 6f 62 61 6c 27 29 20 26 26 20 21 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 obal').&&.!$this->configFile->ex
19380 69 73 74 73 28 29 29 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c ists()).{.touch($this->configFil
193a0 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 e->getPath());.$this->configFile
193c0 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 6e 65 77 20 5c 41 ->write(array('config'.=>.new.\A
193e0 72 72 61 79 4f 62 6a 65 63 74 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 rrayObject));.@chmod($this->conf
19400 69 67 46 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 69 66 20 28 igFile->getPath(),.0600);.}.if.(
19420 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').&&.!
19440 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 $this->authConfigFile->exists())
19460 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e .{.touch($this->authConfigFile->
19480 67 65 74 50 61 74 68 28 29 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c getPath());.$this->authConfigFil
194a0 65 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 27 68 74 74 70 2d 62 61 73 69 63 27 20 3d 3e 20 6e e->write(array('http-basic'.=>.n
194c0 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 2c 20 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 20 ew.\ArrayObject,.'github-oauth'.
194e0 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 =>.new.\ArrayObject));.@chmod($t
19500 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 his->authConfigFile->getPath(),.
19520 30 36 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 0600);.}..if.(!$this->configFile
19540 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 52 75 6e 74 69 6d 65 ->exists()).{.throw.new.\Runtime
19560 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 69 6c 65 20 22 25 73 22 20 63 61 6e Exception(sprintf('File."%s".can
19580 6e 6f 74 20 62 65 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 not.be.found.in.the.current.dire
195a0 63 74 6f 72 79 27 2c 20 24 63 6f 6e 66 69 67 46 69 6c 65 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 ctory',.$configFile));.}.}.....p
195c0 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
195e0 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
19600 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 .$output).{...if.($input->getOpt
19620 69 6f 6e 28 27 65 64 69 74 6f 72 27 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 65 73 63 61 70 ion('editor')).{.$editor.=.escap
19640 65 73 68 65 6c 6c 63 6d 64 28 67 65 74 65 6e 76 28 27 45 44 49 54 4f 52 27 29 29 3b 0a 69 66 20 eshellcmd(getenv('EDITOR'));.if.
19660 28 21 24 65 64 69 74 6f 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 (!$editor).{.if.(defined('PHP_WI
19680 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 64 69 74 6f 72 NDOWS_VERSION_BUILD')).{.$editor
196a0 20 3d 20 27 6e 6f 74 65 70 61 64 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 .=.'notepad';.}.else.{.foreach.(
196c0 61 72 72 61 79 28 27 76 69 6d 27 2c 20 27 76 69 27 2c 20 27 6e 61 6e 6f 27 2c 20 27 70 69 63 6f array('vim',.'vi',.'nano',.'pico
196e0 27 2c 20 27 65 64 27 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 65 78 ',.'ed').as.$candidate).{.if.(ex
19700 65 63 28 27 77 68 69 63 68 20 27 2e 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a 24 65 64 69 74 ec('which.'.$candidate)).{.$edit
19720 6f 72 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a or.=.$candidate;.break;.}.}.}.}.
19740 0a 24 66 69 6c 65 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 .$file.=.$input->getOption('auth
19760 27 29 20 3f 20 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 ').?.$this->authConfigFile->getP
19780 61 74 68 28 29 20 3a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 ath().:.$this->configFile->getPa
197a0 74 68 28 29 3b 0a 73 79 73 74 65 6d 28 24 65 64 69 74 6f 72 20 2e 20 27 20 27 20 2e 20 24 66 69 th();.system($editor...'.'...$fi
197c0 6c 65 20 2e 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 le...(defined('PHP_WINDOWS_VERSI
197e0 4f 4e 5f 42 55 49 4c 44 27 29 20 3f 20 27 27 20 3a 20 27 20 3e 20 60 74 74 79 60 27 29 29 3b 0a ON_BUILD').?.''.:.'.>.`tty`'));.
19800 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 .return.0;.}..if.(!$input->getOp
19820 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d tion('global')).{.$this->config-
19840 3e 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 >merge($this->configFile->read()
19860 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 );.$this->config->merge(array('c
19880 6f 6e 66 69 67 27 20 3d 3e 20 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d onfig'.=>.$this->authConfigFile-
198a0 3e 65 78 69 73 74 73 28 29 20 3f 20 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c >exists().?.$this->authConfigFil
198c0 65 2d 3e 72 65 61 64 28 29 20 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 e->read().:.array()));.}....if.(
198e0 24 69 6e 70 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 $input->getOption('list')).{.$th
19900 69 73 2d 3e 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 is->listConfiguration($this->con
19920 66 69 67 2d 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 fig->all(),.$this->config->raw()
19940 2c 20 24 6f 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 ,.$output);..return.0;.}..$setti
19960 6e 67 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 ngKey.=.$input->getArgument('set
19980 74 69 6e 67 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 ting-key');.if.(!$settingKey).{.
199a0 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 28 29 20 21 3d 3d 20 24 return.0;.}....if.(array().!==.$
199c0 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 75 input->getArgument('setting-valu
199e0 65 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 e').&&.$input->getOption('unset'
19a00 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
19a20 28 27 59 6f 75 20 63 61 6e 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 20 61 20 73 65 74 74 69 6e 67 20 ('You.can.not.combine.a.setting.
19a40 76 61 6c 75 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 value.with.--unset');.}....if.(a
19a60 72 72 61 79 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 rray().===.$input->getArgument('
19a80 73 65 74 74 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 setting-value').&&.!$input->getO
19aa0 70 74 69 6f 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 ption('unset')).{.$data.=.$this-
19ac0 3e 63 6f 6e 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 >config->all();.if.(preg_match('
19ae0 2f 5e 72 65 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 /^repos?(?:itories)?(?:\.(.+))?/
19b00 27 2c 20 24 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 ',.$settingKey,.$matches)).{.if.
19b20 28 65 6d 70 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 (empty($matches[1])).{.$value.=.
19b40 69 73 73 65 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 isset($data['repositories']).?.$
19b60 64 61 74 61 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 data['repositories'].:.array();.
19b80 7d 20 65 6c 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 }.else.{.if.(!isset($data['repos
19ba0 69 74 6f 72 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 itories'][$matches[1]])).{.throw
19bc0 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 .new.\InvalidArgumentException('
19be0 54 68 65 72 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 There.is.no.'.$matches[1].'.repo
19c00 73 69 74 6f 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 sitory.defined');.}..$value.=.$d
19c20 61 74 61 5b 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 ata['repositories'][$matches[1]]
19c40 3b 0a 7d 0a 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 ;.}.}.elseif.(strpos($settingKey
19c60 2c 20 27 2e 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 ,.'.')).{.$bits.=.explode('.',.$
19c80 73 65 74 74 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 settingKey);.$data.=.$data['conf
19ca0 69 67 27 5d 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 ig'];.foreach.($bits.as.$bit).{.
19cc0 69 66 20 28 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 if.(isset($data[$bit])).{.$data.
19ce0 3d 20 24 64 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 =.$data[$bit];.}.elseif.(isset($
19d00 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 29 29 20 7b 0a 0a 20 data[implode('.',.$bits)])).{...
19d20 24 64 61 74 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 $data.=.$data[implode('.',.$bits
19d40 29 5d 3b 0a 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 )];.break;.}.else.{.throw.new.\R
19d60 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 69 73 untimeException($settingKey.'.is
19d80 20 6e 6f 74 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 .not.defined');.}.array_shift($b
19da0 69 74 73 29 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 its);.}..$value.=.$data;.}.elsei
19dc0 66 20 28 69 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 f.(isset($data['config'][$settin
19de0 67 4b 65 79 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 gKey])).{.$value.=.$this->config
19e00 2d 3e 67 65 74 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 ->get($settingKey,.$input->getOp
19e20 74 69 6f 6e 28 27 61 62 73 6f 6c 75 74 65 27 29 20 3f 20 30 20 3a 20 43 6f 6e 66 69 67 3a 3a 52 tion('absolute').?.0.:.Config::R
19e40 45 4c 41 54 49 56 45 5f 50 41 54 48 53 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e ELATIVE_PATHS);.}.else.{.throw.n
19e60 65 77 20 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 ew.\RuntimeException($settingKey
19e80 2e 27 20 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 .'.is.not.defined');.}..if.(is_a
19ea0 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 6a 73 6f 6e 5f 65 6e rray($value)).{.$value.=.json_en
19ec0 63 6f 64 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d code($value);.}..$this->getIO()-
19ee0 3e 77 72 69 74 65 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 76 >write($value);..return.0;.}..$v
19f00 61 6c 75 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 alues.=.$input->getArgument('set
19f20 74 69 6e 67 2d 76 61 6c 75 65 27 29 3b 20 0a 0a 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f ting-value');...$booleanValidato
19f40 72 20 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 69 6e 5f r.=.function.($val).{.return.in_
19f60 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 array($val,.array('true',.'false
19f80 27 2c 20 27 31 27 2c 20 27 30 27 29 2c 20 74 72 75 65 29 3b 20 7d 3b 0a 24 62 6f 6f 6c 65 61 6e ',.'1',.'0'),.true);.};.$boolean
19fa0 4e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 Normalizer.=.function.($val).{.r
19fc0 65 74 75 72 6e 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 eturn.$val.!==.'false'.&&.(bool)
19fe0 20 24 76 61 6c 3b 20 7d 3b 0a 0a 0a 20 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 .$val;.};....$uniqueConfigValues
1a000 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 61 .=.array(.'process-timeout'.=>.a
1a020 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 75 rray('is_numeric',.'intval'),.'u
1a040 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 se-include-path'.=>.array($boole
1a060 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 anValidator,.$booleanNormalizer)
1a080 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 0a ,.'preferred-install'.=>.array(.
1a0a0 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
1a0c0 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 61 75 74 6f 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 y($val,.array('auto',.'source',.
1a0e0 27 64 69 73 74 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 'dist'),.true);.},.function.($va
1a100 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 27 73 74 6f 72 65 2d 61 75 l).{.return.$val;.}.),.'store-au
1a120 74 68 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 29 20 7b ths'.=>.array(.function.($val).{
1a140 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 61 79 28 27 74 72 .return.in_array($val,.array('tr
1a160 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 70 72 6f 6d 70 74 27 29 2c 20 74 72 75 65 29 3b 20 ue',.'false',.'prompt'),.true);.
1a180 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a 69 66 20 28 27 70 72 6f 6d 70 74 },.function.($val).{.if.('prompt
1a1a0 27 20 3d 3d 3d 20 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 27 70 72 6f 6d 70 74 27 3b 0a 7d '.===.$val).{.return.'prompt';.}
1a1c0 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f ..return.$val.!==.'false'.&&.(bo
1a1e0 6f 6c 29 20 24 76 61 6c 3b 0a 7d 0a 29 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c ol).$val;.}.),.'notify-on-instal
1a200 6c 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 l'.=>.array($booleanValidator,.$
1a220 62 6f 6f 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 booleanNormalizer),.'vendor-dir'
1a240 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.
1a260 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 62 69 6e 2d 64 ($val).{.return.$val;.}),.'bin-d
1a280 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
1a2a0 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
1a2c0 63 68 65 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 che-dir'.=>.array('is_string',.f
1a2e0 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 29 unction.($val).{.return.$val;.})
1a300 2c 0a 27 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 ,.'cache-files-dir'.=>.array('is
1a320 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 20 7b 20 72 65 74 75 _string',.function.($val).{.retu
1a340 72 6e 20 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 rn.$val;.}),.'cache-repo-dir'.=>
1a360 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
1a380 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 2d 76 63 al).{.return.$val;.}),.'cache-vc
1a3a0 73 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 s-dir'.=>.array('is_string',.fun
1a3c0 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 29 2c 0a ction.($val).{.return.$val;.}),.
1a3e0 27 63 61 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 'cache-ttl'.=>.array('is_numeric
1a400 27 2c 20 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 ',.'intval'),.'cache-files-ttl'.
1a420 3d 3e 20 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 =>.array('is_numeric',.'intval')
1a440 2c 0a 27 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 ,.'cache-files-maxsize'.=>.array
1a460 28 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 20 70 72 65 67 5f (.function.($val).{.return.preg_
1a480 6d 61 74 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 match('/^\s*([0-9.]+)\s*(?:([kmg
1a4a0 5d 29 28 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 ])(?:i?b)?)?\s*$/i',.$val).>.0;.
1a4c0 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 20 24 76 61 6c },.function.($val).{.return.$val
1a4e0 3b 20 7d 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 ;.}.),.'discard-changes'.=>.arra
1a500 79 28 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 20 69 6e 5f 61 y(.function.($val).{.return.in_a
1a520 72 72 61 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 rray($val,.array('stash',.'true'
1a540 2c 20 27 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 ,.'false',.'1',.'0'),.true);.},.
1a560 66 75 6e 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 function.($val).{.if.('stash'.==
1a580 3d 20 24 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 =.$val).{.return.'stash';.}..ret
1a5a0 75 72 6e 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 urn.$val.!==.'false'.&&.(bool).$
1a5c0 76 61 6c 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 val;.}.),.'autoloader-suffix'.=>
1a5e0 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
1a600 61 6c 29 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 al).{.return.$val.===.'null'.?.n
1a620 75 6c 6c 20 3a 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f ull.:.$val;.}),.'optimize-autolo
1a640 61 64 65 72 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 ader'.=>.array($booleanValidator
1a660 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 27 63 6c 61 73 73 6d 61 70 ,.$booleanNormalizer),.'classmap
1a680 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 -authoritative'.=>.array($boolea
1a6a0 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c nValidator,.$booleanNormalizer),
1a6c0 0a 27 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 24 .'prepend-autoloader'.=>.array($
1a6e0 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c booleanValidator,.$booleanNormal
1a700 69 7a 65 72 29 2c 0a 27 67 69 74 68 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 6e 61 6d 65 27 20 izer),.'github-expose-hostname'.
1a720 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
1a740 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 69 67 leanNormalizer),.);.$multiConfig
1a760 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 6f 6c Values.=.array(.'github-protocol
1a780 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 7b 0a s'.=>.array(.function.($vals).{.
1a7a0 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 20 27 if.(!is_array($vals)).{.return.'
1a7c0 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 76 61 array.expected';.}..foreach.($va
1a7e0 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 61 6c ls.as.$val).{.if.(!in_array($val
1a800 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 73 73 68 27 29 29 29 ,.array('git',.'https',.'ssh')))
1a820 20 7b 0a 72 65 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 .{.return.'valid.protocols.inclu
1a840 64 65 3a 20 67 69 74 2c 20 68 74 74 70 73 2c 20 73 73 68 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 de:.git,.https,.ssh';.}.}..retur
1a860 6e 20 74 72 75 65 3b 0a 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 72 65 n.true;.},.function.($vals).{.re
1a880 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 0a 29 2c 0a 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 turn.$vals;.}.),.'github-domains
1a8a0 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 7b 0a 69 '.=>.array(.function.($vals).{.i
1a8c0 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 20 27 61 f.(!is_array($vals)).{.return.'a
1a8e0 72 72 61 79 20 65 78 70 65 63 74 65 64 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a rray.expected';.}..return.true;.
1a900 7d 2c 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 },.function.($vals).{.return.$va
1a920 6c 73 3b 0a 7d 0a 29 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 71 75 65 43 6f 6e ls;.}.),.);..foreach.($uniqueCon
1a940 66 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 figValues.as.$name.=>.$callbacks
1a960 29 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b ).{.if.($settingKey.===.$name).{
1a980 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 .if.($input->getOption('unset'))
1a9a0 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 .{.return.$this->configSource->r
1a9c0 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b emoveConfigSetting($settingKey);
1a9e0 0a 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 .}..list($validator,.$normalizer
1aa00 29 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 ).=.$callbacks;.if.(1.!==.count(
1aa20 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 45 78 $values)).{.throw.new.\RuntimeEx
1aa40 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 6f 6e 6c 79 20 70 61 73 73 20 6f 6e 65 20 76 ception('You.can.only.pass.one.v
1aa60 61 6c 75 65 2e 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 alue..Example:.php.composer.phar
1aa80 20 63 6f 6e 66 69 67 20 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 20 33 30 30 27 29 3b 0a 7d .config.process-timeout.300');.}
1aaa0 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 ..if.(true.!==.$validation.=.$va
1aac0 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 5b 30 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 lidator($values[0])).{.throw.new
1aae0 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 22 25 73 .\RuntimeException(sprintf(.'"%s
1ab00 22 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 ".is.an.invalid.value'.($validat
1ab20 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 ion.?.'.('.$validation.')'.:.'')
1ab40 2c 0a 24 76 61 6c 75 65 73 5b 30 5d 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ,.$values[0].));.}..return.$this
1ab60 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 ->configSource->addConfigSetting
1ab80 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 ($settingKey,.$normalizer($value
1aba0 73 5b 30 5d 29 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 75 6c 74 69 43 6f 6e 66 s[0]));.}.}..foreach.($multiConf
1abc0 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 igValues.as.$name.=>.$callbacks)
1abe0 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a .{.if.($settingKey.===.$name).{.
1ac00 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 if.($input->getOption('unset')).
1ac20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 {.return.$this->configSource->re
1ac40 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a moveConfigSetting($settingKey);.
1ac60 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 }..list($validator,.$normalizer)
1ac80 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c .=.$callbacks;.if.(true.!==.$val
1aca0 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 29 29 20 7b idation.=.$validator($values)).{
1acc0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 .throw.new.\RuntimeException(spr
1ace0 69 6e 74 66 28 0a 27 25 73 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 intf(.'%s.is.an.invalid.value'.(
1ad00 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 $validation.?.'.('.$validation.'
1ad20 29 27 20 3a 20 27 27 29 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 73 29 0a 29 )'.:.''),.json_encode($values).)
1ad40 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 );.}..return.$this->configSource
1ad60 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 ->addConfigSetting($settingKey,.
1ad80 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 73 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 $normalizer($values));.}.}....if
1ada0 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 72 65 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 73 .(preg_match('/^repos?(?:itories
1adc0 29 3f 5c 2e 28 2e 2b 29 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 )?\.(.+)/',.$settingKey,.$matche
1ade0 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 s)).{.if.($input->getOption('uns
1ae00 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 et')).{.return.$this->configSour
1ae20 63 65 2d 3e 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d ce->removeRepository($matches[1]
1ae40 29 3b 0a 7d 0a 0a 69 66 20 28 32 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 );.}..if.(2.===.count($values)).
1ae60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 {.return.$this->configSource->ad
1ae80 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 61 72 72 61 79 28 0a dRepository($matches[1],.array(.
1aea0 27 74 79 70 65 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 30 5d 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 'type'.=>.$values[0],.'url'.=>.$
1aec0 76 61 6c 75 65 73 5b 31 5d 2c 0a 29 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e values[1],.));.}..if.(1.===.coun
1aee0 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 24 62 6f 6f 6c 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 t($values)).{.$bool.=.strtolower
1af00 28 24 76 61 6c 75 65 73 5b 30 5d 29 3b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 62 6f 6f 6c ($values[0]);.if.(true.===.$bool
1af20 65 61 6e 56 61 6c 69 64 61 74 6f 72 28 24 62 6f 6f 6c 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d eanValidator($bool).&&.false.===
1af40 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 28 24 62 6f 6f 6c 29 29 20 7b 0a 72 65 .$booleanNormalizer($bool)).{.re
1af60 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 52 65 70 turn.$this->configSource->addRep
1af80 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d ository($matches[1],.false);.}.}
1afa0 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 59 ..throw.new.\RuntimeException('Y
1afc0 6f 75 20 6d 75 73 74 20 70 61 73 73 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 61 20 75 72 6c 2e ou.must.pass.the.type.and.a.url.
1afe0 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 .Example:.php.composer.phar.conf
1b000 69 67 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 6f 6f 20 76 63 73 20 68 74 74 70 3a 2f 2f 62 ig.repositories.foo.vcs.http://b
1b020 61 72 2e 63 6f 6d 27 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 ar.com');.}....if.(preg_match('/
1b040 5e 28 67 69 74 68 75 62 2d 6f 61 75 74 68 7c 68 74 74 70 2d 62 61 73 69 63 29 5c 2e 28 2e 2b 29 ^(github-oauth|http-basic)\.(.+)
1b060 2f 27 2c 20 24 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 /',.$settingKey,.$matches)).{.if
1b080 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a .($input->getOption('unset')).{.
1b0a0 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 $this->authConfigSource->removeC
1b0c0 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 onfigSetting($matches[1].'.'.$ma
1b0e0 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e tches[2]);.$this->configSource->
1b100 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e removeConfigSetting($matches[1].
1b120 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 '.'.$matches[2]);..return;.}..if
1b140 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 .($matches[1].===.'github-oauth'
1b160 29 20 7b 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 7b 0a ).{.if.(1.!==.count($values)).{.
1b180 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 6f 6f throw.new.\RuntimeException('Too
1b1a0 20 6d 61 6e 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 .many.arguments,.expected.only.o
1b1c0 6e 65 20 74 6f 6b 65 6e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 ne.token');.}.$this->configSourc
1b1e0 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b e->removeConfigSetting($matches[
1b200 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 1].'.'.$matches[2]);.$this->auth
1b220 43 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 ConfigSource->addConfigSetting($
1b240 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 24 76 61 6c matches[1].'.'.$matches[2],.$val
1b260 75 65 73 5b 30 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d ues[0]);.}.elseif.($matches[1].=
1b280 3d 3d 20 27 68 74 74 70 2d 62 61 73 69 63 27 29 20 7b 0a 69 66 20 28 32 20 21 3d 3d 20 63 6f 75 ==.'http-basic').{.if.(2.!==.cou
1b2a0 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d nt($values)).{.throw.new.\Runtim
1b2c0 65 45 78 63 65 70 74 69 6f 6e 28 27 45 78 70 65 63 74 65 64 20 74 77 6f 20 61 72 67 75 6d 65 6e eException('Expected.two.argumen
1b2e0 74 73 20 28 75 73 65 72 6e 61 6d 65 2c 20 70 61 73 73 77 6f 72 64 29 2c 20 67 6f 74 20 27 2e 63 ts.(username,.password),.got.'.c
1b300 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 ount($values));.}.$this->configS
1b320 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 24 6d 61 74 63 ource->removeConfigSetting($matc
1b340 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 68 69 73 2d 3e hes[1].'.'.$matches[2]);.$this->
1b360 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 authConfigSource->addConfigSetti
1b380 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 ng($matches[1].'.'.$matches[2],.
1b3a0 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 30 5d 2c 20 array('username'.=>.$values[0],.
1b3c0 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 31 5d 29 29 3b 0a 7d 0a 0a 72 'password'.=>.$values[1]));.}..r
1b3e0 65 74 75 72 6e 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 eturn;.}..throw.new.\InvalidArgu
1b400 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 53 65 74 74 69 6e 67 20 27 2e 24 73 65 74 74 69 6e mentException('Setting.'.$settin
1b420 67 4b 65 79 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 72 20 69 73 20 6e 6f 74 20 gKey.'.does.not.exist.or.is.not.
1b440 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 29 3b 0a 7d 0a 0a supported.by.this.command');.}..
1b460 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 6c 69 73 74 43 ........protected.function.listC
1b480 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 74 65 6e 74 73 2c 20 61 72 onfiguration(array.$contents,.ar
1b4a0 72 61 79 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 ray.$rawContents,.OutputInterfac
1b4c0 65 20 24 6f 75 74 70 75 74 2c 20 24 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 72 69 67 4b 20 3d e.$output,.$k.=.null).{.$origK.=
1b4e0 20 24 6b 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 6e 74 73 20 61 73 20 24 6b 65 79 20 .$k;.foreach.($contents.as.$key.
1b500 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6b 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 =>.$value).{.if.($k.===.null.&&.
1b520 21 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 2c 20 !in_array($key,.array('config',.
1b540 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 'repositories'))).{.continue;.}.
1b560 0a 24 72 61 77 56 61 6c 20 3d 20 69 73 73 65 74 28 24 72 61 77 43 6f 6e 74 65 6e 74 73 5b 24 6b .$rawVal.=.isset($rawContents[$k
1b580 65 79 5d 29 20 3f 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 5b 24 6b 65 79 5d 20 3a 20 6e 75 6c 6c ey]).?.$rawContents[$key].:.null
1b5a0 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 28 21 69 73 5f ;..if.(is_array($value).&&.(!is_
1b5c0 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 76 61 6c 75 65 29 29 20 7c 7c 20 28 24 6b 65 79 20 3d 3d numeric(key($value)).||.($key.==
1b5e0 3d 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6b 29 =.'repositories'.&&.null.===.$k)
1b600 29 29 20 7b 0a 24 6b 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 63 6f 6e 66 69 )).{.$k..=.preg_replace('{^confi
1b620 67 5c 2e 7d 27 2c 20 27 27 2c 20 24 6b 65 79 20 2e 20 27 2e 27 29 3b 0a 24 74 68 69 73 2d 3e 6c g\.}',.'',.$key...'.');.$this->l
1b640 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 76 61 6c 75 65 2c 20 24 72 61 77 56 61 6c istConfiguration($value,.$rawVal
1b660 2c 20 24 6f 75 74 70 75 74 2c 20 24 6b 29 3b 0a 0a 69 66 20 28 73 75 62 73 74 72 5f 63 6f 75 6e ,.$output,.$k);..if.(substr_coun
1b680 74 28 24 6b 2c 20 27 2e 27 29 20 3e 20 31 29 20 7b 0a 24 6b 20 3d 20 73 74 72 5f 73 70 6c 69 74 t($k,.'.').>.1).{.$k.=.str_split
1b6a0 28 24 6b 2c 20 73 74 72 72 70 6f 73 28 24 6b 2c 20 27 2e 27 2c 20 2d 32 29 29 3b 0a 24 6b 20 3d ($k,.strrpos($k,.'.',.-2));.$k.=
1b6c0 20 24 6b 5b 30 5d 20 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6b 20 3d 20 24 6f 72 69 .$k[0]...'.';.}.else.{.$k.=.$ori
1b6e0 67 4b 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 gK;.}..continue;.}..if.(is_array
1b700 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 ($value)).{.$value.=.array_map(f
1b720 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 61 72 72 61 79 unction.($val).{.return.is_array
1b740 28 24 76 61 6c 29 20 3f 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 29 20 3a 20 24 76 61 ($val).?.json_encode($val).:.$va
1b760 6c 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 24 76 61 6c 75 65 20 3d 20 27 5b 27 2e 69 6d 70 l;.},.$value);..$value.=.'['.imp
1b780 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 61 6c 75 65 29 2e 27 5d 27 3b 0a 7d 0a 0a 69 66 20 28 69 lode(',.',.$value).']';.}..if.(i
1b7a0 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 76 61 72 5f 65 s_bool($value)).{.$value.=.var_e
1b7c0 78 70 6f 72 74 28 24 76 61 6c 75 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 73 xport($value,.true);.}..if.(is_s
1b7e0 74 72 69 6e 67 28 24 72 61 77 56 61 6c 29 20 26 26 20 24 72 61 77 56 61 6c 20 21 3d 20 24 76 61 tring($rawVal).&&.$rawVal.!=.$va
1b800 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 5b 3c lue).{.$this->getIO()->write('[<
1b820 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 3c 2f 63 6f 6d 6d 65 comment>'...$k...$key...'</comme
1b840 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 20 2e 20 nt>].<info>'...$rawVal...'.('...
1b860 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 7b 0a 24 $value...')</info>');.}.else.{.$
1b880 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 5b 3c 63 6f 6d 6d 65 6e 74 3e this->getIO()->write('[<comment>
1b8a0 27 20 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 '...$k...$key...'</comment>].<in
1b8c0 66 6f 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 fo>'...$value...'</info>');.}.}.
1b8e0 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
1b900 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 49 omposer\Command;..use.Composer\I
1b920 6e 73 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 nstaller;.use.Composer\Plugin\Co
1b940 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 69 6e 5c mmandEvent;.use.Composer\Plugin\
1b960 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 70 6f 6e PluginEvents;.use.Symfony\Compon
1b980 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
1b9a0 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\
1b9c0 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 Input\InputOption;.use.Symfony\C
1b9e0 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
1ba00 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
1ba20 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;.....
1ba40 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 ...class.InstallCommand.extends.
1ba60 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
1ba80 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 69 6e 73 74 figure().{.$this.->setName('inst
1baa0 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 49 6e 73 74 61 6c 6c 73 all').->setDescription('Installs
1bac0 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 20 66 72 6f 6d 20 74 .the.project.dependencies.from.t
1bae0 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 69 66 20 70 72 65 73 65 6e 74 he.composer.lock.file.if.present
1bb00 2c 20 6f 72 20 66 61 6c 6c 73 20 62 61 63 6b 20 6f 6e 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e ,.or.falls.back.on.the.composer.
1bb20 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e json.').->setDefinition(array(.n
1bb40 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 ew.InputOption('prefer-source',.
1bb60 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,.'
1bb80 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
1bba0 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e .sources.when.possible,.includin
1bbc0 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f g.VCS.information.'),.new.InputO
1bbe0 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 ption('prefer-dist',.null,.Input
1bc00 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 Option::VALUE_NONE,.'Forces.inst
1bc20 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 allation.from.package.dist.even.
1bc40 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 for.dev.versions.'),.new.InputOp
1bc60 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f tion('dry-run',.null,.InputOptio
1bc80 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 n::VALUE_NONE,.'Outputs.the.oper
1bca0 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 ations.but.will.not.execute.anyt
1bcc0 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f hing.(implicitly.enables.--verbo
1bce0 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e se).'),.new.InputOption('dev',.n
1bd00 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 ull,.InputOption::VALUE_NONE,.'E
1bd20 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 2d 64 nables.installation.of.require-d
1bd40 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 74 2c ev.packages.(enabled.by.default,
1bd60 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 49 6e .only.present.for.BC).'),.new.In
1bd80 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 74 4f putOption('no-dev',.null,.InputO
1bda0 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 6e 73 ption::VALUE_NONE,.'Disables.ins
1bdc0 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 67 65 tallation.of.require-dev.package
1bde0 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 70 6c 75 67 69 6e s.'),.new.InputOption('no-plugin
1be00 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 4e s',.null,.InputOption::VALUE_NON
1be20 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 6c 6c 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 77 E,.'Disables.all.plugins.'),.new
1be40 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 .InputOption('no-custom-installe
1be60 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f rs',.null,.InputOption::VALUE_NO
1be80 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 20 NE,.'DEPRECATED:.Use.no-plugins.
1bea0 69 6e 73 74 65 61 64 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 instead.'),.new.InputOption('no-
1bec0 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a autoloader',.null,.InputOption::
1bee0 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 61 75 74 6f 6c 6f 61 64 65 72 20 67 65 VALUE_NONE,.'Skips.autoloader.ge
1bf00 6e 65 72 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d neration'),.new.InputOption('no-
1bf20 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c scripts',.null,.InputOption::VAL
1bf40 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 UE_NONE,.'Skips.the.execution.of
1bf60 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 .all.scripts.defined.in.composer
1bf80 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 .json.file.'),.new.InputOption('
1bfa0 6e 6f 2d 70 72 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 no-progress',.null,.InputOption:
1bfc0 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e :VALUE_NONE,.'Do.not.output.down
1bfe0 6c 6f 61 64 20 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 load.progress.'),.new.InputOptio
1c000 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
1c020 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 65 20 64 65 tion::VALUE_NONE,.'Shows.more.de
1c040 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 70 75 6c 6c tails.including.new.commits.pull
1c060 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 2e 27 29 2c ed.in.when.updating.packages.'),
1c080 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 75 74 6f 6c .new.InputOption('optimize-autol
1c0a0 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 4c 55 45 5f oader',.'o',.InputOption::VALUE_
1c0c0 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 75 72 69 6e NONE,.'Optimize.autoloader.durin
1c0e0 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 g.autoloader.dump'),.new.InputOp
1c100 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 2c 20 6e 75 6c tion('ignore-platform-reqs',.nul
1c120 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 49 67 6e l,.InputOption::VALUE_NONE,.'Ign
1c140 6f 72 65 20 70 6c 61 74 66 6f 72 6d 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 28 70 68 70 20 26 ore.platform.requirements.(php.&
1c160 20 65 78 74 2d 20 70 61 63 6b 61 67 65 73 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 .ext-.packages).'),.new.InputArg
1c180 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a ument('packages',.InputArgument:
1c1a0 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f :IS_ARRAY.|.InputArgument::OPTIO
1c1c0 4e 41 4c 2c 20 27 53 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 76 69 64 65 64 2c 20 75 73 NAL,.'Should.not.be.provided,.us
1c1e0 65 20 63 6f 6d 70 6f 73 65 72 20 72 65 71 75 69 72 65 20 69 6e 73 74 65 61 64 20 74 6f 20 61 64 e.composer.require.instead.to.ad
1c200 64 20 61 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 d.a.given.package.to.composer.js
1c220 6f 6e 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c on.'),.)).->setHelp(<<<EOT.The.<
1c240 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 info>install</info>.command.read
1c260 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 66 72 6f 6d 0a 74 68 s.the.composer.lock.file.from.th
1c280 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 e.current.directory,.processes.i
1c2a0 74 2c 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 61 6c t,.and.downloads.and.installs.al
1c2c0 6c 20 74 68 65 0a 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 l.the.libraries.and.dependencies
1c2e0 20 6f 75 74 6c 69 6e 65 64 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 20 49 66 20 74 68 65 20 66 .outlined.in.that.file..If.the.f
1c300 69 6c 65 20 64 6f 65 73 20 6e 6f 74 0a 65 78 69 73 74 20 69 74 20 77 69 6c 6c 20 6c 6f 6f 6b 20 ile.does.not.exist.it.will.look.
1c320 66 6f 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 64 6f 20 74 68 65 20 73 61 6d for.composer.json.and.do.the.sam
1c340 65 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 e...<info>php.composer.phar.inst
1c360 61 6c 6c 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 all</info>..EOT.).;.}..protected
1c380 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.execute(InputInterface
1c3a0 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
1c3c0 29 0a 7b 0a 69 66 20 28 24 61 72 67 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d ).{.if.($args.=.$input->getArgum
1c3e0 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 ent('packages')).{.$this->getIO(
1c400 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 49 6e 76 61 6c 69 64 20 61 72 )->writeError('<error>Invalid.ar
1c420 67 75 6d 65 6e 74 20 27 2e 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 61 72 67 73 29 2e 27 2e 20 gument.'.implode('.',.$args).'..
1c440 55 73 65 20 22 63 6f 6d 70 6f 73 65 72 20 72 65 71 75 69 72 65 20 27 2e 69 6d 70 6c 6f 64 65 28 Use."composer.require.'.implode(
1c460 27 20 27 2c 20 24 61 72 67 73 29 2e 27 22 20 69 6e 73 74 65 61 64 20 74 6f 20 61 64 64 20 70 61 '.',.$args).'".instead.to.add.pa
1c480 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 3c 2f 65 ckages.to.your.composer.json.</e
1c4a0 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 28 24 69 6e 70 75 rror>');..return.1;.}..if.($inpu
1c4c0 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 74 61 6c 6c 65 t->getOption('no-custom-installe
1c4e0 72 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 rs')).{.$this->getIO()->writeErr
1c500 6f 72 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 or('<warning>You.are.using.the.d
1c520 65 70 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 eprecated.option."no-custom-inst
1c540 61 6c 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 allers"..Use."no-plugins".instea
1c560 64 2e 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 d.</warning>');.$input->setOptio
1c580 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 n('no-plugins',.true);.}..if.($i
1c5a0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 20 7b 0a 24 74 68 69 73 2d nput->getOption('dev')).{.$this-
1c5c0 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 59 >getIO()->writeError('<warning>Y
1c5e0 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 70 74 69 ou.are.using.the.deprecated.opti
1c600 6f 6e 20 22 64 65 76 22 2e 20 44 65 76 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 69 6e 73 74 61 on."dev"..Dev.packages.are.insta
1c620 6c 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 6e 6f 77 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 lled.by.default.now.</warning>')
1c640 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 74 43 6f 6d 70 6f ;.}..$composer.=.$this->getCompo
1c660 73 65 72 28 74 72 75 65 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d ser(true,.$input->getOption('no-
1c680 70 6c 75 67 69 6e 73 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f plugins'));.$composer->getDownlo
1c6a0 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 adManager()->setOutputProgress(!
1c6c0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 $input->getOption('no-progress')
1c6e0 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 );.$io.=.$this->getIO();..$comma
1c700 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
1c720 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 69 6e nEvents::COMMAND,.'install',.$in
1c740 70 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 put,.$output);.$composer->getEve
1c760 6e 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 ntDispatcher()->dispatch($comman
1c780 64 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 dEvent->getName(),.$commandEvent
1c7a0 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 );..$install.=.Installer::create
1c7c0 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 ($io,.$composer);..$preferSource
1c7e0 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 0a .=.false;.$preferDist.=.false;..
1c800 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 28 29 $config.=.$composer->getConfig()
1c820 3b 0a 0a 73 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 ;..switch.($config->get('preferr
1c840 65 64 2d 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 ed-install')).{.case.'source':.$
1c860 70 72 65 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 preferSource.=.true;.break;.case
1c880 20 27 64 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 .'dist':.$preferDist.=.true;.bre
1c8a0 61 6b 3b 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 ak;.case.'auto':.default:...brea
1c8c0 6b 3b 0a 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 k;.}.if.($input->getOption('pref
1c8e0 65 72 2d 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 er-source').||.$input->getOption
1c900 28 27 70 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 ('prefer-dist')).{.$preferSource
1c920 20 3d 20 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 .=.$input->getOption('prefer-sou
1c940 72 63 65 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 rce');.$preferDist.=.$input->get
1c960 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6d Option('prefer-dist');.}..$optim
1c980 69 7a 65 20 3d 20 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 ize.=.$input->getOption('optimiz
1c9a0 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 e-autoloader').||.$config->get('
1c9c0 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 optimize-autoloader').||.$config
1c9e0 2d 3e 67 65 74 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 3b ->get('classmap-authoritative');
1ca00 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 ..$install.->setDryRun($input->g
1ca20 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 etOption('dry-run')).->setVerbos
1ca40 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a e($input->getOption('verbose')).
1ca60 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 29 ->setPreferSource($preferSource)
1ca80 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 3e .->setPreferDist($preferDist).->
1caa0 73 65 74 44 65 76 4d 6f 64 65 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e setDevMode(!$input->getOption('n
1cac0 6f 2d 64 65 76 27 29 29 0a 2d 3e 73 65 74 44 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 28 21 24 69 o-dev')).->setDumpAutoloader(!$i
1cae0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 nput->getOption('no-autoloader')
1cb00 29 0a 2d 3e 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 ).->setRunScripts(!$input->getOp
1cb20 74 69 6f 6e 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 tion('no-scripts')).->setOptimiz
1cb40 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 29 0a 2d 3e 73 65 74 49 67 6e 6f eAutoloader($optimize).->setIgno
1cb60 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2d 3e 67 rePlatformRequirements($input->g
1cb80 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 29 etOption('ignore-platform-reqs')
1cba0 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 6e 28 27 6e 6f 2d 70 ).;..if.($input->getOption('no-p
1cbc0 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 61 62 6c 65 50 6c 75 lugins')).{.$install->disablePlu
1cbe0 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 6c 2d 3e 72 75 6e 28 gins();.}..return.$install->run(
1cc00 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 );.}.}.<?php............namespac
1cc20 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 e.Composer\Command;..use.Compose
1cc40 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 41 72 72 61 79 r\Package\Loader\ValidatingArray
1cc60 4c 6f 61 64 65 72 3b 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 Loader;.use.Composer\Util\Config
1cc80 56 61 6c 69 64 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 Validator;.use.Symfony\Component
1cca0 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
1ccc0 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
1cce0 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 6f t\InputInterface;.use.Symfony\Co
1cd00 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 6f mponent\Console\Input\InputOptio
1cd20 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
1cd40 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a \Output\OutputInterface;........
1cd60 63 6c 61 73 73 20 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f class.ValidateCommand.extends.Co
1cd80 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f mmand.{....protected.function.co
1cda0 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 76 61 6c nfigure().{.$this.->setName('val
1cdc0 69 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 56 61 6c 69 64 61 idate').->setDescription('Valida
1cde0 74 65 73 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e tes.a.composer.json').->setDefin
1ce00 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 6e 6f ition(array(.new.InputOption('no
1ce20 2d 63 68 65 63 6b 2d 61 6c 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a -check-all',.null,.InputOption::
1ce40 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6d 61 6b 65 20 61 20 63 6f 6d 70 6c VALUE_NONE,.'Do.not.make.a.compl
1ce60 65 74 65 20 76 61 6c 69 64 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f ete.validation'),.new.InputOptio
1ce80 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 70 75 62 6c 69 73 68 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 n('no-check-publish',.null,.Inpu
1cea0 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 63 68 65 tOption::VALUE_NONE,.'Do.not.che
1cec0 63 6b 20 66 6f 72 20 70 75 62 6c 69 73 68 20 65 72 72 6f 72 73 27 29 2c 0a 6e 65 77 20 49 6e 70 ck.for.publish.errors'),.new.Inp
1cee0 75 74 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 utArgument('file',.InputArgument
1cf00 3a 3a 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 ::OPTIONAL,.'path.to.composer.js
1cf20 6f 6e 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 on.file',.'./composer.json').)).
1cf40 2d 3e 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 ->setHelp(<<<EOT.The.validate.co
1cf60 6d 6d 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 mmand.validates.a.given.composer
1cf80 2e 6a 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 .json..EOT.);.}........protected
1cfa0 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.execute(InputInterface
1cfc0 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
1cfe0 29 0a 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 ).{.$file.=.$input->getArgument(
1d000 27 66 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 'file');..if.(!file_exists($file
1d020 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 )).{.$this->getIO()->writeError(
1d040 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 6e 6f 74 20 66 6f 75 6e 64 2e '<error>'...$file...'.not.found.
1d060 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 </error>');..return.1;.}.if.(!is
1d080 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f _readable($file)).{.$this->getIO
1d0a0 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 ()->writeError('<error>'...$file
1d0c0 20 2e 20 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b ...'.is.not.readable.</error>');
1d0e0 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 ..return.1;.}..$validator.=.new.
1d100 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b ConfigValidator($this->getIO());
1d120 0a 24 63 68 65 63 6b 41 6c 6c 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 .$checkAll.=.$input->getOption('
1d140 6e 6f 2d 63 68 65 63 6b 2d 61 6c 6c 27 29 20 3f 20 30 20 3a 20 56 61 6c 69 64 61 74 69 6e 67 41 no-check-all').?.0.:.ValidatingA
1d160 72 72 61 79 4c 6f 61 64 65 72 3a 3a 43 48 45 43 4b 5f 41 4c 4c 3b 0a 24 63 68 65 63 6b 50 75 62 rrayLoader::CHECK_ALL;.$checkPub
1d180 6c 69 73 68 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 lish.=.!$input->getOption('no-ch
1d1a0 65 63 6b 2d 70 75 62 6c 69 73 68 27 29 3b 0a 6c 69 73 74 28 24 65 72 72 6f 72 73 2c 20 24 70 75 eck-publish');.list($errors,.$pu
1d1c0 62 6c 69 73 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 blishErrors,.$warnings).=.$valid
1d1e0 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 2c 20 24 63 68 65 63 6b 41 6c 6c 29 ator->validate($file,.$checkAll)
1d200 3b 0a 0a 0a 20 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 72 ;....if.(!$errors.&&.!$publishEr
1d220 72 6f 72 73 20 26 26 20 21 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 rors.&&.!$warnings).{.$this->get
1d240 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 IO()->write('<info>'...$file...'
1d260 20 69 73 20 76 61 6c 69 64 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 .is.valid</info>');.}.elseif.(!$
1d280 65 72 72 6f 72 73 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 20 7b 0a 24 74 68 errors.&&.!$publishErrors).{.$th
1d2a0 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 27 is->getIO()->writeError('<info>'
1d2c0 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 68 20 ...$file...'.is.valid,.but.with.
1d2e0 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 74 68 69 73 2d 3e a.few.warnings</info>');.$this->
1d300 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 getIO()->writeError('<warning>Se
1d320 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d e.http://getcomposer.org/doc/04-
1d340 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 schema.md.for.details.on.the.sch
1d360 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 ema</warning>');.}.elseif.(!$err
1d380 6f 72 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f ors).{.$this->getIO()->writeErro
1d3a0 72 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 20 r('<info>'...$file...'.is.valid.
1d3c0 66 6f 72 20 73 69 6d 70 6c 65 20 75 73 61 67 65 20 77 69 74 68 20 63 6f 6d 70 6f 73 65 72 20 62 for.simple.usage.with.composer.b
1d3e0 75 74 20 68 61 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d ut.has</info>');.$this->getIO()-
1d400 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 73 74 72 69 63 74 20 65 72 72 6f 72 73 >writeError('<info>strict.errors
1d420 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 75 62 6c 69 .that.make.it.unable.to.be.publi
1d440 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 0a 24 74 68 shed.as.a.package:</info>');.$th
1d460 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e is->getIO()->writeError('<warnin
1d480 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 g>See.http://getcomposer.org/doc
1d4a0 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 65 /04-schema.md.for.details.on.the
1d4c0 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 .schema</warning>');.}.else.{.$t
1d4e0 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 his->getIO()->writeError('<error
1d500 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 74 68 65 20 66 >'...$file...'.is.invalid,.the.f
1d520 6f 6c 6c 6f 77 69 6e 67 20 65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77 65 72 65 20 66 6f ollowing.errors/warnings.were.fo
1d540 75 6e 64 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 und:</error>');.}..$messages.=.a
1d560 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 24 65 72 72 6f 72 73 2c 0a 27 77 61 72 6e 69 rray(.'error'.=>.$errors,.'warni
1d580 6e 67 27 20 3d 3e 20 24 77 61 72 6e 69 6e 67 73 2c 0a 29 3b 0a 0a 0a 20 69 66 20 28 24 63 68 65 ng'.=>.$warnings,.);....if.($che
1d5a0 63 6b 50 75 62 6c 69 73 68 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 27 65 72 72 6f 72 27 5d 20 ckPublish).{.$messages['error'].
1d5c0 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 65 73 73 61 67 65 73 5b 27 65 72 72 6f 72 27 5d =.array_merge($messages['error']
1d5e0 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 ,.$publishErrors);.}.else.{.$mes
1d600 73 61 67 65 73 5b 27 77 61 72 6e 69 6e 67 27 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 sages['warning'].=.array_merge($
1d620 6d 65 73 73 61 67 65 73 5b 27 77 61 72 6e 69 6e 67 27 5d 2c 20 24 70 75 62 6c 69 73 68 45 72 72 messages['warning'],.$publishErr
1d640 6f 72 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 ors);.}..foreach.($messages.as.$
1d660 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 73 67 73 style.=>.$msgs).{.foreach.($msgs
1d680 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 .as.$msg).{.$this->getIO()->writ
1d6a0 65 45 72 72 6f 72 28 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 eError('<'...$style...'>'...$msg
1d6c0 20 2e 20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 ...'</'...$style...'>');.}.}..re
1d6e0 74 75 72 6e 20 24 65 72 72 6f 72 73 20 7c 7c 20 28 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 turn.$errors.||.($publishErrors.
1d700 26 26 20 24 63 68 65 63 6b 50 75 62 6c 69 73 68 29 20 3f 20 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c &&.$checkPublish).?.1.:.0;.}.}.<
1d720 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
1d740 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 44 65 70 65 6e 64 er\Command;..use.Composer\Depend
1d760 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 6f 73 65 72 5c encyResolver\Pool;.use.Composer\
1d780 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
1d7a0 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
1d7c0 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
1d7e0 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
1d800 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
1d820 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
1d840 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 6f t\InputOption;.use.Symfony\Compo
1d860 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
1d880 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 20 65 ace;......class.DependsCommand.e
1d8a0 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 6e 6b xtends.Command.{.protected.$link
1d8c0 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 61 Types.=.array(.'require'.=>.arra
1d8e0 79 28 27 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 y('requires',.'requires'),.'requ
1d900 69 72 65 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 ire-dev'.=>.array('devRequires',
1d920 20 27 72 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 .'requires.(dev)'),.);..protecte
1d940 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d d.function.configure().{.$this.-
1d960 3e 73 65 74 4e 61 6d 65 28 27 64 65 70 65 6e 64 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 >setName('depends').->setDescrip
1d980 74 69 6f 6e 28 27 53 68 6f 77 73 20 77 68 69 63 68 20 70 61 63 6b 61 67 65 73 20 64 65 70 65 6e tion('Shows.which.packages.depen
1d9a0 64 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e 73 65 74 44 65 d.on.the.given.package').->setDe
1d9c0 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 65 6e finition(array(.new.InputArgumen
1d9e0 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 t('package',.InputArgument::REQU
1da00 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 IRED,.'Package.to.inspect'),.new
1da20 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 2c 20 27 27 2c 20 49 6e .InputOption('link-type',.'',.In
1da40 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 20 7c 20 49 6e 70 75 putOption::VALUE_REQUIRED.|.Inpu
1da60 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 2c 20 27 4c 69 6e 6b 20 74 tOption::VALUE_IS_ARRAY,.'Link.t
1da80 79 70 65 73 20 74 6f 20 73 68 6f 77 20 28 72 65 71 75 69 72 65 2c 20 72 65 71 75 69 72 65 2d 64 ypes.to.show.(require,.require-d
1daa0 65 76 29 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 ev)',.array_keys($this->linkType
1dac0 73 29 29 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 s)),.)).->setHelp(<<<EOT.Display
1dae0 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 77 68 65 s.detailed.information.about.whe
1db00 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 72 65 66 65 72 65 6e 63 65 64 2e 0a 0a 3c 69 6e re.a.package.is.referenced...<in
1db20 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 64 65 70 65 6e 64 73 20 63 6f 6d fo>php.composer.phar.depends.com
1db40 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d poser/composer</info>..EOT.).;.}
1db60 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
1db80 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
1dba0 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 ace.$output).{.$composer.=.$this
1dbc0 2d 3e 67 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 ->getComposer();..$commandEvent.
1dbe0 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 45 76 65 6e 74 73 3a =.new.CommandEvent(PluginEvents:
1dc00 3a 43 4f 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 :COMMAND,.'depends',.$input,.$ou
1dc20 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 74 tput);.$composer->getEventDispat
1dc40 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 3e cher()->dispatch($commandEvent->
1dc60 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 72 65 70 getName(),.$commandEvent);..$rep
1dc80 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 6e 61 o.=.$composer->getRepositoryMana
1dca0 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 6e 65 ger()->getLocalRepository();.$ne
1dcc0 65 64 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b edle.=.$input->getArgument('pack
1dce0 61 67 65 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 age');..$pool.=.new.Pool();.$poo
1dd00 6c 2d 3e 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 l->addRepository($repo);..$packa
1dd20 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 65 65 64 6c ges.=.$pool->whatProvides($needl
1dd40 65 29 3b 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 e);.if.(empty($packages)).{.thro
1dd60 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(
1dd80 27 43 6f 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 'Could.not.find.package."'.$need
1dda0 6c 65 2e 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 le.'".in.your.project.');.}..$li
1ddc0 6e 6b 54 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 nkTypes.=.$this->linkTypes;..$ty
1dde0 70 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 29 pes.=.array_map(function.($type)
1de00 20 75 73 65 20 28 24 6c 69 6e 6b 54 79 70 65 73 29 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 72 69 .use.($linkTypes).{.$type.=.rtri
1de20 6d 28 24 74 79 70 65 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6c 69 6e 6b 54 m($type,.'s');.if.(!isset($linkT
1de40 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c ypes[$type])).{.throw.new.\Inval
1de60 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 idArgumentException('Unexpected.
1de80 6c 69 6e 6b 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 2e 27 2c 20 76 61 6c 69 64 20 74 79 70 65 link.type:.'.$type.',.valid.type
1dea0 73 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6c s:.'.implode(',.',.array_keys($l
1dec0 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 79 70 65 3b 0a 7d 2c inkTypes)));.}..return.$type;.},
1dee0 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 29 29 .$input->getOption('link-type'))
1df00 3b 0a 0a 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 ;..$messages.=.array();.$outputP
1df20 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 72 65 70 ackages.=.array();.foreach.($rep
1df40 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a o->getPackages().as.$package).{.
1df60 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 66 6f 72 65 foreach.($types.as.$type).{.fore
1df80 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 6c 69 6e 6b 54 79 70 65 73 ach.($package->{'get'.$linkTypes
1dfa0 5b 24 74 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 [$type][0]}().as.$link).{.if.($l
1dfc0 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 65 65 64 6c 65 29 20 7b 0a ink->getTarget().===.$needle).{.
1dfe0 69 66 20 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 if.(!isset($outputPackages[$pack
1e000 61 67 65 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 age->getName()])).{.$messages[].
1e020 3d 20 27 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 =.'<info>'.$package->getPrettyNa
1e040 6d 65 28 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 me()...'</info>.'...$linkTypes[$
1e060 74 79 70 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 type][1]...'.'...$needle..'.(<in
1e080 66 6f 3e 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 fo>'...$link->getPrettyConstrain
1e0a0 74 28 29 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 t()...'</info>)';.$outputPackage
1e0c0 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d s[$package->getName()].=.true;.}
1e0e0 0a 7d 0a 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 .}.}.}.}..if.($messages).{.sort(
1e100 24 6d 65 73 73 61 67 65 73 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 $messages);.$this->getIO()->writ
1e120 65 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 e($messages);.}.else.{.$this->ge
1e140 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 54 68 65 72 65 20 69 tIO()->writeError('<info>There.i
1e160 73 20 6e 6f 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e 64 69 6e 67 s.no.installed.package.depending
1e180 20 6f 6e 20 22 27 2e 24 6e 65 65 64 6c 65 2e 27 22 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d .on."'.$needle.'".</info>');.}.}
1e1a0 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
1e1c0 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 6d mposer\Command;..use.Symfony\Com
1e1e0 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 66 ponent\Console\Input\InputInterf
1e200 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
1e220 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 66 le\Input\InputArgument;.use.Symf
1e240 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
1e260 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 5c 43 tOption;.use.Symfony\Component\C
1e280 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 75 onsole\Output\OutputInterface;.u
1e2a0 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
1e2c0 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
1e2e0 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 43 6f 6d 70 ory\PlatformRepository;.use.Comp
1e300 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
1e320 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 ace;.use.Composer\Factory;.use.C
1e340 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
1e360 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;..
1e380 0a 0a 0a 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 ...class.SearchCommand.extends.C
1e3a0 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 65 73 3b 0a 70 72 6f ommand.{.protected.$matches;.pro
1e3c0 74 65 63 74 65 64 20 24 6c 6f 77 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 tected.$lowMatches.=.array();.pr
1e3e0 6f 74 65 63 74 65 64 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 otected.$tokens;.protected.$outp
1e400 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 6e 6c 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 ut;.protected.$onlyName;..protec
1e420 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 ted.function.configure().{.$this
1e440 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 61 72 63 68 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 .->setName('search').->setDescri
1e460 70 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 ption('Search.for.packages').->s
1e480 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 etDefinition(array(.new.InputOpt
1e4a0 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 2c 20 27 4e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f ion('only-name',.'N',.InputOptio
1e4c0 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 65 61 72 63 68 20 6f 6e 6c 79 20 69 6e 20 6e n::VALUE_NONE,.'Search.only.in.n
1e4e0 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 ame'),.new.InputArgument('tokens
1e500 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 ',.InputArgument::IS_ARRAY.|.Inp
1e520 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 74 6f 6b 65 6e 73 20 74 6f utArgument::REQUIRED,.'tokens.to
1e540 20 73 65 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 .search.for'),.)).->setHelp(<<<E
1e560 4f 54 0a 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d 6d 61 6e 64 20 73 65 61 72 63 68 65 73 20 66 OT.The.search.command.searches.f
1e580 6f 72 20 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 73 20 6e 61 6d 65 0a 3c 69 6e 66 6f 3e 70 68 or.packages.by.its.name.<info>ph
1e5a0 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 61 72 63 68 20 73 79 6d 66 6f 6e 79 20 63 p.composer.phar.search.symfony.c
1e5c0 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 72 6f 74 65 omposer</info>..EOT.).;.}..prote
1e5e0 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 72 cted.function.execute(InputInter
1e600 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 75 face.$input,.OutputInterface.$ou
1e620 74 70 75 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c tput).{...$platformRepo.=.new.Pl
1e640 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 atformRepository;.if.($composer.
1e660 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 =.$this->getComposer(false)).{.$
1e680 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 localRepo.=.$composer->getReposi
1e6a0 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 toryManager()->getLocalRepositor
1e6c0 79 28 29 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 y();.$installedRepo.=.new.Compos
1e6e0 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 iteRepository(array($localRepo,.
1e700 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f $platformRepo));.$repos.=.new.Co
1e720 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 28 61 72 mpositeRepository(array_merge(ar
1e740 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e ray($installedRepo),.$composer->
1e760 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 52 65 70 6f 73 getRepositoryManager()->getRepos
1e780 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 itories()));.}.else.{.$defaultRe
1e7a0 70 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 pos.=.Factory::createDefaultRepo
1e7c0 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 74 68 69 73 2d sitories($this->getIO());.$this-
1e7e0 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 >getIO()->writeError('No.compose
1e800 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 65 r.json.found.in.the.current.dire
1e820 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 20 27 20 2e ctory,.showing.packages.from.'..
1e840 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 65 66 61 75 .implode(',.',.array_keys($defau
1e860 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 20 24 70 6c ltRepos)));.$installedRepo.=.$pl
1e880 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 70 6f 73 69 atformRepo;.$repos.=.new.Composi
1e8a0 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 teRepository(array_merge(array($
1e8c0 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 73 29 29 3b installedRepo),.$defaultRepos));
1e8e0 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 64 45 76 65 .}..if.($composer).{.$commandEve
1e900 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 45 76 65 6e nt.=.new.CommandEvent(PluginEven
1e920 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 74 2c 20 24 ts::COMMAND,.'search',.$input,.$
1e940 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 44 69 73 70 output);.$composer->getEventDisp
1e960 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 76 65 6e 74 atcher()->dispatch($commandEvent
1e980 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 0a 7d 0a 0a ->getName(),.$commandEvent);.}..
1e9a0 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 6e 28 27 6f $onlyName.=.$input->getOption('o
1e9c0 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 61 6d 65 20 nly-name');..$flags.=.$onlyName.
1e9e0 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 48 5f 4e 41 ?.RepositoryInterface::SEARCH_NA
1ea00 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 41 52 43 48 ME.:.RepositoryInterface::SEARCH
1ea20 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 2d 3e 73 65 _FULLTEXT;.$results.=.$repos->se
1ea40 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 74 41 72 67 arch(implode('.',.$input->getArg
1ea60 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 66 6f 72 65 ument('tokens')),.$flags);..fore
1ea80 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 24 74 68 69 ach.($results.as.$result).{.$thi
1eaa0 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 72 65 73 75 6c 74 5b 27 6e 61 6d 65 27 s->getIO()->write($result['name'
1eac0 5d 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 ]...(isset($result['description'
1eae0 5d 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 ]).?.'.'..$result['description']
1eb00 20 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 .:.''));.}.}.}.<?php............
1eb20 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 namespace.Composer\Command;..use
1eb40 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 .Composer\Composer;.use.Composer
1eb60 5c 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 \Factory;.use.Composer\Util\File
1eb80 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 system;.use.Composer\Util\Remote
1eba0 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 Filesystem;.use.Composer\Downloa
1ebc0 64 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 der\FilesystemException;.use.Sym
1ebe0 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
1ec00 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
1ec20 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 nt\Console\Input\InputOption;.us
1ec40 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
1ec60 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d t\InputArgument;.use.Symfony\Com
1ec80 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
1eca0 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 46 69 6e rface;.use.Symfony\Component\Fin
1ecc0 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 der\Finder;.......class.SelfUpda
1ece0 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 63 6f 6e 73 teCommand.extends.Command.{.cons
1ed00 74 20 48 4f 4d 45 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 t.HOMEPAGE.=.'getcomposer.org';.
1ed20 63 6f 6e 73 74 20 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 const.OLD_INSTALL_EXT.=.'-old.ph
1ed40 61 72 27 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 67 75 ar';..protected.function.configu
1ed60 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 6c 66 2d 75 70 64 re().{.$this.->setName('self-upd
1ed80 61 74 65 27 29 0a 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 ate').->setAliases(array('selfup
1eda0 64 61 74 65 27 29 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 date')).->setDescription('Update
1edc0 73 20 63 6f 6d 70 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 s.composer.phar.to.the.latest.ve
1ede0 72 73 69 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a rsion.').->setDefinition(array(.
1ee00 6e 65 77 20 49 6e 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 new.InputOption('rollback',.'r',
1ee20 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 52 65 76 65 72 .InputOption::VALUE_NONE,.'Rever
1ee40 74 20 74 6f 20 61 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 t.to.an.older.installation.of.co
1ee60 6d 70 6f 73 65 72 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 mposer'),.new.InputOption('clean
1ee80 2d 62 61 63 6b 75 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 -backups',.null,.InputOption::VA
1eea0 4c 55 45 5f 4e 4f 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 LUE_NONE,.'Delete.old.backups.du
1eec0 72 69 6e 67 20 61 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 ring.an.update..This.makes.the.c
1eee0 75 72 72 65 6e 74 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 urrent.version.of.composer.the.o
1ef00 6e 6c 79 20 62 61 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 nly.backup.available.after.the.u
1ef20 70 64 61 74 65 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 pdate'),.new.InputArgument('vers
1ef40 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 ion',.InputArgument::OPTIONAL,.'
1ef60 54 68 65 20 76 65 72 73 69 6f 6e 20 74 6f 20 75 70 64 61 74 65 20 74 6f 27 29 2c 0a 6e 65 77 20 The.version.to.update.to'),.new.
1ef80 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 2c InputOption('no-progress',.null,
1efa0 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 6f .InputOption::VALUE_NONE,.'Do.no
1efc0 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 29 t.output.download.progress.'),.)
1efe0 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 73 65 6c ).->setHelp(<<<EOT.The.<info>sel
1f000 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 67 f-update</info>.command.checks.g
1f020 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 20 66 6f 72 20 6e 65 77 65 72 0a 76 65 72 73 69 6f 6e etcomposer.org.for.newer.version
1f040 73 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 61 6e 64 20 69 66 20 66 6f 75 6e 64 2c 20 69 6e 73 74 s.of.composer.and.if.found,.inst
1f060 61 6c 6c 73 20 74 68 65 20 6c 61 74 65 73 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 alls.the.latest...<info>php.comp
1f080 6f 73 65 72 2e 70 68 61 72 20 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f oser.phar.self-update</info>..EO
1f0a0 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
1f0c0 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
1f0e0 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 62 61 73 65 55 72 6c 20 3d tInterface.$output).{.$baseUrl.=
1f100 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 .(extension_loaded('openssl').?.
1f120 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 29 20 2e 20 27 3a 2f 2f 27 20 2e 20 73 65 6c 66 'https'.:.'http')...'://'...self
1f140 3a 3a 48 4f 4d 45 50 41 47 45 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 ::HOMEPAGE;.$config.=.Factory::c
1f160 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d reateConfig();.$remoteFilesystem
1f180 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 74 68 69 73 2d 3e 67 .=.new.RemoteFilesystem($this->g
1f1a0 65 74 49 4f 28 29 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 63 etIO(),.$config);.$cacheDir.=.$c
1f1c0 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 64 69 72 27 29 3b 0a 24 72 6f 6c 6c 62 61 onfig->get('cache-dir');.$rollba
1f1e0 63 6b 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 3b 0a 24 6c ckDir.=.$config->get('home');.$l
1f200 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 72 65 61 6c 70 61 74 68 28 24 5f 53 45 52 56 45 52 ocalFilename.=.realpath($_SERVER
1f220 5b 27 61 72 67 76 27 5d 5b 30 5d 29 20 3f 3a 20 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d ['argv'][0]).?:.$_SERVER['argv']
1f240 5b 30 5d 3b 0a 0a 0a 20 24 74 6d 70 44 69 72 20 3d 20 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 [0];....$tmpDir.=.is_writable(di
1f260 72 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 29 20 3f 20 64 69 72 6e 61 6d 65 rname($localFilename)).?.dirname
1f280 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 20 3a 20 24 63 61 63 68 65 44 69 72 3b 0a 0a 0a ($localFilename).:.$cacheDir;...
1f2a0 20 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 74 6d 70 44 69 72 29 29 20 7b 0a 74 68 .if.(!is_writable($tmpDir)).{.th
1f2c0 72 6f 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 row.new.FilesystemException('Com
1f2e0 70 6f 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 74 6d 70 poser.update.failed:.the."'.$tmp
1f300 44 69 72 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 75 73 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 Dir.'".directory.used.to.downloa
1f320 64 20 74 68 65 20 74 65 6d 70 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 d.the.temp.file.could.not.be.wri
1f340 74 74 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 6c 6f 63 61 tten');.}.if.(!is_writable($loca
1f360 6c 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 lFilename)).{.throw.new.Filesyst
1f380 65 6d 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 emException('Composer.update.fai
1f3a0 6c 65 64 3a 20 74 68 65 20 22 27 2e 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2e 27 22 20 66 69 led:.the."'.$localFilename.'".fi
1f3c0 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 27 29 3b 0a 7d 0a 0a 69 66 le.could.not.be.written');.}..if
1f3e0 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 6f 6c 6c 62 61 63 6b 27 29 29 .($input->getOption('rollback'))
1f400 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6c 6c 62 61 63 6b 28 24 6f 75 74 70 75 .{.return.$this->rollback($outpu
1f420 74 2c 20 24 72 6f 6c 6c 62 61 63 6b 44 69 72 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 t,.$rollbackDir,.$localFilename)
1f440 3b 0a 7d 0a 0a 24 6c 61 74 65 73 74 56 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d 28 24 72 65 6d 6f ;.}..$latestVersion.=.trim($remo
1f460 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 73 65 6c 66 3a 3a teFilesystem->getContents(self::
1f480 48 4f 4d 45 50 41 47 45 2c 20 24 62 61 73 65 55 72 6c 2e 20 27 2f 76 65 72 73 69 6f 6e 27 2c 20 HOMEPAGE,.$baseUrl..'/version',.
1f4a0 66 61 6c 73 65 29 29 3b 0a 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 69 6e 70 75 74 false));.$updateVersion.=.$input
1f4c0 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 20 3f 3a 20 24 6c 61 74 ->getArgument('version').?:.$lat
1f4e0 65 73 74 56 65 72 73 69 6f 6e 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b estVersion;..if.(preg_match('{^[
1f500 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 6f 6e 29 20 0-9a-f]{40}$}',.$updateVersion).
1f520 26 26 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 20 21 3d 3d 20 24 6c 61 74 65 73 74 56 65 72 &&.$updateVersion.!==.$latestVer
1f540 73 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 sion).{.$this->getIO()->writeErr
1f560 6f 72 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 65 20 74 6f or('<error>You.can.not.update.to
1f580 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 68 61 72 73 .a.specific.SHA-1.as.those.phars
1f5a0 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 6f 61 64 3c .are.not.available.for.download<
1f5c0 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 28 43 6f 6d /error>');..return.1;.}..if.(Com
1f5e0 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 72 73 69 6f poser::VERSION.===.$updateVersio
1f600 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 n).{.$this->getIO()->writeError(
1f620 27 3c 69 6e 66 6f 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 '<info>You.are.already.using.com
1f640 70 6f 73 65 72 20 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 poser.version.'.$updateVersion.'
1f660 2e 3c 2f 69 6e 66 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 .</info>');..return.0;.}..$tempF
1f680 69 6c 65 6e 61 6d 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 ilename.=.$tmpDir...'/'...basena
1f6a0 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 27 2e 70 68 61 72 27 29 2e 27 2d 74 65 me($localFilename,.'.phar').'-te
1f6c0 6d 70 2e 70 68 61 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 mp.phar';.$backupFile.=.sprintf(
1f6e0 0a 27 25 73 2f 25 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 .'%s/%s-%s%s',.$rollbackDir,.str
1f700 74 72 28 43 6f 6d 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 tr(Composer::RELEASE_DATE,.'.:',
1f720 20 27 5f 2d 27 29 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 .'_-'),.preg_replace('{^([0-9a-f
1f740 5d 7b 37 7d 29 5b 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 ]{7})[0-9a-f]{33}$}',.'$1',.Comp
1f760 6f 73 65 72 3a 3a 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 oser::VERSION),.self::OLD_INSTAL
1f780 4c 5f 45 58 54 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 L_EXT.);..$this->getIO()->writeE
1f7a0 72 72 6f 72 28 73 70 72 69 6e 74 66 28 22 55 70 64 61 74 69 6e 67 20 74 6f 20 76 65 72 73 69 6f rror(sprintf("Updating.to.versio
1f7c0 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 2e 22 2c 20 24 75 70 64 61 74 65 56 65 72 73 n.<info>%s</info>.",.$updateVers
1f7e0 69 6f 6e 29 29 3b 0a 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 20 3d 20 24 62 61 73 65 55 72 ion));.$remoteFilename.=.$baseUr
1f800 6c 20 2e 20 28 70 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 l...(preg_match('{^[0-9a-f]{40}$
1f820 7d 27 2c 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 29 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 }',.$updateVersion).?.'/composer
1f840 2e 70 68 61 72 27 20 3a 20 22 2f 64 6f 77 6e 6c 6f 61 64 2f 7b 24 75 70 64 61 74 65 56 65 72 73 .phar'.:."/download/{$updateVers
1f860 69 6f 6e 7d 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 22 29 3b 0a 24 72 65 6d 6f 74 65 46 69 6c ion}/composer.phar");.$remoteFil
1f880 65 73 79 73 74 65 6d 2d 3e 63 6f 70 79 28 73 65 6c 66 3a 3a 48 4f 4d 45 50 41 47 45 2c 20 24 72 esystem->copy(self::HOMEPAGE,.$r
1f8a0 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 2c 20 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 2c 20 21 24 emoteFilename,.$tempFilename,.!$
1f8c0 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 input->getOption('no-progress'))
1f8e0 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 ;.if.(!file_exists($tempFilename
1f900 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 )).{.$this->getIO()->writeError(
1f920 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 65 77 20 '<error>The.download.of.the.new.
1f940 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 6e 20 75 composer.version.failed.for.an.u
1f960 6e 65 78 70 65 63 74 65 64 20 72 65 61 73 6f 6e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 nexpected.reason</error>');..ret
1f980 75 72 6e 20 31 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 urn.1;.}....if.($input->getOptio
1f9a0 6e 28 27 63 6c 65 61 6e 2d 62 61 63 6b 75 70 73 27 29 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 n('clean-backups')).{.$finder.=.
1f9c0 24 74 68 69 73 2d 3e 67 65 74 4f 6c 64 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 46 69 6e 64 65 72 28 $this->getOldInstallationFinder(
1f9e0 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 $rollbackDir);..$fs.=.new.Filesy
1fa00 73 74 65 6d 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 29 stem;.foreach.($finder.as.$file)
1fa20 20 7b 0a 24 66 69 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 66 69 6c 65 3b 0a 24 74 68 69 73 .{.$file.=.(string).$file;.$this
1fa40 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 52 65 6d ->getIO()->writeError('<info>Rem
1fa60 6f 76 69 6e 67 3a 20 27 2e 24 66 69 6c 65 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 66 73 2d 3e oving:.'.$file.'</info>');.$fs->
1fa80 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 72 72 20 3d 20 24 remove($file);.}.}..if.($err.=.$
1faa0 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 6c 65 6e 61 6d this->setLocalPhar($localFilenam
1fac0 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 6c 65 29 29 20 e,.$tempFilename,.$backupFile)).
1fae0 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 {.$this->getIO()->writeError('<e
1fb00 72 72 6f 72 3e 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 rror>The.file.is.corrupted.('.$e
1fb20 72 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a rr->getMessage().').</error>');.
1fb40 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 $this->getIO()->writeError('<err
1fb60 6f 72 3e 50 6c 65 61 73 65 20 72 65 2d 72 75 6e 20 74 68 65 20 73 65 6c 66 2d 75 70 64 61 74 65 or>Please.re-run.the.self-update
1fb80 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 72 79 20 61 67 61 69 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 .command.to.try.again.</error>')
1fba0 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 ;..return.1;.}..if.(file_exists(
1fbc0 24 62 61 63 6b 75 70 46 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e $backupFile)).{.$this->getIO()->
1fbe0 77 72 69 74 65 45 72 72 6f 72 28 27 55 73 65 20 3c 69 6e 66 6f 3e 63 6f 6d 70 6f 73 65 72 20 73 writeError('Use.<info>composer.s
1fc00 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 66 6f 3e 20 74 6f 20 elf-update.--rollback</info>.to.
1fc20 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 73 65 72 3a 3a 56 45 return.to.version.'.Composer::VE
1fc40 52 53 49 4f 4e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d RSION);.}.else.{.$this->getIO()-
1fc60 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 41 20 62 61 63 6b 75 70 20 6f >writeError('<warning>A.backup.o
1fc80 66 20 74 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 f.the.current.version.could.not.
1fca0 62 65 20 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 be.written.to.'.$backupFile.',.n
1fcc0 6f 20 72 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 o.rollback.possible</warning>');
1fce0 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 72 6f 6c 6c 62 61 63 .}.}..protected.function.rollbac
1fd00 6b 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 6f 6c 6c k(OutputInterface.$output,.$roll
1fd20 62 61 63 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 backDir,.$localFilename).{.$roll
1fd40 62 61 63 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 backVersion.=.$this->getLastBack
1fd60 75 70 56 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 upVersion($rollbackDir);.if.(!$r
1fd80 6f 6c 6c 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 ollbackVersion).{.throw.new.\Une
1fda0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 xpectedValueException('Composer.
1fdc0 72 6f 6c 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 rollback.failed:.no.installation
1fde0 20 74 6f 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 .to.roll.back.to.in."'.$rollback
1fe00 44 69 72 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 Dir.'"');.}..if.(!is_writable($r
1fe20 6f 6c 6c 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 ollbackDir)).{.throw.new.Filesys
1fe40 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 6b 20 temException('Composer.rollback.
1fe60 66 61 69 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 failed:.the."'.$rollbackDir.'".d
1fe80 69 72 20 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 ir.could.not.be.written.to');.}.
1fea0 0a 24 6f 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 .$old.=.$rollbackDir...'/'...$ro
1fec0 6c 6c 62 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 llbackVersion...self::OLD_INSTAL
1fee0 4c 5f 45 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 L_EXT;..if.(!is_file($old)).{.th
1ff00 72 6f 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 row.new.FilesystemException('Com
1ff20 70 6f 73 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 poser.rollback.failed:."'.$old.'
1ff40 22 20 63 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 ".could.not.be.found');.}.if.(!i
1ff60 73 5f 72 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 s_readable($old)).{.throw.new.Fi
1ff80 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 65 72 20 72 6f 6c 6c lesystemException('Composer.roll
1ffa0 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 6f 75 6c 64 20 6e 6f back.failed:."'.$old.'".could.no
1ffc0 74 20 62 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 t.be.read');.}..$oldFile.=.$roll
1ffe0 62 61 63 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 backDir..."/{$rollbackVersion}".
20000 2e 20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 3b 0a 24 74 68 69 73 2d 3e ..self::OLD_INSTALL_EXT;.$this->
20020 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 22 52 6f 6c getIO()->writeError(sprintf("Rol
20040 6c 69 6e 67 20 62 61 63 6b 20 74 6f 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 ling.back.to.version.<info>%s</i
20060 6e 66 6f 3e 2e 22 2c 20 24 72 6f 6c 6c 62 61 63 6b 56 65 72 73 69 6f 6e 29 29 3b 0a 69 66 20 28 nfo>.",.$rollbackVersion));.if.(
20080 24 65 72 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 $err.=.$this->setLocalPhar($loca
200a0 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 6f 6c 64 46 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 lFilename,.$oldFile)).{.$this->g
200c0 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 62 etIO()->writeError('<error>The.b
200e0 61 63 6b 75 70 20 66 69 6c 65 20 77 61 73 20 63 6f 72 72 75 70 74 65 64 20 28 27 2e 24 65 72 72 ackup.file.was.corrupted.('.$err
20100 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 20 61 6e 64 20 68 61 73 20 62 65 65 6e 20 72 ->getMessage().').and.has.been.r
20120 65 6d 6f 76 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a emoved.</error>');..return.1;.}.
20140 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e .return.0;.}..protected.function
20160 20 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 6e .setLocalPhar($localFilename,.$n
20180 65 77 46 69 6c 65 6e 61 6d 65 2c 20 24 62 61 63 6b 75 70 54 61 72 67 65 74 20 3d 20 6e 75 6c 6c ewFilename,.$backupTarget.=.null
201a0 29 0a 7b 0a 74 72 79 20 7b 0a 40 63 68 6d 6f 64 28 24 6e 65 77 46 69 6c 65 6e 61 6d 65 2c 20 66 ).{.try.{.@chmod($newFilename,.f
201c0 69 6c 65 70 65 72 6d 73 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 29 3b 0a 69 66 20 28 21 ileperms($localFilename));.if.(!
201e0 69 6e 69 5f 67 65 74 28 27 70 68 61 72 2e 72 65 61 64 6f 6e 6c 79 27 29 29 20 7b 0a 0a 20 24 70 ini_get('phar.readonly')).{...$p
20200 68 61 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 har.=.new.\Phar($newFilename);..
20220 20 75 6e 73 65 74 28 24 70 68 61 72 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 62 61 63 6b 75 70 54 .unset($phar);.}....if.($backupT
20240 61 72 67 65 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 arget.&&.file_exists($localFilen
20260 61 6d 65 29 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 ame)).{.@copy($localFilename,.$b
20280 61 63 6b 75 70 54 61 72 67 65 74 29 3b 0a 7d 0a 0a 72 65 6e 61 6d 65 28 24 6e 65 77 46 69 6c 65 ackupTarget);.}..rename($newFile
202a0 6e 61 6d 65 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 name,.$localFilename);.}.catch.(
202c0 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 62 61 63 6b 75 70 54 61 72 67 \Exception.$e).{.if.($backupTarg
202e0 65 74 29 20 7b 0a 40 75 6e 6c 69 6e 6b 28 24 6e 65 77 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 69 et).{.@unlink($newFilename);.}.i
20300 66 20 28 21 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 61 6c f.(!$e.instanceof.\UnexpectedVal
20320 75 65 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 50 ueException.&&.!$e.instanceof.\P
20340 68 61 72 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 65 74 harException).{.throw.$e;.}..ret
20360 75 72 6e 20 24 65 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 urn.$e;.}.}..protected.function.
20380 67 65 74 4c 61 73 74 42 61 63 6b 75 70 56 65 72 73 69 6f 6e 28 24 72 6f 6c 6c 62 61 63 6b 44 69 getLastBackupVersion($rollbackDi
203a0 72 29 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 6c 64 49 6e 73 74 r).{.$finder.=.$this->getOldInst
203c0 61 6c 6c 61 74 69 6f 6e 46 69 6e 64 65 72 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 3b 0a 24 66 allationFinder($rollbackDir);.$f
203e0 69 6e 64 65 72 2d 3e 73 6f 72 74 42 79 4e 61 6d 65 28 29 3b 0a 24 66 69 6c 65 73 20 3d 20 69 74 inder->sortByName();.$files.=.it
20400 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 72 29 3b 0a 0a 69 66 20 28 63 erator_to_array($finder);..if.(c
20420 6f 75 6e 74 28 24 66 69 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 62 61 73 65 6e 61 6d 65 28 ount($files)).{.return.basename(
20440 65 6e 64 28 24 66 69 6c 65 73 29 2c 20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 end($files),.self::OLD_INSTALL_E
20460 58 54 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 XT);.}..return.false;.}..protect
20480 65 64 20 66 75 6e 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 ed.function.getOldInstallationFi
204a0 6e 64 65 72 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 nder($rollbackDir).{.$finder.=.F
204c0 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 0a 2d 3e 64 65 70 74 68 28 30 29 0a 2d 3e 66 69 6c inder::create().->depth(0).->fil
204e0 65 73 28 29 0a 2d 3e 6e 61 6d 65 28 27 2a 27 20 2e 20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 es().->name('*'...self::OLD_INST
20500 41 4c 4c 5f 45 58 54 29 0a 2d 3e 69 6e 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 3b 0a 0a 72 65 ALL_EXT).->in($rollbackDir);..re
20520 74 75 72 6e 20 24 66 69 6e 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$finder;.}.}.<?php.........
20540 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 0a ...namespace.Composer\Command;..
20560 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.
20580 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
205a0 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 5c 43 6f 6d 6d Parser;.use.Composer\Plugin\Comm
205c0 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
205e0 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 61 63 6b 61 67 65 uginEvents;.use.Composer\Package
20600 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\
20620 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 61 63 65 3b 0a Repository\RepositoryInterface;.
20640 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
20660 6c 70 65 72 5c 54 61 62 6c 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e lper\Table;.use.Symfony\Componen
20680 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 53 74 79 6c 65 3b 0a 75 73 65 t\Console\Helper\TableStyle;.use
206a0 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
206c0 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
206e0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e ponent\Console\Input\InputOption
20700 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\
20720 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 73 Output\OutputInterface;.....clas
20740 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 43 6f 6d 6d 61 6e s.LicensesCommand.extends.Comman
20760 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 65 d.{.protected.function.configure
20780 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 6e 73 65 73 27 29 ().{.$this.->setName('licenses')
207a0 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 66 6f 72 6d 61 74 .->setDescription('Show.informat
207c0 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 6e 64 65 6e 63 69 ion.about.licenses.of.dependenci
207e0 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 es').->setDefinition(array(.new.
20800 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 20 49 6e 70 75 74 InputOption('format',.'f',.Input
20820 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 6f 72 6d 61 74 20 Option::VALUE_REQUIRED,.'Format.
20840 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 6e 27 2c 20 27 74 of.the.output:.text.or.json',.'t
20860 65 78 74 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 ext'),.new.InputOption('no-dev',
20880 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,.
208a0 27 44 69 73 61 62 6c 65 73 20 73 65 61 72 63 68 20 69 6e 20 72 65 71 75 69 72 65 2d 64 65 76 20 'Disables.search.in.require-dev.
208c0 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 packages.'),.)).->setHelp(<<<EOT
208e0 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
20900 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
20920 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
20940 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
20960 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
20980 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
209a0 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();.
209c0 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
209e0 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
20a00 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
20a20 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
20a40 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
20a60 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
20a80 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->
20aa0 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
20ac0 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.=.
20ae0 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e new.VersionParser;..if.($input->
20b00 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 getOption('no-dev')).{.$packages
20b20 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 73 .=.$this->filterRequiredPackages
20b40 28 24 72 65 70 6f 2c 20 24 72 6f 6f 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 ($repo,.$root);.}.else.{.$packag
20b60 65 73 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 50 61 63 6b 61 67 65 73 28 24 72 65 70 6f es.=.$this->appendPackages($repo
20b80 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 6b 73 ->getPackages(),.array());.}..ks
20ba0 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 66 6f 72 6d 61 74 ort($packages);..switch.($format
20bc0 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 61 74 27 29 29 20 .=.$input->getOption('format')).
20be0 7b 0a 63 61 73 65 20 27 74 65 78 74 27 3a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 {.case.'text':.$this->getIO()->w
20c00 72 69 74 65 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 65 rite('Name:.<comment>'.$root->ge
20c20 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 74 68 tPrettyName().'</comment>');.$th
20c40 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 56 65 72 73 69 6f 6e 3a 20 3c 63 6f is->getIO()->write('Version:.<co
20c60 6d 6d 65 6e 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 mment>'.$versionParser->formatVe
20c80 72 73 69 6f 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 74 68 69 rsion($root).'</comment>');.$thi
20ca0 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 4c 69 63 65 6e 73 65 73 3a 20 3c 63 6f s->getIO()->write('Licenses:.<co
20cc0 6d 6d 65 6e 74 3e 27 2e 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 72 6f 6f 74 2d 3e 67 65 mment>'.(implode(',.',.$root->ge
20ce0 74 4c 69 63 65 6e 73 65 28 29 29 20 3f 3a 20 27 6e 6f 6e 65 27 29 2e 27 3c 2f 63 6f 6d 6d 65 6e tLicense()).?:.'none').'</commen
20d00 74 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 44 65 70 t>');.$this->getIO()->write('Dep
20d20 65 6e 64 65 6e 63 69 65 73 3a 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 endencies:');.$this->getIO()->wr
20d40 69 74 65 28 27 27 29 3b 0a 0a 24 74 61 62 6c 65 20 3d 20 6e 65 77 20 54 61 62 6c 65 28 24 6f 75 ite('');..$table.=.new.Table($ou
20d60 74 70 75 74 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 53 74 79 6c 65 28 27 63 6f 6d 70 61 63 74 tput);.$table->setStyle('compact
20d80 27 29 3b 0a 24 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 56 65 72 74 69 ');.$table->getStyle()->setVerti
20da0 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 27 29 3b 0a 24 74 61 62 6c 65 2d 3e 67 65 74 53 74 calBorderChar('');.$table->getSt
20dc0 79 6c 65 28 29 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 yle()->setCellRowContentFormat('
20de0 25 73 20 20 27 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 61 72 72 61 79 %s..');.$table->setHeaders(array
20e00 28 27 4e 61 6d 65 27 2c 20 27 56 65 72 73 69 6f 6e 27 2c 20 27 4c 69 63 65 6e 73 65 27 29 29 3b ('Name',.'Version',.'License'));
20e20 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 29 .foreach.($packages.as.$package)
20e40 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 70 61 63 6b 61 67 .{.$table->addRow(array(.$packag
20e60 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 6f 6e 50 61 72 73 e->getPrettyName(),.$versionPars
20e80 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 29 2c 0a 69 6d 70 er->formatVersion($package),.imp
20ea0 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 63 65 6e 73 65 28 lode(',.',.$package->getLicense(
20ec0 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 2d 3e 72 65 6e 64 )).?:.'none',.));.}.$table->rend
20ee0 65 72 28 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6a 73 6f 6e 27 3a 0a 66 6f 72 65 61 er();.break;..case.'json':.forea
20f00 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 65 ch.($packages.as.$package).{.$de
20f20 70 65 6e 64 65 6e 63 69 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 pendencies[$package->getPrettyNa
20f40 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 me()].=.array(.'version'.=>.$ver
20f60 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 24 70 61 63 6b 61 sionParser->formatVersion($packa
20f80 67 65 29 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c ge),.'license'.=>.$package->getL
20fa0 69 63 65 6e 73 65 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e icense(),.);.}..$this->getIO()->
20fc0 77 72 69 74 65 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 61 72 72 61 79 28 0a 27 6e write(JsonFile::encode(array(.'n
20fe0 61 6d 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a ame'.=>.$root->getPrettyName(),.
21000 27 76 65 72 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 'version'.=>.$versionParser->for
21020 6d 61 74 56 65 72 73 69 6f 6e 28 24 72 6f 6f 74 29 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d 3e 20 matVersion($root),.'license'.=>.
21040 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 2c 0a 27 64 65 70 65 6e 64 65 6e 63 69 $root->getLicense(),.'dependenci
21060 65 73 27 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 0a 29 29 29 3b 0a 62 72 65 61 6b es'.=>.$dependencies,.)));.break
21080 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ;..default:.throw.new.\RuntimeEx
210a0 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 66 6f 72 ception(sprintf('Unsupported.for
210c0 6d 61 74 20 22 25 73 22 2e 20 20 53 65 65 20 68 65 6c 70 20 66 6f 72 20 73 75 70 70 6f 72 74 65 mat."%s"...See.help.for.supporte
210e0 64 20 66 6f 72 6d 61 74 73 2e 27 2c 20 24 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a d.formats.',.$format));.}.}.....
21100 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 52 65 71 75 69 72 ...private.function.filterRequir
21120 65 64 50 61 63 6b 61 67 65 73 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 edPackages(RepositoryInterface.$
21140 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 2c repo,.PackageInterface.$package,
21160 20 24 62 75 63 6b 65 74 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 .$bucket.=.array()).{.$requires.
21180 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 =.array_keys($package->getRequir
211a0 65 73 28 29 29 3b 0a 0a 24 70 61 63 6b 61 67 65 4c 69 73 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 es());..$packageListNames.=.arra
211c0 79 5f 6b 65 79 73 28 24 62 75 63 6b 65 74 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 y_keys($bucket);.$packages.=.arr
211e0 61 79 5f 66 69 6c 74 65 72 28 0a 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 2c ay_filter(.$repo->getPackages(),
21200 0a 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 67 65 29 20 75 73 65 20 28 24 72 65 71 75 69 .function.($package).use.($requi
21220 72 65 73 2c 20 24 70 61 63 6b 61 67 65 4c 69 73 74 4e 61 6d 65 73 29 20 7b 0a 72 65 74 75 72 6e res,.$packageListNames).{.return
21240 20 69 6e 5f 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 2c 20 24 .in_array($package->getName(),.$
21260 72 65 71 75 69 72 65 73 29 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d requires).&&.!in_array($package-
21280 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 4c 69 73 74 4e 61 6d 65 73 29 3b 0a >getName(),.$packageListNames);.
212a0 7d 0a 29 3b 0a 0a 24 62 75 63 6b 65 74 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 50 61 63 }.);..$bucket.=.$this->appendPac
212c0 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 73 2c 20 24 62 75 63 6b 65 74 29 3b 0a 0a 66 6f 72 65 kages($packages,.$bucket);..fore
212e0 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 62 ach.($packages.as.$package).{.$b
21300 75 63 6b 65 74 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 65 71 75 69 72 65 64 50 61 63 ucket.=.$this->filterRequiredPac
21320 6b 61 67 65 73 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 62 75 63 6b 65 74 29 3b kages($repo,.$package,.$bucket);
21340 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 75 63 6b 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .}..return.$bucket;.}.........pu
21360 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 50 61 63 6b 61 67 65 73 28 61 72 72 blic.function.appendPackages(arr
21380 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 61 72 72 61 79 20 24 62 75 63 6b 65 74 29 0a 7b 0a 66 ay.$packages,.array.$bucket).{.f
213a0 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b oreach.($packages.as.$package).{
213c0 0a 24 62 75 63 6b 65 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 .$bucket[$package->getName()].=.
213e0 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 75 63 6b 65 74 3b 0a 7d 0a 7d $package;.}..return.$bucket;.}.}
21400 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
21420 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 44 65 70 65 oser\Command;..use.Composer\Depe
21440 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 6f 73 65 ndencyResolver\Pool;.use.Compose
21460 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c r\Factory;.use.Composer\Package\
21480 43 6f 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 CompletePackageInterface;.use.Co
214a0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 mposer\Repository\CompositeRepos
214c0 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 itory;.use.Composer\Repository\R
214e0 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 epositoryInterface;.use.Composer
21500 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 53 79 6d 66 6f \Util\ProcessExecutor;.use.Symfo
21520 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
21540 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Argument;.use.Symfony\Component\
21560 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 Console\Input\InputOption;.use.S
21580 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
215a0 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 6f nputInterface;.use.Symfony\Compo
215c0 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
215e0 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 6f 6d 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e ace;.....class.HomeCommand.exten
21600 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 75 6e 63 74 69 ds.Command.{....protected.functi
21620 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 on.configure().{.$this.->setName
21640 28 27 62 72 6f 77 73 65 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 68 ('browse').->setAliases(array('h
21660 6f 6d 65 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 4f 70 65 6e 73 20 74 ome')).->setDescription('Opens.t
21680 68 65 20 70 61 63 6b 61 67 65 5c 27 73 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 20 6f 72 20 he.package\'s.repository.URL.or.
216a0 68 6f 6d 65 70 61 67 65 20 69 6e 20 79 6f 75 72 20 62 72 6f 77 73 65 72 2e 27 29 0a 2d 3e 73 65 homepage.in.your.browser.').->se
216c0 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 tDefinition(array(.new.InputArgu
216e0 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a ment('packages',.InputArgument::
21700 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
21720 45 44 2c 20 27 50 61 63 6b 61 67 65 28 73 29 20 74 6f 20 62 72 6f 77 73 65 20 74 6f 2e 27 29 2c ED,.'Package(s).to.browse.to.'),
21740 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 48 27 .new.InputOption('homepage',.'H'
21760 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 65 6e ,.InputOption::VALUE_NONE,.'Open
21780 20 74 68 65 20 68 6f 6d 65 70 61 67 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 72 65 70 .the.homepage.instead.of.the.rep
217a0 6f 73 69 74 6f 72 79 20 55 52 4c 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ository.URL.'),.new.InputOption(
217c0 27 73 68 6f 77 27 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 'show',.'s',.InputOption::VALUE_
217e0 4e 4f 4e 45 2c 20 27 4f 6e 6c 79 20 73 68 6f 77 20 74 68 65 20 68 6f 6d 65 70 61 67 65 20 6f 72 NONE,.'Only.show.the.homepage.or
21800 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 .repository.URL.'),.)).->setHelp
21820 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 68 6f 6d 65 20 63 6f 6d 6d 61 6e 64 20 6f 70 65 6e 73 20 6f (<<<EOT.The.home.command.opens.o
21840 72 20 73 68 6f 77 73 20 61 20 70 61 63 6b 61 67 65 27 73 20 72 65 70 6f 73 69 74 6f 72 79 20 55 r.shows.a.package's.repository.U
21860 52 4c 20 6f 72 0a 68 6f 6d 65 70 61 67 65 20 69 6e 20 79 6f 75 72 20 64 65 66 61 75 6c 74 20 62 RL.or.homepage.in.your.default.b
21880 72 6f 77 73 65 72 2e 0a 0a 54 6f 20 6f 70 65 6e 20 74 68 65 20 68 6f 6d 65 70 61 67 65 20 62 79 rowser...To.open.the.homepage.by
218a0 20 64 65 66 61 75 6c 74 2c 20 75 73 65 20 2d 48 20 6f 72 20 2d 2d 68 6f 6d 65 70 61 67 65 2e 0a .default,.use.-H.or.--homepage..
218c0 54 6f 20 73 68 6f 77 20 69 6e 73 74 65 61 64 20 6f 66 20 6f 70 65 6e 20 74 68 65 20 72 65 70 6f To.show.instead.of.open.the.repo
218e0 73 69 74 6f 72 79 20 6f 72 20 68 6f 6d 65 70 61 67 65 20 55 52 4c 2c 20 75 73 65 20 2d 73 20 6f sitory.or.homepage.URL,.use.-s.o
21900 72 20 2d 2d 73 68 6f 77 2e 0a 45 4f 54 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 r.--show..EOT.);.}.....protected
21920 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.execute(InputInterface
21940 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
21960 29 0a 7b 0a 24 72 65 70 6f 73 20 3d 20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 52 65 ).{.$repos.=.$this->initializeRe
21980 70 6f 73 28 29 3b 0a 24 72 65 74 75 72 6e 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 pos();.$return.=.0;..foreach.($i
219a0 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 20 61 73 nput->getArgument('packages').as
219c0 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 .$packageName).{.foreach.($repos
219e0 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 .as.$repo).{.$package.=.$this->g
21a00 65 74 50 61 63 6b 61 67 65 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a etPackage($repo,.$packageName);.
21a20 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 6f 6d 70 6c 65 74 65 if.($package.instanceof.Complete
21a40 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 24 PackageInterface).{.break;.}.}.$
21a60 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 24 72 65 70 package.=.$this->getPackage($rep
21a80 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 o,.$packageName);..if.(!$package
21aa0 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 .instanceof.CompletePackageInter
21ac0 66 61 63 65 29 20 7b 0a 24 72 65 74 75 72 6e 20 3d 20 31 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 face).{.$return.=.1;.$this->getI
21ae0 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 50 61 63 6b 61 67 O()->writeError('<warning>Packag
21b00 65 20 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 3c 2f 77 61 e.'.$packageName.'.not.found</wa
21b20 72 6e 69 6e 67 3e 27 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 73 75 70 70 6f 72 74 rning>');..continue;.}..$support
21b40 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 24 75 72 6c 20 .=.$package->getSupport();.$url.
21b60 3d 20 69 73 73 65 74 28 24 73 75 70 70 6f 72 74 5b 27 73 6f 75 72 63 65 27 5d 29 20 3f 20 24 73 =.isset($support['source']).?.$s
21b80 75 70 70 6f 72 74 5b 27 73 6f 75 72 63 65 27 5d 20 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 upport['source'].:.$package->get
21ba0 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 69 66 20 28 21 24 75 72 6c 20 7c 7c 20 24 69 6e 70 75 74 SourceUrl();.if.(!$url.||.$input
21bc0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 29 29 20 7b 0a 24 75 72 6c 20 ->getOption('homepage')).{.$url.
21be0 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 7d 0a 0a 69 66 =.$package->getHomepage();.}..if
21c00 20 28 21 66 69 6c 74 65 72 5f 76 61 72 28 24 75 72 6c 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 .(!filter_var($url,.FILTER_VALID
21c20 41 54 45 5f 55 52 4c 29 29 20 7b 0a 24 72 65 74 75 72 6e 20 3d 20 31 3b 0a 24 74 68 69 73 2d 3e ATE_URL)).{.$return.=.1;.$this->
21c40 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e getIO()->writeError('<warning>'.
21c60 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 29 20 3f ($input->getOption('homepage').?
21c80 20 27 49 6e 76 61 6c 69 64 20 6f 72 20 6d 69 73 73 69 6e 67 20 68 6f 6d 65 70 61 67 65 27 20 3a .'Invalid.or.missing.homepage'.:
21ca0 20 27 49 6e 76 61 6c 69 64 20 6f 72 20 6d 69 73 73 69 6e 67 20 72 65 70 6f 73 69 74 6f 72 79 20 .'Invalid.or.missing.repository.
21cc0 55 52 4c 27 29 2e 27 20 66 6f 72 20 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 3c 2f 77 61 URL').'.for.'.$packageName.'</wa
21ce0 72 6e 69 6e 67 3e 27 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 rning>');..continue;.}..if.($inp
21d00 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 68 6f 77 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e ut->getOption('show')).{.$this->
21d20 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 getIO()->write(sprintf('<info>%s
21d40 3c 2f 69 6e 66 6f 3e 27 2c 20 24 75 72 6c 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 </info>',.$url));.}.else.{.$this
21d60 2d 3e 6f 70 65 6e 42 72 6f 77 73 65 72 28 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e ->openBrowser($url);.}.}..return
21d80 20 24 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 .$return;.}.........protected.fu
21da0 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 nction.getPackage(RepositoryInte
21dc0 72 66 61 63 65 20 24 72 65 70 6f 73 2c 20 24 6e 61 6d 65 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 rface.$repos,.$name).{.$name.=.s
21de0 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f trtolower($name);.$pool.=.new.Po
21e00 6f 6c 28 27 64 65 76 27 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 ol('dev');.$pool->addRepository(
21e20 24 72 65 70 6f 73 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 $repos);.$matches.=.$pool->whatP
21e40 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 rovides($name);..foreach.($match
21e60 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 20 7b 0a 0a 20 69 66 es.as.$index.=>.$package).{...if
21e80 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 20 24 6e 61 6d 65 29 .($package->getName().!==.$name)
21ea0 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 63 6f 6e 74 .{.unset($matches[$index]);.cont
21ec0 69 6e 75 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 0a 0a inue;.}..return.$package;.}.}...
21ee0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 70 65 6e 42 72 6f 77 73 65 72 ....private.function.openBrowser
21f00 28 24 75 72 6c 29 0a 7b 0a 24 75 72 6c 20 3d 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a ($url).{.$url.=.ProcessExecutor:
21f20 3a 65 73 63 61 70 65 28 24 75 72 6c 29 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 :escape($url);..if.(defined('PHP
21f40 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 72 65 74 75 _WINDOWS_VERSION_MAJOR')).{.retu
21f60 72 6e 20 70 61 73 73 74 68 72 75 28 27 73 74 61 72 74 20 22 77 65 62 22 20 65 78 70 6c 6f 72 65 rn.passthru('start."web".explore
21f80 72 20 22 27 20 2e 20 24 75 72 6c 20 2e 20 27 22 27 29 3b 0a 7d 0a 0a 70 61 73 73 74 68 72 75 28 r."'...$url...'"');.}..passthru(
21fa0 27 77 68 69 63 68 20 78 64 67 2d 6f 70 65 6e 27 2c 20 24 6c 69 6e 75 78 29 3b 0a 70 61 73 73 74 'which.xdg-open',.$linux);.passt
21fc0 68 72 75 28 27 77 68 69 63 68 20 6f 70 65 6e 27 2c 20 24 6f 73 78 29 3b 0a 0a 69 66 20 28 30 20 hru('which.open',.$osx);..if.(0.
21fe0 3d 3d 3d 20 24 6c 69 6e 75 78 29 20 7b 0a 70 61 73 73 74 68 72 75 28 27 78 64 67 2d 6f 70 65 6e ===.$linux).{.passthru('xdg-open
22000 20 27 20 2e 20 24 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 24 6f 73 78 .'...$url);.}.elseif.(0.===.$osx
22020 29 20 7b 0a 70 61 73 73 74 68 72 75 28 27 6f 70 65 6e 20 27 20 2e 20 24 75 72 6c 29 3b 0a 7d 20 ).{.passthru('open.'...$url);.}.
22040 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f else.{.$this->getIO()->writeErro
22060 72 28 27 6e 6f 20 73 75 69 74 61 62 6c 65 20 62 72 6f 77 73 65 72 20 6f 70 65 6e 69 6e 67 20 63 r('no.suitable.browser.opening.c
22080 6f 6d 6d 61 6e 64 20 66 6f 75 6e 64 2c 20 6f 70 65 6e 20 79 6f 75 72 73 65 6c 66 3a 20 27 20 2e ommand.found,.open.yourself:.'..
220a0 20 24 75 72 6c 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 .$url);.}.}.........private.func
220c0 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 52 65 70 6f 73 28 29 0a 7b 0a 24 63 6f 6d 70 6f 73 tion.initializeRepos().{.$compos
220e0 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 65 29 3b 0a er.=.$this->getComposer(false);.
22100 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a .if.($composer).{.return.array(.
22120 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 28 $composer->getRepositoryManager(
22140 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 0a 6e 65 77 20 43 6f 6d )->getLocalRepository(),.new.Com
22160 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 positeRepository($composer->getR
22180 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 epositoryManager()->getRepositor
221a0 69 65 73 28 29 29 0a 29 3b 0a 7d 0a 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 ies()).);.}..$defaultRepos.=.Fac
221c0 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 tory::createDefaultRepositories(
221e0 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e $this->getIO());..return.array(n
22200 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 6c 74 52 ew.CompositeRepository($defaultR
22220 65 70 6f 73 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 6d epos));.}.}.<?php............nam
22240 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 53 79 espace.Composer\Command;..use.Sy
22260 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
22280 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
222a0 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;
222c0 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
222e0 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f nput\InputOption;.use.Symfony\Co
22300 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
22320 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 erface;.use.Composer\Factory;.us
22340 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
22360 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 4a er\Json\JsonFile;.use.Composer\J
22380 73 6f 6e 5c 4a 73 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 son\JsonManipulator;.use.Compose
223a0 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b r\Package\Version\VersionParser;
223c0 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 61 6e 64 45 76 65 6e .use.Composer\Plugin\CommandEven
223e0 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 75 67 69 6e 45 76 65 t;.use.Composer\Plugin\PluginEve
22400 6e 74 73 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 nts;.use.Composer\Repository\Com
22420 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 positeRepository;.use.Composer\R
22440 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a epository\PlatformRepository;...
22460 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 ...class.RequireCommand.extends.
22480 49 6e 69 74 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e InitCommand.{.protected.function
224a0 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
224c0 72 65 71 75 69 72 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 73 require').->setDescription('Adds
224e0 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f .required.packages.to.your.compo
22500 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 27 29 0a 2d 3e 73 ser.json.and.installs.them').->s
22520 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 etDefinition(array(.new.InputArg
22540 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a ument('packages',.InputArgument:
22560 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f :IS_ARRAY.|.InputArgument::OPTIO
22580 4e 41 4c 2c 20 27 52 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 6f 70 74 69 NAL,.'Required.package.name.opti
225a0 6f 6e 61 6c 6c 79 20 69 6e 63 6c 75 64 69 6e 67 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 onally.including.a.version.const
225c0 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 20 6f 72 20 66 6f 6f 2f 62 61 72 3a 31 raint,.e.g..foo/bar.or.foo/bar:1
225e0 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
22600 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 r.1.0.0"'),.new.InputOption('dev
22620 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
22640 2c 20 27 41 64 64 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 65 ,.'Add.requirement.to.require-de
22660 76 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f v.'),.new.InputOption('prefer-so
22680 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f urce',.null,.InputOption::VALUE_
226a0 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 NONE,.'Forces.installation.from.
226c0 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 package.sources.when.possible,.i
226e0 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 ncluding.VCS.information.'),.new
22700 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c .InputOption('prefer-dist',.null
22720 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 ,.InputOption::VALUE_NONE,.'Forc
22740 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 es.installation.from.package.dis
22760 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 t.even.for.dev.versions.'),.new.
22780 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 2c InputOption('no-progress',.null,
227a0 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 6f .InputOption::VALUE_NONE,.'Do.no
227c0 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 6e t.output.download.progress.'),.n
227e0 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 6c ew.InputOption('no-update',.null
22800 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
22820 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 65 bles.the.automatic.update.of.the
22840 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f .dependencies.'),.new.InputOptio
22860 6e 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 n('update-no-dev',.null,.InputOp
22880 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 52 75 6e 20 74 68 65 20 64 65 70 65 6e tion::VALUE_NONE,.'Run.the.depen
228a0 64 65 6e 63 79 20 75 70 64 61 74 65 20 77 69 74 68 20 74 68 65 20 2d 2d 6e 6f 2d 64 65 76 20 6f dency.update.with.the.--no-dev.o
228c0 70 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 ption.'),.new.InputOption('updat
228e0 65 2d 77 69 74 68 2d 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 e-with-dependencies',.null,.Inpu
22900 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 6c 6c 6f 77 73 20 69 6e 68 tOption::VALUE_NONE,.'Allows.inh
22920 65 72 69 74 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 62 65 20 75 70 64 61 74 65 erited.dependencies.to.be.update
22940 64 20 77 69 74 68 20 65 78 70 6c 69 63 69 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c d.with.explicit.dependencies.'),
22960 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 .new.InputOption('ignore-platfor
22980 6d 2d 72 65 71 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 m-reqs',.null,.InputOption::VALU
229a0 45 5f 4e 4f 4e 45 2c 20 27 49 67 6e 6f 72 65 20 70 6c 61 74 66 6f 72 6d 20 72 65 71 75 69 72 65 E_NONE,.'Ignore.platform.require
229c0 6d 65 6e 74 73 20 28 70 68 70 20 26 20 65 78 74 2d 20 70 61 63 6b 61 67 65 73 29 2e 27 29 2c 0a ments.(php.&.ext-.packages).'),.
229e0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 6f 72 74 2d 70 61 63 6b 61 67 65 73 27 2c new.InputOption('sort-packages',
22a00 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,.
22a20 27 53 6f 72 74 73 20 70 61 63 6b 61 67 65 73 20 77 68 65 6e 20 61 64 64 69 6e 67 2f 75 70 64 61 'Sorts.packages.when.adding/upda
22a40 74 69 6e 67 20 61 20 6e 65 77 20 64 65 70 65 6e 64 65 6e 63 79 27 29 2c 0a 29 29 0a 2d 3e 73 65 ting.a.new.dependency'),.)).->se
22a60 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 6e 64 tHelp(<<<EOT.The.require.command
22a80 20 61 64 64 73 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 .adds.required.packages.to.your.
22aa0 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 2e composer.json.and.installs.them.
22ac0 0a 0a 49 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f ..If.you.do.not.specify.a.versio
22ae0 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 63 6f 6d 70 6f 73 65 72 20 77 69 6c 6c 20 63 68 6f 6f n.constraint,.composer.will.choo
22b00 73 65 20 61 20 73 75 69 74 61 62 6c 65 20 6f 6e 65 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 61 se.a.suitable.one.based.on.the.a
22b20 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 49 66 20 79 vailable.package.versions...If.y
22b40 6f 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 ou.do.not.want.to.install.the.ne
22b60 77 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 w.dependencies.immediately.you.c
22b80 61 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 an.call.it.with.--no-update..EOT
22ba0 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
22bc0 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
22be0 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 46 61 63 Interface.$output).{.$file.=.Fac
22c00 74 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 24 6e 65 77 6c 79 tory::getComposerFile();..$newly
22c20 43 72 65 61 74 65 64 20 3d 20 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 3b 0a 69 Created.=.!file_exists($file);.i
22c40 66 20 28 21 66 69 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 f.(!file_exists($file).&&.!file_
22c60 70 75 74 5f 63 6f 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 put_contents($file,."{\n}\n")).{
22c80 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 .$this->getIO()->writeError('<er
22ca0 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 ror>'.$file.'.could.not.be.creat
22cc0 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 ed.</error>');..return.1;.}.if.(
22ce0 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 !is_readable($file)).{.$this->ge
22d00 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c tIO()->writeError('<error>'.$fil
22d20 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 72 3e 27 29 3b 0a e.'.is.not.readable.</error>');.
22d40 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 62 6c 65 28 24 66 .return.1;.}.if.(!is_writable($f
22d60 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 ile)).{.$this->getIO()->writeErr
22d80 6f 72 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 77 72 69 74 or('<error>'.$file.'.is.not.writ
22da0 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 able.</error>');..return.1;.}..$
22dc0 6a 73 6f 6e 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 json.=.new.JsonFile($file);.$com
22de0 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b poserDefinition.=.$json->read();
22e00 0a 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 .$composerBackup.=.file_get_cont
22e20 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 0a 24 63 6f 6d 70 6f 73 ents($json->getPath());..$compos
22e40 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 72 65 70 6f er.=.$this->getComposer();.$repo
22e60 73 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 6e 61 s.=.$composer->getRepositoryMana
22e80 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 0a 24 74 68 69 73 ger()->getRepositories();..$this
22ea0 2d 3e 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 ->repos.=.new.CompositeRepositor
22ec0 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 61 72 72 61 79 28 6e 65 77 20 50 6c 61 74 66 6f 72 y(array_merge(.array(new.Platfor
22ee0 6d 52 65 70 6f 73 69 74 6f 72 79 29 2c 0a 24 72 65 70 6f 73 0a 29 29 3b 0a 0a 24 72 65 71 75 69 mRepository),.$repos.));..$requi
22f00 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 71 75 69 72 rements.=.$this->determineRequir
22f20 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 75 74 2d 3e ements($input,.$output,.$input->
22f40 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 3b 0a 0a 24 72 65 71 75 getArgument('packages'));..$requ
22f60 69 72 65 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 ireKey.=.$input->getOption('dev'
22f80 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3a 20 27 72 65 71 75 69 72 65 27 3b 0a 24 ).?.'require-dev'.:.'require';.$
22fa0 72 65 6d 6f 76 65 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 removeKey.=.$input->getOption('d
22fc0 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 27 20 3a 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 ev').?.'require'.:.'require-dev'
22fe0 3b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 5f ;.$baseRequirements.=.array_key_
23000 65 78 69 73 74 73 28 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 63 6f 6d 70 6f 73 65 72 44 65 66 exists($requireKey,.$composerDef
23020 69 6e 69 74 69 6f 6e 29 20 3f 20 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 5b 24 inition).?.$composerDefinition[$
23040 72 65 71 75 69 72 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 requireKey].:.array();.$requirem
23060 65 6e 74 73 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 ents.=.$this->formatRequirements
23080 28 24 72 65 71 75 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 ($requirements);....$versionPars
230a0 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 66 6f 72 65 61 63 er.=.new.VersionParser();.foreac
230c0 68 20 28 24 72 65 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 h.($requirements.as.$constraint)
230e0 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 .{.$versionParser->parseConstrai
23100 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 24 73 6f 72 74 50 61 63 6b 61 67 nts($constraint);.}..$sortPackag
23120 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 6f 72 74 2d 70 61 63 es.=.$input->getOption('sort-pac
23140 6b 61 67 65 73 27 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 46 69 6c 65 kages');..if.(!$this->updateFile
23160 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 6d 65 6e 74 73 Cleanly($json,.$baseRequirements
23180 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 79 2c 20 24 72 ,.$requirements,.$requireKey,.$r
231a0 65 6d 6f 76 65 4b 65 79 2c 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 29 29 20 7b 0a 66 6f 72 65 emoveKey,.$sortPackages)).{.fore
231c0 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d ach.($requirements.as.$package.=
231e0 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b >.$version).{.$baseRequirements[
23200 24 70 61 63 6b 61 67 65 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 69 66 20 28 69 73 73 65 74 $package].=.$version;..if.(isset
23220 28 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 5b 24 72 65 6d 6f 76 65 4b 65 79 5d ($composerDefinition[$removeKey]
23240 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 44 65 [$package])).{.unset($composerDe
23260 66 69 6e 69 74 69 6f 6e 5b 24 72 65 6d 6f 76 65 4b 65 79 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b finition[$removeKey][$package]);
23280 0a 7d 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 5b 24 72 65 71 75 69 .}.}..$composerDefinition[$requi
232a0 72 65 4b 65 79 5d 20 3d 20 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 3b 0a 24 6a 73 6f reKey].=.$baseRequirements;.$jso
232c0 6e 2d 3e 77 72 69 74 65 28 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d n->write($composerDefinition);.}
232e0 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 ..$this->getIO()->writeError('<i
23300 6e 66 6f 3e 27 2e 24 66 69 6c 65 2e 27 20 68 61 73 20 62 65 65 6e 20 27 2e 28 24 6e 65 77 6c 79 nfo>'.$file.'.has.been.'.($newly
23320 43 72 65 61 74 65 64 20 3f 20 27 63 72 65 61 74 65 64 27 20 3a 20 27 75 70 64 61 74 65 64 27 29 Created.?.'created'.:.'updated')
23340 2e 27 3c 2f 69 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 .'</info>');..if.($input->getOpt
23360 69 6f 6e 28 27 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 ion('no-update')).{.return.0;.}.
23380 24 75 70 64 61 74 65 44 65 76 4d 6f 64 65 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 $updateDevMode.=.!$input->getOpt
233a0 69 6f 6e 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 76 27 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e ion('update-no-dev');....$this->
233c0 72 65 73 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 resetComposer();.$composer.=.$th
233e0 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 is->getComposer();.$composer->ge
23400 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f tDownloadManager()->setOutputPro
23420 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f gress(!$input->getOption('no-pro
23440 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a gress'));.$io.=.$this->getIO();.
23460 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
23480 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 72 65 71 75 69 72 t(PluginEvents::COMMAND,.'requir
234a0 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 65 72 2d e',.$input,.$output);.$composer-
234c0 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 28 >getEventDispatcher()->dispatch(
234e0 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 61 $commandEvent->getName(),.$comma
23500 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a ndEvent);..$install.=.Installer:
23520 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 :create($io,.$composer);..$insta
23540 6c 6c 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ll.->setVerbose($input->getOptio
23560 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 75 72 63 65 28 n('verbose')).->setPreferSource(
23580 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
235a0 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f ')).->setPreferDist($input->getO
235c0 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f ption('prefer-dist')).->setDevMo
235e0 64 65 28 24 75 70 64 61 74 65 44 65 76 4d 6f 64 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 de($updateDevMode).->setUpdate(t
23600 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 61 79 5f rue).->setUpdateWhitelist(array_
23620 6b 65 79 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 29 0a 2d 3e 73 65 74 57 68 69 74 65 6c keys($requirements)).->setWhitel
23640 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f istDependencies($input->getOptio
23660 6e 28 27 75 70 64 61 74 65 2d 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 29 0a 2d n('update-with-dependencies')).-
23680 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 >setIgnorePlatformRequirements($
236a0 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 input->getOption('ignore-platfor
236c0 6d 2d 72 65 71 73 27 29 29 0a 3b 0a 0a 24 73 74 61 74 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c 2d m-reqs')).;..$status.=.$install-
236e0 3e 72 75 6e 28 29 3b 0a 69 66 20 28 24 73 74 61 74 75 73 20 21 3d 3d 20 30 29 20 7b 0a 69 66 20 >run();.if.($status.!==.0).{.if.
23700 28 24 6e 65 77 6c 79 43 72 65 61 74 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 ($newlyCreated).{.$this->getIO()
23720 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 5c 6e 22 2e 27 3c 65 72 72 6f 72 3e 49 6e 73 74 61 6c ->writeError("\n".'<error>Instal
23740 6c 61 74 69 6f 6e 20 66 61 69 6c 65 64 2c 20 64 65 6c 65 74 69 6e 67 20 27 2e 24 66 69 6c 65 2e lation.failed,.deleting.'.$file.
23760 27 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 75 6e 6c 69 6e 6b 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 '.</error>');.unlink($json->getP
23780 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d ath());.}.else.{.$this->getIO()-
237a0 3e 77 72 69 74 65 45 72 72 6f 72 28 22 5c 6e 22 2e 27 3c 65 72 72 6f 72 3e 49 6e 73 74 61 6c 6c >writeError("\n".'<error>Install
237c0 61 74 69 6f 6e 20 66 61 69 6c 65 64 2c 20 72 65 76 65 72 74 69 6e 67 20 27 2e 24 66 69 6c 65 2e ation.failed,.reverting.'.$file.
237e0 27 20 74 6f 20 69 74 73 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6e 74 65 6e 74 2e 3c 2f 65 72 72 6f '.to.its.original.content.</erro
23800 72 3e 27 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 r>');.file_put_contents($json->g
23820 65 74 50 61 74 68 28 29 2c 20 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 29 3b 0a 7d 0a 7d 0a etPath(),.$composerBackup);.}.}.
23840 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .return.$status;.}..private.func
23860 74 69 6f 6e 20 75 70 64 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 61 72 tion.updateFileCleanly($json,.ar
23880 72 61 79 20 24 62 61 73 65 2c 20 61 72 72 61 79 20 24 6e 65 77 2c 20 24 72 65 71 75 69 72 65 4b ray.$base,.array.$new,.$requireK
238a0 65 79 2c 20 24 72 65 6d 6f 76 65 4b 65 79 2c 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 29 0a 7b ey,.$removeKey,.$sortPackages).{
238c0 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 24 .$contents.=.file_get_contents($
238e0 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 20 json->getPath());..$manipulator.
23900 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 73 29 =.new.JsonManipulator($contents)
23920 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 ;..foreach.($new.as.$package.=>.
23940 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 $constraint).{.if.(!$manipulator
23960 2d 3e 61 64 64 4c 69 6e 6b 28 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 2c ->addLink($requireKey,.$package,
23980 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 29 29 20 7b 0a .$constraint,.$sortPackages)).{.
239a0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f return.false;.}.if.(!$manipulato
239c0 72 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 24 72 65 6d 6f 76 65 4b 65 79 2c 20 24 70 61 r->removeSubNode($removeKey,.$pa
239e0 63 6b 61 67 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 66 69 6c ckage)).{.return.false;.}.}..fil
23a00 65 5f 70 75 74 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 e_put_contents($json->getPath(),
23a20 20 24 6d 61 6e 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 .$manipulator->getContents());..
23a40 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 return.true;.}..protected.functi
23a60 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 69 6e 70 75 on.interact(InputInterface.$inpu
23a80 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 72 65 t,.OutputInterface.$output).{.re
23aa0 74 75 72 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 6d 65 73 turn;.}.}.<?php............names
23ac0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 pace.Composer\Command;..use.Comp
23ae0 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 20 43 6f oser\Plugin\CommandEvent;.use.Co
23b00 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 75 73 65 20 mposer\Plugin\PluginEvents;.use.
23b20 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\
23b40 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
23b60 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b onent\Console\Input\InputOption;
23b80 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f .use.Symfony\Component\Console\O
23ba0 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 73 73 utput\OutputInterface;.....class
23bc0 20 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d .DumpAutoloadCommand.extends.Com
23be0 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 mand.{.protected.function.config
23c00 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 75 6d 70 2d 61 75 ure().{.$this.->setName('dump-au
23c20 74 6f 6c 6f 61 64 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 64 75 6d toload').->setAliases(array('dum
23c40 70 61 75 74 6f 6c 6f 61 64 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 pautoload')).->setDescription('D
23c60 75 6d 70 73 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e umps.the.autoloader').->setDefin
23c80 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 6f 70 ition(array(.new.InputOption('op
23ca0 74 69 6d 69 7a 65 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 timize',.'o',.InputOption::VALUE
23cc0 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 73 20 50 53 52 30 20 61 6e 64 20 50 53 52 34 20 _NONE,.'Optimizes.PSR0.and.PSR4.
23ce0 70 61 63 6b 61 67 65 73 20 74 6f 20 62 65 20 6c 6f 61 64 65 64 20 77 69 74 68 20 63 6c 61 73 73 packages.to.be.loaded.with.class
23d00 6d 61 70 73 20 74 6f 6f 2c 20 67 6f 6f 64 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e 2e 27 29 maps.too,.good.for.production.')
23d20 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 75 6c 6c ,.new.InputOption('no-dev',.null
23d40 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
23d60 62 6c 65 73 20 61 75 74 6f 6c 6f 61 64 2d 64 65 76 20 72 75 6c 65 73 2e 27 29 2c 0a 29 29 0a 2d bles.autoload-dev.rules.'),.)).-
23d80 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 >setHelp(<<<EOT.<info>php.compos
23da0 65 72 2e 70 68 61 72 20 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 er.phar.dump-autoload</info>.EOT
23dc0 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
23de0 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
23e00 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d Interface.$output).{.$composer.=
23e20 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 6e 64 .$this->getComposer();..$command
23e40 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 45 Event.=.new.CommandEvent(PluginE
23e60 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 27 2c vents::COMMAND,.'dump-autoload',
23e80 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 2d 3e 67 65 .$input,.$output);.$composer->ge
23ea0 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 28 24 63 6f tEventDispatcher()->dispatch($co
23ec0 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 61 6e 64 45 mmandEvent->getName(),.$commandE
23ee0 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 vent);..$installationManager.=.$
23f00 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 composer->getInstallationManager
23f20 28 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 ();.$localRepo.=.$composer->getR
23f40 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 65 70 6f epositoryManager()->getLocalRepo
23f60 73 69 74 6f 72 79 28 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e sitory();.$package.=.$composer->
23f80 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 getPackage();.$config.=.$compose
23fa0 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 6f 70 74 69 6d 69 7a 65 20 3d 20 24 69 6e r->getConfig();..$optimize.=.$in
23fc0 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 29 20 7c 7c 20 24 63 put->getOption('optimize').||.$c
23fe0 6f 6e 66 69 67 2d 3e 67 65 74 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 onfig->get('optimize-autoloader'
24000 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 ).||.$config->get('classmap-auth
24020 6f 72 69 74 61 74 69 76 65 27 29 3b 0a 0a 69 66 20 28 24 6f 70 74 69 6d 69 7a 65 29 20 7b 0a 24 oritative');..if.($optimize).{.$
24040 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f this->getIO()->writeError('<info
24060 3e 47 65 6e 65 72 61 74 69 6e 67 20 6f 70 74 69 6d 69 7a 65 64 20 61 75 74 6f 6c 6f 61 64 20 66 >Generating.optimized.autoload.f
24080 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 iles</info>');.}.else.{.$this->g
240a0 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 etIO()->writeError('<info>Genera
240c0 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a ting.autoload.files</info>');.}.
240e0 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f .$generator.=.$composer->getAuto
24100 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 67 65 6e 65 72 61 74 6f 72 2d 3e 73 65 74 loadGenerator();.$generator->set
24120 44 65 76 4d 6f 64 65 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 DevMode(!$input->getOption('no-d
24140 65 76 27 29 29 3b 0a 24 67 65 6e 65 72 61 74 6f 72 2d 3e 64 75 6d 70 28 24 63 6f 6e 66 69 67 2c ev'));.$generator->dump($config,
24160 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 61 .$localRepo,.$package,.$installa
24180 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 6f 70 74 69 6d 69 tionManager,.'composer',.$optimi
241a0 7a 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ze);.}.}.<?php............namesp
241c0 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
241e0 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ser\Factory;.use.Symfony\Compone
24200 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b nt\Console\Input\InputInterface;
24220 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
24240 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 6e 79 5c nput\InputArgument;.use.Symfony\
24260 43 6f 6d 70 6f 6e 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 Component\Console\Input\StringIn
24280 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 6f put;.use.Symfony\Component\Conso
242a0 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 63 le\Output\OutputInterface;.....c
242c0 6c 61 73 73 20 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 lass.GlobalCommand.extends.Comma
242e0 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
24300 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 67 6c 6f 62 61 6c 27 29 0a e().{.$this.->setName('global').
24320 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 6c 6c 6f 77 73 20 72 75 6e 6e 69 6e 67 ->setDescription('Allows.running
24340 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6d 70 6f 73 65 72 .commands.in.the.global.composer
24360 20 64 69 72 20 28 24 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 29 2e 27 29 0a 2d 3e 73 65 74 44 65 .dir.($COMPOSER_HOME).').->setDe
24380 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 65 6e finition(array(.new.InputArgumen
243a0 74 28 27 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a t('command-name',.InputArgument:
243c0 3a 52 45 51 55 49 52 45 44 2c 20 27 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e :REQUIRED,.''),.new.InputArgumen
243e0 74 28 27 61 72 67 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 t('args',.InputArgument::IS_ARRA
24400 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 27 29 Y.|.InputArgument::OPTIONAL,.'')
24420 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 55 73 65 20 74 68 69 73 20 63 ,.)).->setHelp(<<<EOT.Use.this.c
24440 6f 6d 6d 61 6e 64 20 61 73 20 61 20 77 72 61 70 70 65 72 20 74 6f 20 72 75 6e 20 6f 74 68 65 72 ommand.as.a.wrapper.to.run.other
24460 20 43 6f 6d 70 6f 73 65 72 20 63 6f 6d 6d 61 6e 64 73 0a 77 69 74 68 69 6e 20 74 68 65 20 67 6c .Composer.commands.within.the.gl
24480 6f 62 61 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 2e 0a 0a obal.context.of.COMPOSER_HOME...
244a0 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 43 4c 49 20 You.can.use.this.to.install.CLI.
244c0 75 74 69 6c 69 74 69 65 73 20 67 6c 6f 62 61 6c 6c 79 2c 20 61 6c 6c 20 79 6f 75 20 6e 65 65 64 utilities.globally,.all.you.need
244e0 0a 69 73 20 74 6f 20 61 64 64 20 74 68 65 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 2f 76 65 6e .is.to.add.the.COMPOSER_HOME/ven
24500 64 6f 72 2f 62 69 6e 20 64 69 72 20 74 6f 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 20 76 61 72 dor/bin.dir.to.your.PATH.env.var
24520 2e 0a 0a 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 69 73 20 63 3a 5c 55 73 65 72 73 5c 3c 75 73 ...COMPOSER_HOME.is.c:\Users\<us
24540 65 72 3e 5c 41 70 70 44 61 74 61 5c 52 6f 61 6d 69 6e 67 5c 43 6f 6d 70 6f 73 65 72 20 6f 6e 20 er>\AppData\Roaming\Composer.on.
24560 57 69 6e 64 6f 77 73 0a 61 6e 64 20 2f 68 6f 6d 65 2f 3c 75 73 65 72 3e 2f 2e 63 6f 6d 70 6f 73 Windows.and./home/<user>/.compos
24580 65 72 20 6f 6e 20 75 6e 69 78 20 73 79 73 74 65 6d 73 2e 0a 0a 4e 6f 74 65 3a 20 54 68 69 73 20 er.on.unix.systems...Note:.This.
245a0 70 61 74 68 20 6d 61 79 20 76 61 72 79 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 63 75 73 74 6f path.may.vary.depending.on.custo
245c0 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20 62 69 6e 2d 64 69 72 20 69 6e 0a 63 6f 6d 70 6f 73 65 72 mizations.to.bin-dir.in.composer
245e0 2e 6a 73 6f 6e 20 6f 72 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 61 6c 20 76 61 72 69 61 .json.or.the.environmental.varia
24600 62 6c 65 20 43 4f 4d 50 4f 53 45 52 5f 42 49 4e 5f 44 49 52 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d ble.COMPOSER_BIN_DIR...EOT.).;.}
24620 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 49 6e 74 65 72 ..public.function.run(InputInter
24640 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 75 face.$input,.OutputInterface.$ou
24660 74 70 75 74 29 0a 7b 0a 0a 20 24 74 6f 6b 65 6e 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 tput).{...$tokens.=.preg_split('
24680 7b 5c 73 2b 7d 27 2c 20 24 69 6e 70 75 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 24 {\s+}',.$input->__toString());.$
246a0 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 args.=.array();.foreach.($tokens
246c0 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 26 20 24 74 6f 6b .as.$token).{.if.($token.&&.$tok
246e0 65 6e 5b 30 5d 20 21 3d 3d 20 27 2d 27 29 20 7b 0a 24 61 72 67 73 5b 5d 20 3d 20 24 74 6f 6b 65 en[0].!==.'-').{.$args[].=.$toke
24700 6e 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 72 67 73 29 20 3e 3d 20 32 29 20 7b 0a 62 72 65 61 n;.if.(count($args).>=.2).{.brea
24720 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 61 72 67 73 29 20 3c 20 32 k;.}.}.}....if.(count($args).<.2
24740 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 ).{.return.parent::run($input,.$
24760 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a output);.}....$config.=.Factory:
24780 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 63 68 64 69 72 28 24 63 6f 6e 66 69 67 2d 3e :createConfig();.chdir($config->
247a0 67 65 74 28 27 68 6f 6d 65 27 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 get('home'));.$this->getIO()->wr
247c0 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 43 68 61 6e 67 65 64 20 63 75 72 72 65 6e 74 20 iteError('<info>Changed.current.
247e0 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
24800 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.
24820 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(?
24840 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}'
24860 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));
24880 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()
248a0 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
248c0 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\
248e0 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 Command;..use.Composer\Config\Js
24900 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 72 5c 49 6e 73 onConfigSource;.use.Composer\Ins
24920 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
24940 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
24960 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 4a 73 6f 6e 5c 4a 73 uginEvents;.use.Composer\Json\Js
24980 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 0a 75 73 onFile;.use.Composer\Factory;.us
249a0 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
249c0 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 6f t\InputInterface;.use.Symfony\Co
249e0 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 6f mponent\Console\Input\InputOptio
24a00 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
24a20 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 6e \Input\InputArgument;.use.Symfon
24a40 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 y\Component\Console\Output\Outpu
24a60 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d 6f 76 65 43 6f 6d tInterface;......class.RemoveCom
24a80 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
24aa0 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.->
24ac0 73 65 74 4e 61 6d 65 28 27 72 65 6d 6f 76 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 setName('remove').->setDescripti
24ae0 6f 6e 28 27 52 65 6d 6f 76 65 73 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 74 68 65 20 72 on('Removes.a.package.from.the.r
24b00 65 71 75 69 72 65 20 6f 72 20 72 65 71 75 69 72 65 2d 64 65 76 27 29 0a 2d 3e 73 65 74 44 65 66 equire.or.require-dev').->setDef
24b20 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
24b40 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 ('packages',.InputArgument::IS_A
24b60 52 52 41 59 2c 20 27 50 61 63 6b 61 67 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 72 RRAY,.'Packages.that.should.be.r
24b80 65 6d 6f 76 65 64 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 emoved.'),.new.InputOption('dev'
24ba0 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,
24bc0 20 27 52 65 6d 6f 76 65 73 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 74 68 65 20 72 65 71 .'Removes.a.package.from.the.req
24be0 75 69 72 65 2d 64 65 76 20 73 65 63 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 uire-dev.section.'),.new.InputOp
24c00 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 6e 70 75 74 4f tion('no-progress',.null,.InputO
24c20 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
24c40 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 20 49 6e 70 75 t.download.progress.'),.new.Inpu
24c60 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 tOption('no-update',.null,.Input
24c80 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 74 68 Option::VALUE_NONE,.'Disables.th
24ca0 65 20 61 75 74 6f 6d 61 74 69 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 64 65 70 65 6e 64 e.automatic.update.of.the.depend
24cc0 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 encies.'),.new.InputOption('upda
24ce0 74 65 2d 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 3a 56 te-no-dev',.null,.InputOption::V
24d00 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 52 75 6e 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 79 20 75 ALUE_NONE,.'Run.the.dependency.u
24d20 70 64 61 74 65 20 77 69 74 68 20 74 68 65 20 2d 2d 6e 6f 2d 64 65 76 20 6f 70 74 69 6f 6e 2e 27 pdate.with.the.--no-dev.option.'
24d40 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 77 69 74 68 2d ),.new.InputOption('update-with-
24d60 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
24d80 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 6c 6c 6f 77 73 20 69 6e 68 65 72 69 74 65 64 20 ::VALUE_NONE,.'Allows.inherited.
24da0 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 62 65 20 75 70 64 61 74 65 64 20 77 69 74 68 20 dependencies.to.be.updated.with.
24dc0 65 78 70 6c 69 63 69 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e explicit.dependencies.'),.new.In
24de0 70 75 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 putOption('ignore-platform-reqs'
24e00 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,
24e20 20 27 49 67 6e 6f 72 65 20 70 6c 61 74 66 6f 72 6d 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 28 .'Ignore.platform.requirements.(
24e40 70 68 70 20 26 20 65 78 74 2d 20 70 61 63 6b 61 67 65 73 29 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 php.&.ext-.packages).'),.)).->se
24e60 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 72 65 6d 6f 76 65 3c 2f 69 tHelp(<<<EOT.The.<info>remove</i
24e80 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 6d 6f 76 65 73 20 61 20 70 61 63 6b 61 67 65 20 66 nfo>.command.removes.a.package.f
24ea0 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 0a 6c 69 73 74 20 6f 66 20 69 6e 73 74 61 6c 6c 65 rom.the.current.list.of.installe
24ec0 64 20 70 61 63 6b 61 67 65 73 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 d.packages..<info>php.composer.p
24ee0 68 61 72 20 72 65 6d 6f 76 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 har.remove</info>..EOT.).;.}..pr
24f00 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e otected.function.execute(InputIn
24f20 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 terface.$input,.OutputInterface.
24f40 24 6f 75 74 70 75 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 $output).{.$packages.=.$input->g
24f60 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 3b 0a 0a 24 66 69 6c 65 20 3d etArgument('packages');..$file.=
24f80 20 46 61 63 74 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 24 6a .Factory::getComposerFile();..$j
24fa0 73 6f 6e 46 69 6c 65 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 sonFile.=.new.JsonFile($file);.$
24fc0 63 6f 6d 70 6f 73 65 72 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 24 63 composer.=.$jsonFile->read();.$c
24fe0 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 omposerBackup.=.file_get_content
25000 73 28 24 6a 73 6f 6e 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 0a 24 6a 73 6f 6e 20 s($jsonFile->getPath());..$json.
25020 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 6a 73 6f 6e 46 69 6c 65 =.new.JsonConfigSource($jsonFile
25040 29 3b 0a 0a 24 74 79 70 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 );..$type.=.$input->getOption('d
25060 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3a 20 27 72 65 71 75 69 72 65 27 ev').?.'require-dev'.:.'require'
25080 3b 0a 24 61 6c 74 54 79 70 65 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 ;.$altType.=.!$input->getOption(
250a0 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3a 20 27 72 65 71 75 69 72 'dev').?.'require-dev'.:.'requir
250c0 65 27 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 6b e';..foreach.($packages.as.$pack
250e0 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 24 74 79 70 65 age).{.if.(isset($composer[$type
25100 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 24 6a 73 6f 6e 2d 3e 72 65 6d 6f 76 65 4c 69 6e ][$package])).{.$json->removeLin
25120 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 k($type,.$package);.}.elseif.(is
25140 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 24 61 6c 74 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 set($composer[$altType][$package
25160 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 ])).{.$this->getIO()->writeError
25180 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 63 6f 75 6c 64 20 6e 6f ('<warning>'.$package.'.could.no
251a0 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 27 2e 24 74 79 70 65 2e 27 20 62 75 74 20 69 74 20 69 t.be.found.in.'.$type.'.but.it.i
251c0 73 20 70 72 65 73 65 6e 74 20 69 6e 20 27 2e 24 61 6c 74 54 79 70 65 2e 27 3c 2f 77 61 72 6e 69 s.present.in.'.$altType.'</warni
251e0 6e 67 3e 27 29 3b 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 ng>');.$dialog.=.$this->getHelpe
25200 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 69 66 20 28 24 74 68 69 73 rSet()->get('dialog');.if.($this
25220 2d 3e 67 65 74 49 4f 28 29 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 69 66 ->getIO()->isInteractive()).{.if
25240 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 6e 28 24 6f 75 74 70 .($dialog->askConfirmation($outp
25260 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 44 6f 20 79 6f 75 ut,.$dialog->getQuestion('Do.you
25280 20 77 61 6e 74 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 20 66 72 6f 6d 20 27 2e 24 61 6c 74 54 79 .want.to.remove.it.from.'.$altTy
252a0 70 65 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 6a 73 6f 6e 2d pe,.'yes',.'?'),.true)).{.$json-
252c0 3e 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 61 6c 74 54 79 70 65 2c 20 24 70 61 63 6b 61 67 65 29 3b >removeLink($altType,.$package);
252e0 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 .}.}.}.else.{.$this->getIO()->wr
25300 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 iteError('<warning>'.$package.'.
25320 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 20 69 6e 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 is.not.required.in.your.composer
25340 2e 6a 73 6f 6e 20 61 6e 64 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 3c 2f .json.and.has.not.been.removed</
25360 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 warning>');.}.}..if.($input->get
25380 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b Option('no-update')).{.return.0;
253a0 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 .}....$composer.=.$this->getComp
253c0 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 oser();.$composer->getDownloadMa
253e0 6e 61 67 65 72 28 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 nager()->setOutputProgress(!$inp
25400 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 ut->getOption('no-progress'));.$
25420 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 io.=.$this->getIO();..$commandEv
25440 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 45 76 65 ent.=.new.CommandEvent(PluginEve
25460 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 69 6e 70 75 74 2c 20 nts::COMMAND,.'remove',.$input,.
25480 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 44 69 73 $output);.$composer->getEventDis
254a0 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 76 65 6e patcher()->dispatch($commandEven
254c0 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 0a 0a 24 t->getName(),.$commandEvent);..$
254e0 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c install.=.Installer::create($io,
25500 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 75 70 64 61 74 65 44 65 76 4d 6f 64 65 20 3d 20 21 .$composer);..$updateDevMode.=.!
25520 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 76 $input->getOption('update-no-dev
25540 27 29 3b 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 70 75 74 ');.$install.->setVerbose($input
25560 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 44 65 76 ->getOption('verbose')).->setDev
25580 4d 6f 64 65 28 24 75 70 64 61 74 65 44 65 76 4d 6f 64 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 Mode($updateDevMode).->setUpdate
255a0 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 24 70 61 63 (true).->setUpdateWhitelist($pac
255c0 6b 61 67 65 73 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 kages).->setWhitelistDependencie
255e0 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 77 69 74 68 s($input->getOption('update-with
25600 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 -dependencies')).->setIgnorePlat
25620 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 formRequirements($input->getOpti
25640 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 29 29 0a 3b 0a 0a 24 on('ignore-platform-reqs')).;..$
25660 73 74 61 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 status.=.$install->run();.if.($s
25680 74 61 74 75 73 20 21 3d 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 tatus.!==.0).{.$this->getIO()->w
256a0 72 69 74 65 45 72 72 6f 72 28 22 5c 6e 22 2e 27 3c 65 72 72 6f 72 3e 52 65 6d 6f 76 61 6c 20 66 riteError("\n".'<error>Removal.f
256c0 61 69 6c 65 64 2c 20 72 65 76 65 72 74 69 6e 67 20 27 2e 24 66 69 6c 65 2e 27 20 74 6f 20 69 74 ailed,.reverting.'.$file.'.to.it
256e0 73 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6e 74 65 6e 74 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 66 s.original.content.</error>');.f
25700 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 46 69 6c 65 2d 3e 67 65 74 50 ile_put_contents($jsonFile->getP
25720 61 74 68 28 29 2c 20 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 29 3b 0a 7d 0a 0a 72 65 74 75 ath(),.$composerBackup);.}..retu
25740 72 6e 20 24 73 74 61 74 75 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$status;.}.}.<?php...........
25760 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 5c 48 65 6c 70 .namespace.Composer\Command\Help
25780 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 73 6f er;..use.Symfony\Component\Conso
257a0 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 61 73 20 42 61 73 65 44 69 le\Helper\DialogHelper.as.BaseDi
257c0 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 alogHelper;..class.DialogHelper.
257e0 65 78 74 65 6e 64 73 20 42 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a extends.BaseDialogHelper.{......
25800 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 51 75 65 73 74 69 6f ......public.function.getQuestio
25820 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 73 n($question,.$default.=.null,.$s
25840 65 70 20 3d 20 27 3a 27 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 20 21 3d 3d 20 ep.=.':').{.return.$default.!==.
25860 6e 75 6c 6c 20 3f 0a 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 null.?.sprintf('<info>%s</info>.
25880 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 25 73 20 27 2c 20 24 71 75 [<comment>%s</comment>]%s.',.$qu
258a0 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 73 65 70 29 20 3a 0a 73 70 72 69 6e 74 estion,.$default,.$sep).:.sprint
258c0 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 25 73 20 27 2c 20 24 71 75 65 73 74 69 6f f('<info>%s</info>%s.',.$questio
258e0 6e 2c 20 24 73 65 70 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e n,.$sep);.}.}.<?php............n
25900 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.
25920 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\
25940 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
25960 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b onent\Console\Input\InputOption;
25980 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f .use.Symfony\Component\Console\O
259a0 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 43 6f 6d 70 6f utput\OutputInterface;.use.Compo
259c0 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 ser\Downloader\ChangeReportInter
259e0 66 61 63 65 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 61 6e face;.use.Composer\Plugin\Comman
25a00 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 75 67 dEvent;.use.Composer\Plugin\Plug
25a20 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 inEvents;.use.Composer\Script\Sc
25a40 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 61 74 75 73 43 6f 6d riptEvents;......class.StatusCom
25a60 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
25a80 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.->
25aa0 73 65 74 4e 61 6d 65 28 27 73 74 61 74 75 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 setName('status').->setDescripti
25ac0 6f 6e 28 27 53 68 6f 77 20 61 20 6c 69 73 74 20 6f 66 20 6c 6f 63 61 6c 6c 79 20 6d 6f 64 69 66 on('Show.a.list.of.locally.modif
25ae0 69 65 64 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 ied.packages').->setDefinition(a
25b00 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c rray(.new.InputOption('verbose',
25b20 20 27 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f .'v|vv|vvv',.InputOption::VALUE_
25b40 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 20 66 6f 72 20 65 NONE,.'Show.modified.files.for.e
25b60 61 63 68 20 64 69 72 65 63 74 6f 72 79 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 63 68 61 6e ach.directory.that.contains.chan
25b80 67 65 73 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 ges.'),.)).->setHelp(<<<EOT.The.
25ba0 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 61 20 6c 69 73 74 20 6f status.command.displays.a.list.o
25bc0 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 68 61 74 20 68 61 76 65 0a 62 65 65 6e 20 6d 6f f.dependencies.that.have.been.mo
25be0 64 69 66 69 65 64 20 6c 6f 63 61 6c 6c 79 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 dified.locally...EOT.).;.}..prot
25c00 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
25c20 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
25c40 75 74 70 75 74 29 0a 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 utput).{...$composer.=.$this->ge
25c60 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 65 tComposer();..$commandEvent.=.ne
25c80 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
25ca0 4d 41 4e 44 2c 20 27 73 74 61 74 75 73 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 MAND,.'status',.$input,.$output)
25cc0 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 28 ;.$composer->getEventDispatcher(
25ce0 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 61 )->dispatch($commandEvent->getNa
25d00 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 65 me(),.$commandEvent);..$installe
25d20 64 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 dRepo.=.$composer->getRepository
25d40 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b Manager()->getLocalRepository();
25d60 0a 0a 24 64 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 ..$dm.=.$composer->getDownloadMa
25d80 6e 61 67 65 72 28 29 3b 0a 24 69 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 nager();.$im.=.$composer->getIns
25da0 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 tallationManager();....$composer
25dc0 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
25de0 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 53 54 41 54 55 53 5f Script(ScriptEvents::PRE_STATUS_
25e00 43 4d 44 2c 20 74 72 75 65 29 3b 0a 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a CMD,.true);..$errors.=.array();.
25e20 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 ...foreach.($installedRepo->getP
25e40 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 64 6f 77 6e 6c 6f ackages().as.$package).{.$downlo
25e60 61 64 65 72 20 3d 20 24 64 6d 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 ader.=.$dm->getDownloaderForInst
25e80 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 64 6f alledPackage($package);..if.($do
25ea0 77 6e 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 68 61 6e 67 65 52 65 70 6f 72 74 wnloader.instanceof.ChangeReport
25ec0 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 69 6d 2d 3e 67 Interface).{.$targetDir.=.$im->g
25ee0 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 69 66 20 28 24 63 etInstallPath($package);..if.($c
25f00 68 61 6e 67 65 73 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 hanges.=.$downloader->getLocalCh
25f20 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 29 20 7b 0a 24 anges($package,.$targetDir)).{.$
25f40 65 72 72 6f 72 73 5b 24 74 61 72 67 65 74 44 69 72 5d 20 3d 20 24 63 68 61 6e 67 65 73 3b 0a 7d errors[$targetDir].=.$changes;.}
25f60 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 .}.}....if.(!$errors).{.$this->g
25f80 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 4e 6f 20 6c 6f 63 etIO()->writeError('<info>No.loc
25fa0 61 6c 20 63 68 61 6e 67 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 al.changes</info>');.}.else.{.$t
25fc0 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 his->getIO()->writeError('<error
25fe0 3e 59 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 >You.have.changes.in.the.followi
26000 6e 67 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 ng.dependencies:</error>');.}..f
26020 6f 72 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 oreach.($errors.as.$path.=>.$cha
26040 6e 67 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 nges).{.if.($input->getOption('v
26060 65 72 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 erbose')).{.$indentedChanges.=.i
26080 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.
260a0 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 20 2e 20 6c 74 72 69 6d 28 ($line).{.return.'....'...ltrim(
260c0 24 6c 69 6e 65 29 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 63 68 61 6e 67 65 $line);.},.explode("\n",.$change
260e0 73 29 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e s)));.$this->getIO()->write('<in
26100 66 6f 3e 27 2e 24 70 61 74 68 2e 27 3c 2f 69 6e 66 6f 3e 3a 27 29 3b 0a 24 74 68 69 73 2d 3e 67 fo>'.$path.'</info>:');.$this->g
26120 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 69 6e 64 65 6e 74 65 64 43 68 61 6e 67 65 73 29 3b etIO()->write($indentedChanges);
26140 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 .}.else.{.$this->getIO()->write(
26160 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 72 72 6f 72 73 20 26 26 20 21 24 69 6e $path);.}.}..if.($errors.&&.!$in
26180 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 20 7b 0a 24 74 68 put->getOption('verbose')).{.$th
261a0 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 55 73 65 20 2d 2d 76 is->getIO()->writeError('Use.--v
261c0 65 72 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 erbose.(-v).to.see.modified.file
261e0 73 27 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 s');.}....$composer->getEventDis
26200 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 patcher()->dispatchScript(Script
26220 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 65 29 3b 0a Events::POST_STATUS_CMD,.true);.
26240 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 0a 3c 3f 70 .return.$errors.?.1.:.0;.}.}.<?p
26260 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
26280 5c 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 \Command;..use.Composer\Dependen
262a0 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 6f 73 65 72 5c 4a 73 cyResolver\Pool;.use.Composer\Js
262c0 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 46 61 63 74 6f 72 on\JsonFile;.use.Composer\Factor
262e0 79 3b 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 y;.use.Composer\Package\BasePack
26300 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 6f age;.use.Composer\Package\Versio
26320 6e 5c 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c n\VersionSelector;.use.Composer\
26340 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;.
26360 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 6f 72 6d use.Composer\Repository\Platform
26380 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 50 61 63 6b 61 67 65 Repository;.use.Composer\Package
263a0 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 \Version\VersionParser;.use.Comp
263c0 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 53 oser\Util\ProcessExecutor;.use.S
263e0 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
26400 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 6f nputInterface;.use.Symfony\Compo
26420 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a nent\Console\Input\InputOption;.
26440 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
26460 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
26480 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 3b 0a 75 73 65 y\Component\Process\Process;.use
264a0 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 65 63 75 .Symfony\Component\Process\Execu
264c0 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 69 74 43 6f 6d 6d tableFinder;......class.InitComm
264e0 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 20 and.extends.Command.{.protected.
26500 24 72 65 70 6f 73 3b 0a 0a 70 72 69 76 61 74 65 20 24 67 69 74 43 6f 6e 66 69 67 3b 0a 70 72 69 $repos;..private.$gitConfig;.pri
26520 76 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 vate.$pool;..public.function.par
26540 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 0a 7b 0a 69 66 20 28 70 72 seAuthorString($author).{.if.(pr
26560 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 3f 50 3c 6e 61 6d 65 3e 5b 2d 20 5c 2e 2c 5c 70 7b 4c 7d eg_match('/^(?P<name>[-.\.,\p{L}
26580 5c 27 e2 80 99 5d 2b 29 20 3c 28 3f 50 3c 65 6d 61 69 6c 3e 2e 2b 3f 29 3e 24 2f 75 27 2c 20 24 \'...]+).<(?P<email>.+?)>$/u',.$
265a0 61 75 74 68 6f 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 author,.$match)).{.if.($this->is
265c0 56 61 6c 69 64 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 ValidEmail($match['email'])).{.r
265e0 65 74 75 72 6e 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 eturn.array(.'name'.=>.trim($mat
26600 63 68 5b 27 6e 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 ch['name']),.'email'.=>.$match['
26620 65 6d 61 69 6c 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 email'].);.}.}..throw.new.\Inval
26640 69 64 41 72 67 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 idArgumentException(.'Invalid.au
26660 74 68 6f 72 20 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 thor.string...Must.be.in.the.for
26680 6d 61 74 3a 20 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 mat:.'..'John.Smith.<john@exampl
266a0 65 2e 63 6f 6d 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 e.com>'.);.}..protected.function
266c0 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
266e0 69 6e 69 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 73 init').->setDescription('Creates
26700 20 61 20 62 61 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 .a.basic.composer.json.file.in.c
26720 75 72 72 65 6e 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 urrent.directory.').->setDefinit
26740 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 6e 61 6d 65 ion(array(.new.InputOption('name
26760 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 ',.null,.InputOption::VALUE_REQU
26780 49 52 45 44 2c 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 IRED,.'Name.of.the.package'),.ne
267a0 77 20 49 6e 70 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 w.InputOption('description',.nul
267c0 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 20 l,.InputOption::VALUE_REQUIRED,.
267e0 27 44 65 73 63 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 'Description.of.package'),.new.I
26800 6e 70 75 74 4f 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 nputOption('author',.null,.Input
26820 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 41 75 74 68 6f 72 20 Option::VALUE_REQUIRED,.'Author.
26840 6e 61 6d 65 20 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 name.of.package'),...new.InputOp
26860 74 69 6f 6e 28 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 tion('homepage',.null,.InputOpti
26880 6f 6e 3a 3a 56 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 on::VALUE_REQUIRED,.'Homepage.of
268a0 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 .package'),.new.InputOption('req
268c0 75 69 72 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f uire',.null,.InputOption::VALUE_
268e0 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 45 5f 52 45 IS_ARRAY.|.InputOption::VALUE_RE
26900 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 77 69 74 68 QUIRED,.'Package.to.require.with
26920 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f .a.version.constraint,.e.g..foo/
26940 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 bar:1.0.0.or.foo/bar=1.0.0.or."f
26960 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e oo/bar.1.0.0"'),.new.InputOption
26980 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f ('require-dev',.null,.InputOptio
269a0 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a n::VALUE_IS_ARRAY.|.InputOption:
269c0 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 :VALUE_REQUIRED,.'Package.to.req
269e0 75 69 72 65 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 77 69 74 68 20 61 20 76 65 72 73 uire.for.development.with.a.vers
26a00 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 2e 30 ion.constraint,.e.g..foo/bar:1.0
26a20 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 72 20 .0.or.foo/bar=1.0.0.or."foo/bar.
26a40 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 73 74 61 62 69 1.0.0"'),.new.InputOption('stabi
26a60 6c 69 74 79 27 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 lity',.'s',.InputOption::VALUE_R
26a80 45 51 55 49 52 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 EQUIRED,.'Minimum.stability.(emp
26aa0 74 79 20 6f 72 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 ty.or.one.of:.'.implode(',.',.ar
26ac0 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 ray_keys(BasePackage::$stabiliti
26ae0 65 73 29 29 2e 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 es)).')'),.new.InputOption('lice
26b00 6e 73 65 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 5f 52 45 nse',.'l',.InputOption::VALUE_RE
26b20 51 55 49 52 45 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 QUIRED,.'License.of.package'),.)
26b40 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 69 ).->setHelp(<<<EOT.The.<info>ini
26b60 74 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 20 62 61 73 69 63 t</info>.command.creates.a.basic
26b80 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 .composer.json.file.in.the.curre
26ba0 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 nt.directory...<info>php.compose
26bc0 72 2e 70 68 61 72 20 69 6e 69 74 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 r.phar.init</info>..EOT.).;.}..p
26be0 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
26c00 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
26c20 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 .$output).{.$dialog.=.$this->get
26c40 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 77 68 HelperSet()->get('dialog');..$wh
26c60 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 2c 20 27 64 65 73 63 72 69 70 itelist.=.array('name',.'descrip
26c80 74 69 6f 6e 27 2c 20 27 61 75 74 68 6f 72 27 2c 20 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 72 65 tion',.'author',.'homepage',.'re
26ca0 71 75 69 72 65 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 quire',.'require-dev',.'stabilit
26cc0 79 27 2c 20 27 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 y',.'license');..$options.=.arra
26ce0 79 5f 66 69 6c 74 65 72 28 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e y_filter(array_intersect_key($in
26d00 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 put->getOptions(),.array_flip($w
26d20 68 69 74 65 6c 69 73 74 29 29 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 hitelist)));..if.(isset($options
26d40 5b 27 61 75 74 68 6f 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 ['author'])).{.$options['authors
26d60 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f '].=.$this->formatAuthors($optio
26d80 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 ns['author']);.unset($options['a
26da0 75 74 68 6f 72 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 uthor']);.}..if.(isset($options[
26dc0 27 73 74 61 62 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 'stability'])).{.$options['minim
26de0 75 6d 2d 73 74 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 um-stability'].=.$options['stabi
26e00 6c 69 74 79 27 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 lity'];.unset($options['stabilit
26e20 79 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 69 y']);.}..$options['require'].=.i
26e40 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3f 20 24 74 68 69 sset($options['require']).?.$thi
26e60 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 s->formatRequirements($options['
26e80 72 65 71 75 69 72 65 27 5d 29 20 3a 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 69 66 20 28 require']).:.new.\stdClass;.if.(
26ea0 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 array().===.$options['require'])
26ec0 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 6e 65 77 20 5c 73 74 .{.$options['require'].=.new.\st
26ee0 64 43 6c 61 73 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 dClass;.}..if.(isset($options['r
26f00 65 71 75 69 72 65 2d 64 65 76 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 equire-dev'])).{.$options['requi
26f20 72 65 2d 64 65 76 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d re-dev'].=.$this->formatRequirem
26f40 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 3b 0a 69 ents($options['require-dev']);.i
26f60 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 f.(array().===.$options['require
26f80 2d 64 65 76 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 -dev']).{.$options['require-dev'
26fa0 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 ].=.new.\stdClass;.}.}..$file.=.
26fc0 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a new.JsonFile('composer.json');..
26fe0 24 6a 73 6f 6e 20 3d 20 24 66 69 6c 65 2d 3e 65 6e 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b $json.=.$file->encode($options);
27000 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b ..if.($input->isInteractive()).{
27020 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 .$this->getIO()->writeError(arra
27040 79 28 0a 27 27 2c 0a 24 6a 73 6f 6e 2c 0a 27 27 0a 29 29 3b 0a 69 66 20 28 21 24 64 69 61 6c 6f y(.'',.$json,.''.));.if.(!$dialo
27060 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 g->askConfirmation($output,.$dia
27080 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 44 6f 20 79 6f 75 20 63 6f 6e 66 69 72 6d log->getQuestion('Do.you.confirm
270a0 20 67 65 6e 65 72 61 74 69 6f 6e 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 .generation',.'yes',.'?'),.true)
270c0 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 ).{.$this->getIO()->writeError('
270e0 3c 65 72 72 6f 72 3e 43 6f 6d 6d 61 6e 64 20 61 62 6f 72 74 65 64 3c 2f 65 72 72 6f 72 3e 27 29 <error>Command.aborted</error>')
27100 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 ;..return.1;.}.}..$file->write($
27120 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 options);..if.($input->isInterac
27140 74 69 76 65 28 29 20 26 26 20 69 73 5f 64 69 72 28 27 2e 67 69 74 27 29 29 20 7b 0a 24 69 67 6e tive().&&.is_dir('.git')).{.$ign
27160 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 67 69 74 69 67 6e 6f 72 65 27 29 oreFile.=.realpath('.gitignore')
27180 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 69 67 6e 6f 72 65 46 69 6c 65 29 20 7b 0a ;..if.(false.===.$ignoreFile).{.
271a0 24 69 67 6e 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 27 29 20 2e 20 27 2f $ignoreFile.=.realpath('.')...'/
271c0 2e 67 69 74 69 67 6e 6f 72 65 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 56 .gitignore';.}..if.(!$this->hasV
271e0 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 24 71 75 65 endorIgnore($ignoreFile)).{.$que
27200 73 74 69 6f 6e 20 3d 20 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 68 65 20 3c 69 6e 66 stion.=.'Would.you.like.the.<inf
27220 6f 3e 76 65 6e 64 6f 72 3c 2f 69 6e 66 6f 3e 20 64 69 72 65 63 74 6f 72 79 20 61 64 64 65 64 20 o>vendor</info>.directory.added.
27240 74 6f 20 79 6f 75 72 20 3c 69 6e 66 6f 3e 2e 67 69 74 69 67 6e 6f 72 65 3c 2f 69 6e 66 6f 3e 20 to.your.<info>.gitignore</info>.
27260 5b 3c 63 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 27 3b 0a 0a 69 66 20 [<comment>yes</comment>]?';..if.
27280 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
272a0 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 t,.$question,.true)).{.$this->ad
272c0 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 7d 0a 7d 0a dVendorIgnore($ignoreFile);.}.}.
272e0 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 }.}..protected.function.interact
27300 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
27320 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 67 69 74 20 3d 20 24 74 68 69 73 2d terface.$output).{.$git.=.$this-
27340 3e 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 >getGitConfig();..$dialog.=.$thi
27360 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')
27380 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 ;.$formatter.=.$this->getHelperS
273a0 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 24 74 68 69 73 2d 3e 67 et()->get('formatter');.$this->g
273c0 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 66 etIO()->writeError(array(.'',.$f
273e0 6f 72 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 ormatter->formatBlock('Welcome.t
27400 6f 20 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 o.the.Composer.config.generator'
27420 2c 20 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 ,.'bg=blue;fg=white',.true),.''.
27440 29 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f ));....$this->getIO()->writeErro
27460 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 r(array(.'',.'This.command.will.
27480 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 20 63 72 65 61 74 69 6e 67 20 79 6f 75 72 20 guide.you.through.creating.your.
274a0 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 63 6f 6e 66 69 67 2e 27 2c 0a 27 27 2c 0a 29 29 3b 0a composer.json.config.',.'',.));.
274c0 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 74 68 28 22 2e 22 29 3b 0a 0a 69 66 20 28 21 24 6e 61 .$cwd.=.realpath(".");..if.(!$na
274e0 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 29 29 20 me.=.$input->getOption('name')).
27500 7b 0a 24 6e 61 6d 65 20 3d 20 62 61 73 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a 24 6e 61 6d 65 20 {.$name.=.basename($cwd);.$name.
27520 3d 20 70 72 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 =.preg_replace('{(?:([a-z])([A-Z
27540 5d 29 7c 28 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 ])|([A-Z])([A-Z][a-z]))}',.'\\1\
27560 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6e 61 6d 65 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 \3-\\2\\4',.$name);.$name.=.strt
27580 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 67 olower($name);.if.(isset($git['g
275a0 69 74 68 75 62 2e 75 73 65 72 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 67 69 74 5b 27 67 ithub.user'])).{.$name.=.$git['g
275c0 69 74 68 75 62 2e 75 73 65 72 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c ithub.user']...'/'...$name;.}.el
275e0 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 seif.(!empty($_SERVER['USERNAME'
27600 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 ])).{.$name.=.$_SERVER['USERNAME
27620 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 67 65 74 5f ']...'/'...$name;.}.elseif.(get_
27640 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 67 65 74 5f 63 75 current_user()).{.$name.=.get_cu
27660 72 72 65 6e 74 5f 75 73 65 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c rrent_user()...'/'...$name;.}.el
27680 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 6e 61 se.{...$name.=.$name...'/'...$na
276a0 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 me;.}.}.else.{.if.(!preg_match('
276c0 7b 5e 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 24 7d 27 2c 20 {^[a-z0-9_.-]+/[a-z0-9_.-]+$}',.
276e0 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
27700 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 mentException(.'The.package.name
27720 20 27 2e 24 6e 61 6d 65 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 .'.$name.'.is.invalid,.it.should
27740 20 62 65 20 6c 6f 77 65 72 63 61 73 65 20 61 6e 64 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 .be.lowercase.and.have.a.vendor.
27760 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 name,.a.forward.slash,.and.a.pac
27780 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d kage.name,.matching:.[a-z0-9_.-]
277a0 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 +/[a-z0-9_.-]+'.);.}.}..$name.=.
277c0 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 $dialog->askAndValidate(.$output
277e0 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 ,.$dialog->getQuestion('Package.
27800 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 3e 2f 3c 6e 61 6d 65 3e 29 27 2c 20 24 6e 61 6d 65 29 2c name.(<vendor>/<name>)',.$name),
27820 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 6e 61 6d 65 29 20 7b .function.($value).use.($name).{
27840 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 .if.(null.===.$value).{.return.$
27860 6e 61 6d 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a name;.}..if.(!preg_match('{^[a-z
27880 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d 27 2c 20 24 76 61 6c 75 65 0-9_.-]+/[a-z0-9_.-]+$}',.$value
278a0 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
278c0 78 63 65 70 74 69 6f 6e 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 76 xception(.'The.package.name.'.$v
278e0 61 6c 75 65 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 alue.'.is.invalid,.it.should.be.
27900 6c 6f 77 65 72 63 61 73 65 20 61 6e 64 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 lowercase.and.have.a.vendor.name
27920 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 65 ,.a.forward.slash,.and.a.package
27940 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 .name,.matching:.[a-z0-9_.-]+/[a
27960 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b -z0-9_.-]+'.);.}..return.$value;
27980 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 .}.);.$input->setOption('name',.
279a0 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 69 6e 70 75 74 2d 3e $name);..$description.=.$input->
279c0 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 20 3f 3a 20 66 61 6c 73 getOption('description').?:.fals
279e0 65 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 0a e;.$description.=.$dialog->ask(.
27a00 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 44 $output,.$dialog->getQuestion('D
27a20 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 2c 0a 24 64 65 73 escription',.$description),.$des
27a40 63 72 69 70 74 69 6f 6e 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 64 cription.);.$input->setOption('d
27a60 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a 0a 69 66 20 escription',.$description);..if.
27a80 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 68 6f 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f (null.===.$author.=.$input->getO
27aa0 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 ption('author')).{.if.(isset($gi
27ac0 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 67 69 74 5b 27 75 t['user.name']).&&.isset($git['u
27ae0 73 65 72 2e 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 24 61 75 74 68 6f 72 20 3d 20 73 70 72 69 6e 74 ser.email'])).{.$author.=.sprint
27b00 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 2c 20 f('%s.<%s>',.$git['user.name'],.
27b20 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 73 65 6c 66 20 $git['user.email']);.}.}..$self.
27b40 3d 20 24 74 68 69 73 3b 0a 24 61 75 74 68 6f 72 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 =.$this;.$author.=.$dialog->askA
27b60 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 65 ndValidate(.$output,.$dialog->ge
27b80 74 51 75 65 73 74 69 6f 6e 28 27 41 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 2c 0a 66 75 tQuestion('Author',.$author),.fu
27ba0 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 61 75 74 nction.($value).use.($self,.$aut
27bc0 68 6f 72 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 76 61 6c 75 65 20 3f 3a 20 24 61 75 74 68 6f hor).{.$value.=.$value.?:.$autho
27be0 72 3b 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 72 53 r;.$author.=.$self->parseAuthorS
27c00 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 28 27 tring($value);..return.sprintf('
27c20 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 74 68 %s.<%s>',.$author['name'],.$auth
27c40 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 4f 70 or['email']);.}.);.$input->setOp
27c60 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 69 6d tion('author',.$author);..$minim
27c80 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 6e 28 umStability.=.$input->getOption(
27ca0 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 61 62 'stability').?:.'';.$minimumStab
27cc0 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 65 28 ility.=.$dialog->askAndValidate(
27ce0 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 .$output,.$dialog->getQuestion('
27d00 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 61 62 Minimum.Stability',.$minimumStab
27d20 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 28 24 ility),.function.($value).use.($
27d40 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 28 6e self,.$minimumStability).{.if.(n
27d60 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 6d 75 ull.===.$value).{.return.$minimu
27d80 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 50 61 mStability;.}..if.(!isset(BasePa
27da0 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 7b 0a ckage::$stabilities[$value])).{.
27dc0 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
27de0 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 79 20 ion(.'Invalid.minimum.stability.
27e00 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 20 6f "'.$value.'"..Must.be.empty.or.o
27e20 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 6b 65 ne.of:.'..implode(',.',.array_ke
27e40 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 0a 29 ys(BasePackage::$stabilities)).)
27e60 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 2d ;.}..return.$value;.}.);.$input-
27e80 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 75 6d >setOption('stability',.$minimum
27ea0 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 2d 3e Stability);..$license.=.$input->
27ec0 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 0a 24 getOption('license').?:.false;.$
27ee0 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 74 2c license.=.$dialog->ask(.$output,
27f00 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 27 2c .$dialog->getQuestion('License',
27f20 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 2d 3e .$license),.$license.);.$input->
27f40 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 3b 0a setOption('license',.$license);.
27f60 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 .$this->getIO()->writeError(arra
27f80 79 28 0a 27 27 2c 0a 27 44 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 y(.'',.'Define.your.dependencies
27fa0 2e 27 2c 0a 27 27 0a 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 .',.''.));..$requirements.=.arra
27fc0 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f y();.if.($dialog->askConfirmatio
27fe0 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 6f 6e 28 n($output,.$dialog->getQuestion(
28000 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 'Would.you.like.to.define.your.d
28020 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 75 69 72 65 29 20 69 6e 74 65 72 61 63 74 69 76 ependencies.(require).interactiv
28040 65 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 72 65 71 ely',.'yes',.'?'),.true)).{.$req
28060 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 71 75 uirements.=.$this->determineRequ
28080 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 75 74 irements($input,.$output,.$input
280a0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 ->getOption('require'));.}.$inpu
280c0 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c 20 24 72 65 71 75 69 72 65 t->setOption('require',.$require
280e0 6d 65 6e 74 73 29 3b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 ments);.$devRequirements.=.array
28100 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e ();.if.($dialog->askConfirmation
28120 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 6f 6e 28 27 ($output,.$dialog->getQuestion('
28140 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 Would.you.like.to.define.your.de
28160 76 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 75 69 72 65 2d 64 65 76 29 20 69 6e 74 v.dependencies.(require-dev).int
28180 65 72 61 63 74 69 76 65 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 eractively',.'yes',.'?'),.true))
281a0 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 .{.$devRequirements.=.$this->det
281c0 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 ermineRequirements($input,.$outp
281e0 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 ut,.$input->getOption('require-d
28200 65 76 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 ev'));.}.$input->setOption('requ
28220 69 72 65 2d 64 65 76 27 2c 20 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a ire-dev',.$devRequirements);.}..
28240 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 protected.function.findPackages(
28260 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 28 $name).{.return.$this->getRepos(
28280 29 2d 3e 73 65 61 72 63 68 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 )->search($name);.}..protected.f
282a0 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d unction.getRepos().{.if.(!$this-
282c0 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 20 43 6f 6d >repos).{.$this->repos.=.new.Com
282e0 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 0a 61 72 positeRepository(array_merge(.ar
28300 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 0a 46 61 63 ray(new.PlatformRepository),.Fac
28320 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 tory::createDefaultRepositories(
28340 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 6e 20 24 74 $this->getIO()).));.}..return.$t
28360 68 69 73 2d 3e 72 65 70 6f 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f his->repos;.}..protected.functio
28380 6e 20 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 49 6e 70 75 74 49 6e 74 n.determineRequirements(InputInt
283a0 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.$
283c0 6f 75 74 70 75 74 2c 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 output,.$requires.=.array()).{.$
283e0 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e dialog.=.$this->getHelperSet()->
28400 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 70 72 6f 6d 70 74 20 3d 20 24 64 69 61 6c 6f 67 get('dialog');.$prompt.=.$dialog
28420 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 61 20 70 61 63 6b ->getQuestion('Search.for.a.pack
28440 61 67 65 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 3b 0a 0a 69 66 20 28 24 72 65 71 75 69 72 65 age',.false,.':');..if.($require
28460 73 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a s).{.$requires.=.$this->normaliz
28480 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 72 65 73 75 6c eRequirements($requires);.$resul
284a0 74 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 71 75 69 72 65 73 t.=.array();..foreach.($requires
284c0 20 61 73 20 24 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 .as.$requirement).{.if.(!isset($
284e0 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 24 76 65 requirement['version'])).{...$ve
28500 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 42 65 73 74 56 65 72 73 69 6f 6e 46 6f rsion.=.$this->findBestVersionFo
28520 72 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e rPackage($input,.$requirement['n
28540 61 6d 65 27 5d 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 ame']);.$requirement['version'].
28560 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 =.$version;..$this->getIO()->wri
28580 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 0a 27 55 73 69 6e 67 20 76 65 72 73 69 6f 6e 20 teError(sprintf(.'Using.version.
285a0 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 66 6f 72 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e <info>%s</info>.for.<info>%s</in
285c0 66 6f 3e 27 2c 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 0a 24 fo>',.$requirement['version'],.$
285e0 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 0a 29 29 3b 0a 7d 0a 0a 24 72 65 73 75 requirement['name'].));.}..$resu
28600 6c 74 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 27 20 lt[].=.$requirement['name']...'.
28620 27 20 2e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a '...$requirement['version'];.}..
28640 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 return.$result;.}..$versionParse
28660 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 77 68 69 6c 65 20 28 r.=.new.VersionParser();.while.(
28680 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 3e 61 73 6b null.!==.$package.=.$dialog->ask
286a0 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 65 73 20 3d ($output,.$prompt)).{.$matches.=
286c0 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 65 29 3b 0a .$this->findPackages($package);.
286e0 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 65 78 61 63 74 4d 61 .if.(count($matches)).{.$exactMa
28700 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 72 61 79 28 29 3b 0a tch.=.null;.$choices.=.array();.
28720 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 6f 73 69 74 69 6f 6e 20 3d foreach.($matches.as.$position.=
28740 3e 20 24 66 6f 75 6e 64 50 61 63 6b 61 67 65 29 20 7b 0a 24 63 68 6f 69 63 65 73 5b 5d 20 3d 20 >.$foundPackage).{.$choices[].=.
28760 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 2c 20 sprintf('.<info>%5s</info>.%s',.
28780 22 5b 24 70 6f 73 69 74 69 6f 6e 5d 22 2c 20 24 66 6f 75 6e 64 50 61 63 6b 61 67 65 5b 27 6e 61 "[$position]",.$foundPackage['na
287a0 6d 65 27 5d 29 3b 0a 69 66 20 28 24 66 6f 75 6e 64 50 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d me']);.if.($foundPackage['name']
287c0 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 65 78 61 63 74 4d 61 74 63 68 20 3d 20 74 .===.$package).{.$exactMatch.=.t
287e0 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 78 61 63 74 4d 61 rue;.break;.}.}....if.(!$exactMa
28800 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f tch).{.$this->getIO()->writeErro
28820 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 73 70 72 69 6e 74 66 28 27 46 6f 75 6e 64 20 3c 69 6e 66 r(array(.'',.sprintf('Found.<inf
28840 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 70 61 63 6b 61 67 65 73 20 6d 61 74 63 68 69 6e 67 20 3c 69 o>%s</info>.packages.matching.<i
28860 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 2c nfo>%s</info>',.count($matches),
28880 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f .$package),.''.));..$this->getIO
288a0 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 63 68 6f 69 63 65 73 29 3b 0a 24 74 68 69 73 2d ()->writeError($choices);.$this-
288c0 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 0a 24 76 61 6c 69 >getIO()->writeError('');..$vali
288e0 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 75 73 dator.=.function.($selection).us
28900 65 20 28 24 6d 61 74 63 68 65 73 2c 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 20 7b 0a 69 e.($matches,.$versionParser).{.i
28920 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 65 74 75 72 6e 20 66 f.(''.===.$selection).{.return.f
28940 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 65 6c 65 63 74 69 alse;.}..if.(is_numeric($selecti
28960 6f 6e 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c on).&&.isset($matches[(int).$sel
28980 65 63 74 69 6f 6e 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6d 61 74 63 68 65 73 5b ection])).{.$package.=.$matches[
289a0 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 20 24 70 61 63 6b (int).$selection];..return.$pack
289c0 61 67 65 5b 27 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 age['name'];.}..if.(preg_match('
289e0 7b 5e 5c 73 2a 28 3f 50 3c 6e 61 6d 65 3e 5b 5c 53 2f 5d 2b 29 28 3f 3a 5c 73 2b 28 3f 50 3c 76 {^\s*(?P<name>[\S/]+)(?:\s+(?P<v
28a00 65 72 73 69 6f 6e 3e 5c 53 2b 29 29 3f 5c 73 2a 24 7d 27 2c 20 24 73 65 6c 65 63 74 69 6f 6e 2c ersion>\S+))?\s*$}',.$selection,
28a20 20 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 .$packageMatches)).{.if.(isset($
28a40 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 0a packageMatches['version'])).{...
28a60 0a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e ..$versionParser->parseConstrain
28a80 74 73 28 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a ts($packageMatches['version']);.
28aa0 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 5b 27 6e 61 6d 65 27 5d 2e .return.$packageMatches['name'].
28ac0 27 20 27 2e 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a '.'.$packageMatches['version'];.
28ae0 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 5b 27 6e 61 6d }....return.$packageMatches['nam
28b00 65 27 5d 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f e'];.}..throw.new.\Exception('No
28b20 74 20 61 20 76 61 6c 69 64 20 73 65 6c 65 63 74 69 6f 6e 27 29 3b 0a 7d 3b 0a 0a 24 70 61 63 6b t.a.valid.selection');.};..$pack
28b40 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f age.=.$dialog->askAndValidate($o
28b60 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
28b80 65 72 20 70 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 er.package.#.to.add,.or.the.comp
28ba0 6c 65 74 65 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 lete.package.name.if.it.is.not.l
28bc0 69 73 74 65 64 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c isted',.false,.':'),.$validator,
28be0 20 33 29 3b 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 .3);.}....if.(false.!==.$package
28c00 20 26 26 20 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 .&&.false.===.strpos($package,.'
28c20 20 27 29 29 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 .')).{.$validator.=.function.($i
28c40 6e 70 75 74 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 nput).{.$input.=.trim($input);..
28c60 72 65 74 75 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 return.$input.?:.false;.};..$con
28c80 73 74 72 61 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 straint.=.$dialog->askAndValidat
28ca0 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
28cc0 28 27 45 6e 74 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 ('Enter.the.version.constraint.t
28ce0 6f 20 72 65 71 75 69 72 65 20 28 6f 72 20 6c 65 61 76 65 20 62 6c 61 6e 6b 20 74 6f 20 75 73 65 o.require.(or.leave.blank.to.use
28d00 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 29 27 2c 20 66 61 6c 73 65 2c 20 27 3a .the.latest.version)',.false,.':
28d20 27 29 2c 0a 24 76 61 6c 69 64 61 74 6f 72 2c 0a 33 29 0a 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d '),.$validator,.3).;.if.(false.=
28d40 3d 3d 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 20 3d 20 ==.$constraint).{.$constraint.=.
28d60 24 74 68 69 73 2d 3e 66 69 6e 64 42 65 73 74 56 65 72 73 69 6f 6e 46 6f 72 50 61 63 6b 61 67 65 $this->findBestVersionForPackage
28d80 28 24 69 6e 70 75 74 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 ($input,.$package);..$this->getI
28da0 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 0a 27 55 73 69 6e 67 20 O()->writeError(sprintf(.'Using.
28dc0 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 66 6f 72 20 3c 69 6e 66 version.<info>%s</info>.for.<inf
28de0 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 70 61 63 6b o>%s</info>',.$constraint,.$pack
28e00 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 2e 3d 20 27 20 27 2e 24 63 6f 6e 73 age.));.}..$package..=.'.'.$cons
28e20 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 6b 61 67 traint;.}..if.(false.!==.$packag
28e40 65 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d e).{.$requires[].=.$package;.}.}
28e60 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 .}..return.$requires;.}..protect
28e80 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 61 75 74 68 6f ed.function.formatAuthors($autho
28ea0 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 r).{.return.array($this->parseAu
28ec0 74 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 thorString($author));.}..protect
28ee0 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 ed.function.formatRequirements(a
28f00 72 72 61 79 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 rray.$requirements).{.$requires.
28f20 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 68 69 73 =.array();.$requirements.=.$this
28f40 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 69 72 65 ->normalizeRequirements($require
28f60 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 73 20 61 ments);.foreach.($requirements.a
28f80 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 72 65 71 s.$requirement).{.$requires[$req
28fa0 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 65 6e 74 uirement['name']].=.$requirement
28fc0 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 72 65 73 ['version'];.}..return.$requires
28fe0 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 74 43 6f ;.}..protected.function.getGitCo
29000 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 67 69 74 nfig().{.if.(null.!==.$this->git
29020 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 6e 66 69 Config).{.return.$this->gitConfi
29040 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 65 46 69 g;.}..$finder.=.new.ExecutableFi
29060 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 6e 64 28 nder();.$gitBin.=.$finder->find(
29080 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 70 72 69 'git');..$cmd.=.new.Process(spri
290a0 6e 74 66 28 27 25 73 20 63 6f 6e 66 69 67 20 2d 6c 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 ntf('%s.config.-l',.ProcessExecu
290c0 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 67 69 74 42 69 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 75 tor::escape($gitBin)));.$cmd->ru
290e0 6e 28 29 3b 0a 0a 69 66 20 28 24 63 6d 64 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 n();..if.($cmd->isSuccessful()).
29100 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 {.$this->gitConfig.=.array();.pr
29120 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 5e 28 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 eg_match_all('{^([^=]+)=(.*)$}m'
29140 2c 20 24 63 6d 64 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 ,.$cmd->getOutput(),.$matches,.P
29160 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 REG_SET_ORDER);.foreach.($matche
29180 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b s.as.$match).{.$this->gitConfig[
291a0 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 $match[1]].=.$match[2];.}..retur
291c0 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 n.$this->gitConfig;.}..return.$t
291e0 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a his->gitConfig.=.array();.}.....
29200 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .............protected.function.
29220 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 2c 20 24 76 65 hasVendorIgnore($ignoreFile,.$ve
29240 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 ndor.=.'vendor').{.if.(!file_exi
29260 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 sts($ignoreFile)).{.return.false
29280 3b 0a 7d 0a 0a 24 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 ;.}..$pattern.=.sprintf('{^/?%s(
292a0 2f 5c 2a 3f 29 3f 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 /\*?)?$}',.preg_quote($vendor));
292c0 0a 0a 24 6c 69 6e 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 ..$lines.=.file($ignoreFile,.FIL
292e0 45 5f 49 47 4e 4f 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 E_IGNORE_NEW_LINES);.foreach.($l
29300 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 ines.as.$line).{.if.(preg_match(
29320 24 70 61 74 74 65 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 $pattern,.$line)).{.return.true;
29340 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 6f 74 65 63 74 65 64 .}.}..return.false;.}..protected
29360 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 .function.normalizeRequirements(
29380 61 72 72 61 79 20 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 array.$requirements).{.$parser.=
293a0 20 6e 65 77 20 56 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 .new.VersionParser();..return.$p
293c0 61 72 73 65 72 2d 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 arser->parseNameVersionPairs($re
293e0 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 quirements);.}..protected.functi
29400 6f 6e 20 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 on.addVendorIgnore($ignoreFile,.
29420 24 76 65 6e 64 6f 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 $vendor.=.'/vendor/').{.$content
29440 73 20 3d 20 22 22 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 s.=."";.if.(file_exists($ignoreF
29460 69 6c 65 29 29 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 ile)).{.$contents.=.file_get_con
29480 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 0a 69 66 20 28 22 5c 6e 22 20 21 3d tents($ignoreFile);..if.("\n".!=
294a0 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 2d 31 29 29 20 7b 0a 24 63 =.substr($contents,.0,.-1)).{.$c
294c0 6f 6e 74 65 6e 74 73 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 ontents..=."\n";.}.}..file_put_c
294e0 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 20 2e ontents($ignoreFile,.$contents..
29500 20 24 76 65 6e 64 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 .$vendor.."\n");.}..protected.fu
29520 6e 63 74 69 6f 6e 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 nction.isValidEmail($email).{...
29540 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 if.(!function_exists('filter_var
29560 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 76 65 72 73 ')).{.return.true;.}....if.(vers
29580 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 ion_compare(PHP_VERSION,.'5.3.3'
295a0 2c 20 27 3c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ,.'<')).{.return.true;.}..return
295c0 20 66 61 6c 73 65 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 .false.!==.filter_var($email,.FI
295e0 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 LTER_VALIDATE_EMAIL);.}..private
29600 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f 6f 6c 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.getPool(InputInterface
29620 20 24 69 6e 70 75 74 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 20 7b 0a 24 .$input).{.if.(!$this->pool).{.$
29640 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 24 74 68 69 73 2d 3e 67 65 74 this->pool.=.new.Pool($this->get
29660 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 24 69 6e 70 75 74 29 29 3b 0a 24 74 68 69 73 MinimumStability($input));.$this
29680 2d 3e 70 6f 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 65 74 ->pool->addRepository($this->get
296a0 52 65 70 6f 73 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 3b Repos());.}..return.$this->pool;
296c0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 .}..private.function.getMinimumS
296e0 74 61 62 69 6c 69 74 79 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a tability(InputInterface.$input).
29700 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 {.if.($input->hasOption('stabili
29720 74 79 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e ty')).{.return.$input->getOption
29740 28 27 73 74 61 62 69 6c 69 74 79 27 29 20 3f 3a 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 24 66 ('stability').?:.'stable';.}..$f
29760 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 ile.=.Factory::getComposerFile()
29780 3b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 29 20 26 26 20 69 73 5f 72 65 61 64 61 ;.if.(is_file($file).&&.is_reada
297a0 62 6c 65 28 24 66 69 6c 65 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6d 70 6f 73 65 72 ble($file).&&.is_array($composer
297c0 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
297e0 28 24 66 69 6c 65 29 2c 20 74 72 75 65 29 29 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 ($file),.true))).{.if.(!empty($c
29800 6f 6d 70 6f 73 65 72 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 omposer['minimum-stability'])).{
29820 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 .return.$composer['minimum-stabi
29840 6c 69 74 79 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a lity'];.}.}..return.'stable';.}.
29860 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 64 ...........private.function.find
29880 42 65 73 74 56 65 72 73 69 6f 6e 46 6f 72 50 61 63 6b 61 67 65 28 49 6e 70 75 74 49 6e 74 65 72 BestVersionForPackage(InputInter
298a0 66 61 63 65 20 24 69 6e 70 75 74 2c 20 24 6e 61 6d 65 29 0a 7b 0a 0a 20 24 76 65 72 73 69 6f 6e face.$input,.$name).{...$version
298c0 53 65 6c 65 63 74 6f 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 28 24 Selector.=.new.VersionSelector($
298e0 74 68 69 73 2d 3e 67 65 74 50 6f 6f 6c 28 24 69 6e 70 75 74 29 29 3b 0a 24 70 61 63 6b 61 67 65 this->getPool($input));.$package
29900 20 3d 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 2d 3e 66 69 6e 64 42 65 73 74 43 61 6e .=.$versionSelector->findBestCan
29920 64 69 64 61 74 65 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b didate($name);..if.(!$package).{
29940 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
29960 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 tion(sprintf(.'Could.not.find.pa
29980 63 6b 61 67 65 20 25 73 20 61 74 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 79 6f 75 72 ckage.%s.at.any.version.for.your
299a0 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 28 25 73 29 2e 20 43 68 65 63 6b 20 74 .minimum-stability.(%s)..Check.t
299c0 68 65 20 70 61 63 6b 61 67 65 20 73 70 65 6c 6c 69 6e 67 20 6f 72 20 79 6f 75 72 20 6d 69 6e 69 he.package.spelling.or.your.mini
299e0 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 2c 0a 24 6e 61 6d 65 2c 0a 24 74 68 69 73 2d 3e 67 65 mum-stability',.$name,.$this->ge
29a00 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 24 69 6e 70 75 74 29 0a 29 29 3b 0a 7d 0a tMinimumStability($input).));.}.
29a20 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 2d 3e 66 69 6e 64 52 65 .return.$versionSelector->findRe
29a40 63 6f 6d 6d 65 6e 64 65 64 52 65 71 75 69 72 65 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 commendedRequireVersion($package
29a60 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 );.}.}.<?php............namespac
29a80 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
29aa0 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 oser\Config;.use.Composer\Packag
29ac0 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
29ae0 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a \Package\Version\VersionParser;.
29b00 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f use.Composer\Util\ProcessExecuto
29b20 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a r;.use.Composer\IO\IOInterface;.
29b40 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;...
29b60 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 20 69 ..abstract.class.VcsDownloader.i
29b80 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 2c 20 43 mplements.DownloaderInterface,.C
29ba0 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 hangeReportInterface.{.protected
29bc0 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 72 6f 74 65 63 74 .$io;.protected.$config;.protect
29be0 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 ed.$process;.protected.$filesyst
29c00 65 6d 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 em;..public.function.__construct
29c20 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 67 (IOInterface.$io,.Config.$config
29c40 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c ,.ProcessExecutor.$process.=.nul
29c60 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 l,.Filesystem.$fs.=.null).{.$thi
29c80 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 6f s->io.=.$io;.$this->config.=.$co
29ca0 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 20 nfig;.$this->process.=.$process.
29cc0 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 24 74 68 ?:.new.ProcessExecutor($io);.$th
29ce0 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 73 20 3f 3a 20 6e 65 77 20 46 69 6c 65 is->filesystem.=.$fs.?:.new.File
29d00 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 system;.}.....public.function.ge
29d20 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.'
29d40 73 6f 75 72 63 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 source';.}.....public.function.d
29d60 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 ownload(PackageInterface.$packag
29d80 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f e,.$path).{.if.(!$package->getSo
29da0 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e urceReference()).{.throw.new.\In
29dc0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 validArgumentException('Package.
29de0 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 '.$package->getPrettyName().'.is
29e00 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 .missing.reference.information')
29e20 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 ;.}..$this->io->writeError("..-.
29e40 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 Installing.<info>"...$package->g
29e60 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 etName()..."</info>.(<comment>".
29e80 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 ..VersionParser::formatVersion($
29ea0 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 73 package)..."</comment>)");.$this
29ec0 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6d 70 74 79 44 69 72 65 63 74 6f 72 79 28 24 70 61 ->filesystem->emptyDirectory($pa
29ee0 74 68 29 3b 0a 0a 24 75 72 6c 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 th);..$urls.=.$package->getSourc
29f00 65 55 72 6c 73 28 29 3b 0a 77 68 69 6c 65 20 28 24 75 72 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 eUrls();.while.($url.=.array_shi
29f20 66 74 28 24 75 72 6c 73 29 29 20 7b 0a 74 72 79 20 7b 0a 69 66 20 28 46 69 6c 65 73 79 73 74 65 ft($urls)).{.try.{.if.(Filesyste
29f40 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 24 75 72 6c 20 3d 20 72 m::isLocalPath($url)).{.$url.=.r
29f60 65 61 6c 70 61 74 68 28 24 75 72 6c 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f ealpath($url);.}.$this->doDownlo
29f80 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 62 72 65 61 6b ad($package,.$path,.$url);.break
29fa0 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 20 28 ;.}.catch.(\Exception.$e).{.if.(
29fc0 24 74 68 69 73 2d 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 $this->io->isDebug()).{.$this->i
29fe0 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 69 6c 65 64 3a 20 5b 27 2e 67 65 74 5f 63 6c o->writeError('Failed:.['.get_cl
2a000 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a ass($e).'].'.$e->getMessage());.
2a020 7d 20 65 6c 73 65 69 66 20 28 63 6f 75 6e 74 28 24 75 72 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d }.elseif.(count($urls)).{.$this-
2a040 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 46 61 69 6c 65 64 2c 20 74 72 79 >io->writeError('....Failed,.try
2a060 69 6e 67 20 74 68 65 20 6e 65 78 74 20 55 52 4c 27 29 3b 0a 7d 0a 69 66 20 28 21 63 6f 75 6e 74 ing.the.next.URL');.}.if.(!count
2a080 28 24 75 72 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 ($urls)).{.throw.$e;.}.}.}..$thi
2a0a0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 s->io->writeError('');.}.....pub
2a0c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 lic.function.update(PackageInter
2a0e0 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 face.$initial,.PackageInterface.
2a100 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 74 61 72 67 65 74 2d 3e $target,.$path).{.if.(!$target->
2a120 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 getSourceReference()).{.throw.ne
2a140 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 63 w.\InvalidArgumentException('Pac
2a160 6b 61 67 65 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e kage.'.$target->getPrettyName().
2a180 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 '.is.missing.reference.informati
2a1a0 6f 6e 27 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d on');.}..$name.=.$target->getNam
2a1c0 65 28 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 e();.if.($initial->getPrettyVers
2a1e0 69 6f 6e 28 29 20 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 ion().==.$target->getPrettyVersi
2a200 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 on()).{.if.($target->getSourceTy
2a220 70 65 28 29 20 3d 3d 3d 20 27 73 76 6e 27 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 69 6e 69 74 69 pe().===.'svn').{.$from.=.$initi
2a240 61 6c 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 6f 20 3d 20 al->getSourceReference();.$to.=.
2a260 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 3b 0a 7d $target->getSourceReference();.}
2a280 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 73 75 62 73 74 72 28 24 69 6e 69 74 69 61 6c 2d .else.{.$from.=.substr($initial-
2a2a0 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 3b 0a 24 74 >getSourceReference(),.0,.7);.$t
2a2c0 6f 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 o.=.substr($target->getSourceRef
2a2e0 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 24 6e 61 6d 65 20 2e 3d 20 27 20 27 2e erence(),.0,.7);.}.$name..=.'.'.
2a300 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 20 $initial->getPrettyVersion();.}.
2a320 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f else.{.$from.=.VersionParser::fo
2a340 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 6f 20 3d 20 56 65 72 rmatVersion($initial);.$to.=.Ver
2a360 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 74 61 72 67 65 sionParser::formatVersion($targe
2a380 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 t);.}..$this->io->writeError("..
2a3a0 2d 20 55 70 64 61 74 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 6e 61 6d 65 20 2e 20 22 3c 2f -.Updating.<info>"...$name..."</
2a3c0 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 66 72 6f 6d 20 2e 20 22 3c 2f 63 info>.(<comment>"...$from..."</c
2a3e0 6f 6d 6d 65 6e 74 3e 20 3d 3e 20 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 74 6f 20 2e 20 22 3c omment>.=>.<comment>"...$to..."<
2a400 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 /comment>)");..$this->cleanChang
2a420 65 73 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 75 72 6c 73 es($initial,.$path,.true);.$urls
2a440 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 3b 0a 77 68 69 .=.$target->getSourceUrls();.whi
2a460 6c 65 20 28 24 75 72 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 75 72 6c 73 29 29 20 7b le.($url.=.array_shift($urls)).{
2a480 0a 74 72 79 20 7b 0a 69 66 20 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 .try.{.if.(Filesystem::isLocalPa
2a4a0 74 68 28 24 75 72 6c 29 29 20 7b 0a 24 75 72 6c 20 3d 20 72 65 61 6c 70 61 74 68 28 24 75 72 6c th($url)).{.$url.=.realpath($url
2a4c0 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 55 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 );.}.$this->doUpdate($initial,.$
2a4e0 74 61 72 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 target,.$path,.$url);.break;.}.c
2a500 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 74 68 69 73 atch.(\Exception.$e).{.if.($this
2a520 2d 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 ->io->isDebug()).{.$this->io->wr
2a540 69 74 65 45 72 72 6f 72 28 27 46 61 69 6c 65 64 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 iteError('Failed:.['.get_class($
2a560 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 6c 73 e).'].'.$e->getMessage());.}.els
2a580 65 69 66 20 28 63 6f 75 6e 74 28 24 75 72 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e eif.(count($urls)).{.$this->io->
2a5a0 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 46 61 69 6c 65 64 2c 20 74 72 79 69 6e 67 20 74 writeError('....Failed,.trying.t
2a5c0 68 65 20 6e 65 78 74 20 55 52 4c 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 68 69 73 2d he.next.URL');.}.else.{...$this-
2a5e0 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 74 68 72 6f 77 20 24 >reapplyChanges($path);..throw.$
2a600 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 e;.}.}.}..$this->reapplyChanges(
2a620 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 $path);....if.($this->io->isVerb
2a640 6f 73 65 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 50 75 6c 6c 69 6e 67 20 69 6e 20 ose()).{.$message.=.'Pulling.in.
2a660 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d changes:';.$logs.=.$this->getCom
2a680 6d 69 74 4c 6f 67 73 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 mitLogs($initial->getSourceRefer
2a6a0 65 6e 63 65 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 ence(),.$target->getSourceRefere
2a6c0 6e 63 65 28 29 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 6c 6f 67 73 29 nce(),.$path);..if.(!trim($logs)
2a6e0 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 52 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 63 68 61 ).{.$message.=.'Rolling.back.cha
2a700 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 nges:';.$logs.=.$this->getCommit
2a720 4c 6f 67 73 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 Logs($target->getSourceReference
2a740 28 29 2c 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 (),.$initial->getSourceReference
2a760 28 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 69 6d 28 24 6c 6f 67 73 29 29 20 (),.$path);.}..if.(trim($logs)).
2a780 7b 0a 24 6c 6f 67 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 {.$logs.=.implode("\n",.array_ma
2a7a0 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 p(function.($line).{.return.'...
2a7c0 20 20 20 27 20 2e 20 24 6c 69 6e 65 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 ...'...$line;.},.explode("\n",.$
2a7e0 6c 6f 67 73 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 logs)));..$this->io->writeError(
2a800 27 20 20 20 20 27 2e 24 6d 65 73 73 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 '....'.$message);.$this->io->wri
2a820 74 65 45 72 72 6f 72 28 24 6c 6f 67 73 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e teError($logs);.}.}..$this->io->
2a840 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e writeError('');.}.....public.fun
2a860 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 ction.remove(PackageInterface.$p
2a880 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 ackage,.$path).{.$this->io->writ
2a8a0 65 45 72 72 6f 72 28 22 20 20 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 eError("..-.Removing.<info>"...$
2a8c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c package->getName()..."</info>.(<
2a8e0 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 56 comment>"...$package->getPrettyV
2a900 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 73 ersion()..."</comment>)");.$this
2a920 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 20 ->cleanChanges($package,.$path,.
2a940 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 3e false);.if.(!$this->filesystem->
2a960 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 removeDirectory($path)).{.throw.
2a980 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 6e 6f 74 new.\RuntimeException('Could.not
2a9a0 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 62 .completely.delete.'.$path.',.ab
2a9c0 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 orting.');.}.}......public.funct
2a9e0 69 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 ion.setOutputProgress($outputPro
2aa00 67 72 65 73 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a gress).{.return.$this;.}........
2aa20 0a 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 6e 43 68 61 6e 67 ...protected.function.cleanChang
2aa40 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 2c 20 24 70 es(PackageInterface.$package,.$p
2aa60 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ath,.$update).{...if.(null.!==.$
2aa80 74 68 69 73 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 2c 20 this->getLocalChanges($package,.
2aaa0 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 65 $path)).{.throw.new.\RuntimeExce
2aac0 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 20 27 20 2e 20 24 70 61 74 ption('Source.directory.'...$pat
2aae0 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 6e 67 65 73 2e 27 29 h...'.has.uncommitted.changes.')
2ab00 3b 0a 7d 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 ;.}.}........protected.function.
2ab20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a reapplyChanges($path).{.}.......
2ab40 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f ..abstract.protected.function.do
2ab60 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 Download(PackageInterface.$packa
2ab80 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 ge,.$path,.$url);..........abstr
2aba0 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 act.protected.function.doUpdate(
2abc0 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
2abe0 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 2c 20 24 75 72 6c geInterface.$target,.$path,.$url
2ac00 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 64 20 66 );..........abstract.protected.f
2ac20 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 66 65 72 unction.getCommitLogs($fromRefer
2ac40 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 0a 3c 3f ence,.$toReference,.$path);.}.<?
2ac60 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
2ac80 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 6f 6e 66 r\Downloader;..use.Composer\Conf
2aca0 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 6f 6d 70 ig;.use.Composer\Cache;.use.Comp
2acc0 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 70 61 74 oser\EventDispatcher\EventDispat
2ace0 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 73 73 45 cher;.use.Composer\Util\ProcessE
2ad00 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 xecutor;.use.Composer\IO\IOInter
2ad20 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 0a 63 6c face;.use.RarArchive;.........cl
2ad40 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 68 69 76 ass.RarDownloader.extends.Archiv
2ad60 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 65 73 73 eDownloader.{.protected.$process
2ad80 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 ;..public.function.__construct(I
2ada0 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,.
2adc0 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 72 EventDispatcher.$eventDispatcher
2ade0 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 20 50 72 .=.null,.Cache.$cache.=.null,.Pr
2ae00 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 29 0a 7b ocessExecutor.$process.=.null).{
2ae20 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 65 .$this->process.=.$process.?:.ne
2ae40 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 74 3a 3a w.ProcessExecutor($io);.parent::
2ae60 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 65 6e 74 __construct($io,.$config,.$event
2ae80 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 63 74 65 Dispatcher,.$cache);.}..protecte
2aea0 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 74 68 29 d.function.extract($file,.$path)
2aec0 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 66 20 28 .{.$processError.=.null;....if.(
2aee0 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 55 !defined('PHP_WINDOWS_VERSION_BU
2af00 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 27 20 2e ILD')).{.$command.=.'unrar.x.'..
2af20 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 66 69 6c 65 29 20 .ProcessExecutor::escape($file).
2af40 2e 20 27 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 ..'.'...ProcessExecutor::escape(
2af60 24 70 61 74 68 29 20 2e 20 27 20 26 26 20 63 68 6d 6f 64 20 2d 52 20 75 2b 77 20 27 20 2e 20 50 $path)...'.&&.chmod.-R.u+w.'...P
2af80 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 3b 0a 0a rocessExecutor::escape($path);..
2afa0 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 75 74 if.(0.===.$this->process->execut
2afc0 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 e($command,.$ignoredOutput)).{.r
2afe0 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c 65 eturn;.}..$processError.=.'Faile
2b000 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c d.to.execute.'...$command..."\n\
2b020 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 n"...$this->process->getErrorOut
2b040 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 52 61 72 put();.}..if.(!class_exists('Rar
2b060 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 6e Archive')).{...$iniPath.=.php_in
2b080 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 20 i_loaded_file();..if.($iniPath).
2b0a0 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 {.$iniMessage.=.'The.php.ini.use
2b0c0 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 d.by.your.command-line.PHP.is:.'
2b0e0 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 ...$iniPath;.}.else.{.$iniMessag
2b100 65 20 3d 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 e.=.'A.php.ini.file.does.not.exi
2b120 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 65 20 6f 6e 65 2e st..You.will.have.to.create.one.
2b140 27 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 ';.}..$error.=."Could.not.decomp
2b160 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 ress.the.archive,.enable.the.PHP
2b180 20 72 61 72 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 72 61 72 2e .rar.extension.or.install.unrar.
2b1a0 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 5c 6e 22 20 2e 20 24 70 72 6f 63 \n"...$iniMessage..."\n"...$proc
2b1c0 65 73 73 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e essError;..if.(!defined('PHP_WIN
2b1e0 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 72 72 6f 72 20 3d DOWS_VERSION_BUILD')).{.$error.=
2b200 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 ."Could.not.decompress.the.archi
2b220 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 72 61 72 20 65 78 74 65 6e 73 69 6f 6e ve,.enable.the.PHP.rar.extension
2b240 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 .\n"...$iniMessage;.}..throw.new
2b260 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 .\RuntimeException($error);.}..$
2b280 72 61 72 41 72 63 68 69 76 65 20 3d 20 52 61 72 41 72 63 68 69 76 65 3a 3a 6f 70 65 6e 28 24 66 rarArchive.=.RarArchive::open($f
2b2a0 69 6c 65 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 61 72 41 72 63 68 69 76 65 ile);..if.(false.===.$rarArchive
2b2c0 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
2b2e0 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 52 41 52 20 61 72 63 68 ception('Could.not.open.RAR.arch
2b300 69 76 65 3a 20 27 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 65 6e 74 72 69 65 73 20 3d 20 24 ive:.'...$file);.}..$entries.=.$
2b320 72 61 72 41 72 63 68 69 76 65 2d 3e 67 65 74 45 6e 74 72 69 65 73 28 29 3b 0a 0a 69 66 20 28 66 rarArchive->getEntries();..if.(f
2b340 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 69 65 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c alse.===.$entries).{.throw.new.\
2b360 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 RuntimeException('Could.not.retr
2b380 69 65 76 65 20 52 41 52 20 61 72 63 68 69 76 65 20 65 6e 74 72 69 65 73 27 29 3b 0a 7d 0a 0a 66 ieve.RAR.archive.entries');.}..f
2b3a0 6f 72 65 61 63 68 20 28 24 65 6e 74 72 69 65 73 20 61 73 20 24 65 6e 74 72 79 29 20 7b 0a 69 66 oreach.($entries.as.$entry).{.if
2b3c0 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 79 2d 3e 65 78 74 72 61 63 74 28 24 70 61 74 .(false.===.$entry->extract($pat
2b3e0 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
2b400 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 65 78 74 72 61 63 74 20 65 6e 74 72 79 27 29 3b 0a 7d 0a n('Could.not.extract.entry');.}.
2b420 7d 0a 0a 24 72 61 72 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 }..$rarArchive->close();.}.}.<?p
2b440 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
2b460 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 6f 6e 66 69 \Downloader;..use.Composer\Confi
2b480 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 6f 6d 70 6f g;.use.Composer\Cache;.use.Compo
2b4a0 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ser\IO\IOInterface;.use.Composer
2b4c0 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
2b4e0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 omposer\Package\Version\VersionP
2b500 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 5c 50 6c 75 67 69 arser;.use.Composer\Plugin\Plugi
2b520 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 72 65 nEvents;.use.Composer\Plugin\Pre
2b540 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c FileDownloadEvent;.use.Composer\
2b560 45 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 3b EventDispatcher\EventDispatcher;
2b580 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 75 .use.Composer\Util\Filesystem;.u
2b5a0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 se.Composer\Util\RemoteFilesyste
2b5c0 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 65 72 m;..........class.FileDownloader
2b5e0 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 65 0a .implements.DownloaderInterface.
2b600 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 6e 66 {.protected.$io;.protected.$conf
2b620 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 24 66 ig;.protected.$rfs;.protected.$f
2b640 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 72 6f ilesystem;.protected.$cache;.pro
2b660 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 0a 0a tected.$outputProgress.=.true;..
2b680 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
2b6a0 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 truct(IOInterface.$io,.Config.$c
2b6c0 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 69 73 onfig,.EventDispatcher.$eventDis
2b6e0 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 20 6e patcher.=.null,.Cache.$cache.=.n
2b700 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 75 6c ull,.RemoteFilesystem.$rfs.=.nul
2b720 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 6c 6c l,.Filesystem.$filesystem.=.null
2b740 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 ).{.$this->io.=.$io;.$this->conf
2b760 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 61 74 ig.=.$config;.$this->eventDispat
2b780 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 2d 3e cher.=.$eventDispatcher;.$this->
2b7a0 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 rfs.=.$rfs.?:.new.RemoteFilesyst
2b7c0 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 em($io,.$config);.$this->filesys
2b7e0 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 tem.=.$filesystem.?:.new.Filesys
2b800 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 24 63 61 63 68 65 3b 0a 0a 69 tem();.$this->cache.=.$cache;..i
2b820 66 20 28 24 74 68 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 f.($this->cache.&&.$this->cache-
2b840 3e 67 63 49 73 4e 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 >gcIsNecessary()).{.$this->cache
2b860 2d 3e 67 63 28 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 74 ->gc($config->get('cache-files-t
2b880 74 6c 27 29 2c 20 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 tl'),.$config->get('cache-files-
2b8a0 6d 61 78 73 69 7a 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 maxsize'));.}.}.....public.funct
2b8c0 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 ion.getInstallationSource().{.re
2b8e0 74 75 72 6e 20 27 64 69 73 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 turn.'dist';.}.....public.functi
2b900 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 on.download(PackageInterface.$pa
2b920 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 67 ckage,.$path).{.if.(!$package->g
2b940 65 74 44 69 73 74 55 72 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 etDistUrl()).{.throw.new.\Invali
2b960 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 69 76 65 6e 20 70 61 dArgumentException('The.given.pa
2b980 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 72 6d 61 74 69 6f 6e ckage.is.missing.url.information
2b9a0 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 ');.}..$this->io->writeError("..
2b9c0 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 63 6b 61 67 65 2d -.Installing.<info>"...$package-
2b9e0 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e >getName()..."</info>.(<comment>
2ba00 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 65 72 73 69 6f 6e "...VersionParser::formatVersion
2ba20 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 29 3b 0a 0a 24 75 ($package)..."</comment>)");..$u
2ba40 72 6c 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 73 28 29 3b 0a 77 rls.=.$package->getDistUrls();.w
2ba60 68 69 6c 65 20 28 24 75 72 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 75 72 6c 73 29 29 hile.($url.=.array_shift($urls))
2ba80 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f 61 .{.try.{.return.$this->doDownloa
2baa0 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 d($package,.$path,.$url);.}.catc
2bac0 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 74 68 69 73 2d 3e 69 h.(\Exception.$e).{.if.($this->i
2bae0 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 74 65 o->isDebug()).{.$this->io->write
2bb00 45 72 72 6f 72 28 27 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 Error('');.$this->io->writeError
2bb20 28 27 46 61 69 6c 65 64 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e ('Failed:.['.get_class($e).'].'.
2bb40 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 $e->getCode().':.'.$e->getMessag
2bb60 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 63 6f 75 6e 74 28 24 75 72 6c 73 29 29 20 7b 0a e());.}.elseif.(count($urls)).{.
2bb80 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 24 74 68 69 73 $this->io->writeError('');.$this
2bba0 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 46 61 69 6c 65 64 2c 20 74 72 ->io->writeError('....Failed,.tr
2bbc0 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 55 52 4c 20 28 27 2e 24 65 2d 3e 67 65 74 43 6f 64 65 ying.the.next.URL.('.$e->getCode
2bbe0 28 29 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 29 3b 0a 7d ().':.'.$e->getMessage().')');.}
2bc00 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 75 72 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b ..if.(!count($urls)).{.throw.$e;
2bc20 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 .}.}.}..$this->io->writeError(''
2bc40 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 64 6f 44 6f 77 6e 6c );.}..protected.function.doDownl
2bc60 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,.$
2bc80 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d path,.$url).{.$this->filesystem-
2bca0 3e 65 6d 70 74 79 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 0a 24 66 69 6c 65 4e 61 >emptyDirectory($path);..$fileNa
2bcc0 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
2bce0 2c 20 24 70 61 74 68 29 3b 0a 0a 24 70 72 6f 63 65 73 73 65 64 55 72 6c 20 3d 20 24 74 68 69 73 ,.$path);..$processedUrl.=.$this
2bd00 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 3b 0a 24 68 ->processUrl($package,.$url);.$h
2bd20 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 65 64 55 72 ostname.=.parse_url($processedUr
2bd40 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 6f 77 6e 6c l,.PHP_URL_HOST);..$preFileDownl
2bd60 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 61 64 45 76 oadEvent.=.new.PreFileDownloadEv
2bd80 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 4f 57 4e 4c ent(PluginEvents::PRE_FILE_DOWNL
2bda0 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 72 6c 29 3b OAD,.$this->rfs,.$processedUrl);
2bdc0 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 20 7b 0a 24 .if.($this->eventDispatcher).{.$
2bde0 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 this->eventDispatcher->dispatch(
2be00 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 6d 65 28 29 $preFileDownloadEvent->getName()
2be20 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 24 72 66 73 ,.$preFileDownloadEvent);.}.$rfs
2be40 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 74 52 65 6d .=.$preFileDownloadEvent->getRem
2be60 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 63 68 65 63 6b 73 75 oteFilesystem();..try.{.$checksu
2be80 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 68 65 63 6b 73 75 m.=.$package->getDistSha1Checksu
2bea0 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 74 43 61 63 68 65 m();.$cacheKey.=.$this->getCache
2bec0 4b 65 79 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 63 61 Key($package);....if.(!$this->ca
2bee0 63 68 65 20 7c 7c 20 28 24 63 68 65 63 6b 73 75 6d 20 26 26 20 24 63 68 65 63 6b 73 75 6d 20 21 che.||.($checksum.&&.$checksum.!
2bf00 3d 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 31 28 24 63 61 63 68 65 4b 65 79 29 ==.$this->cache->sha1($cacheKey)
2bf20 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 63 6f 70 79 54 6f 28 24 63 61 63 68 ).||.!$this->cache->copyTo($cach
2bf40 65 4b 65 79 2c 20 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e eKey,.$fileName)).{.if.(!$this->
2bf60 6f 75 74 70 75 74 50 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 outputProgress).{.$this->io->wri
2bf80 74 65 45 72 72 6f 72 28 27 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 27 29 3b 0a 7d 0a 0a 0a teError('....Downloading');.}...
2bfa0 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 74 72 69 65 73 2d 2d .$retries.=.3;.while.($retries--
2bfc0 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 74 6e 61 6d 65 2c 20 ).{.try.{.$rfs->copy($hostname,.
2bfe0 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 20 24 74 68 69 73 2d $processedUrl,.$fileName,.$this-
2c000 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 72 >outputProgress,.$package->getTr
2c020 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 ansportOptions());.break;.}.catc
2c040 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 0a 20 69 66 h.(TransportException.$e).{...if
2c060 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 21 69 6e 5f 61 72 .((0.!==.$e->getCode().&&.!in_ar
2c080 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 30 2c 20 35 30 32 ray($e->getCode(),array(500,.502
2c0a0 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 29 20 7b 0a 74 68 ,.503,.504))).||.!$retries).{.th
2c0c0 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 73 56 65 72 62 6f row.$e;.}.if.($this->io->isVerbo
2c0e0 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 se()).{.$this->io->writeError('.
2c100 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 27 ...Download.failed,.retrying...'
2c120 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 74 );.}.usleep(500000);.}.}..if.($t
2c140 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 79 his->cache).{.$this->cache->copy
2c160 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 20 From($cacheKey,.$fileName);.}.}.
2c180 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 else.{.$this->io->writeError('..
2c1a0 20 20 4c 6f 61 64 69 6e 67 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 ..Loading.from.cache');.}..if.(!
2c1c0 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 file_exists($fileName)).{.throw.
2c1e0 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 24 75 new.\UnexpectedValueException($u
2c200 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 61 76 65 64 20 74 6f 20 27 2e 24 66 69 rl.'.could.not.be.saved.to.'.$fi
2c220 6c 65 4e 61 6d 65 2e 27 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 27 0a 2e 27 20 64 69 72 65 leName.',.make.sure.the'..'.dire
2c240 63 74 6f 72 79 20 69 73 20 77 72 69 74 61 62 6c 65 20 61 6e 64 20 79 6f 75 20 68 61 76 65 20 69 ctory.is.writable.and.you.have.i
2c260 6e 74 65 72 6e 65 74 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 nternet.connectivity');.}..if.($
2c280 63 68 65 63 6b 73 75 6d 20 26 26 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 31 27 2c 20 24 66 checksum.&&.hash_file('sha1',.$f
2c2a0 69 6c 65 4e 61 6d 65 29 20 21 3d 3d 20 24 63 68 65 63 6b 73 75 6d 29 20 7b 0a 74 68 72 6f 77 20 ileName).!==.$checksum).{.throw.
2c2c0 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 54 new.\UnexpectedValueException('T
2c2e0 68 65 20 63 68 65 63 6b 73 75 6d 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 he.checksum.verification.of.the.
2c300 66 69 6c 65 20 66 61 69 6c 65 64 20 28 64 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 20 27 2e 24 file.failed.(downloaded.from.'.$
2c320 75 72 6c 2e 27 29 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 url.')');.}.}.catch.(\Exception.
2c340 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 $e).{...$this->filesystem->remov
2c360 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 63 6c 65 61 72 43 eDirectory($path);.$this->clearC
2c380 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 20 24 65 3b ache($package,.$path);.throw.$e;
2c3a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .}..return.$fileName;.}.....publ
2c3c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f ic.function.setOutputProgress($o
2c3e0 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 utputProgress).{.$this->outputPr
2c400 6f 67 72 65 73 73 20 3d 20 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 3b 0a 0a 72 65 74 75 72 ogress.=.$outputProgress;..retur
2c420 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 n.$this;.}..protected.function.c
2c440 6c 65 61 72 43 61 63 68 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b learCache(PackageInterface.$pack
2c460 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 29 20 age,.$path).{.if.($this->cache).
2c480 7b 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 {.$fileName.=.$this->getFileName
2c4a0 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 63 61 63 68 65 2d ($package,.$path);.$this->cache-
2c4c0 3e 72 65 6d 6f 76 65 28 24 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b >remove($this->getCacheKey($pack
2c4e0 61 67 65 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 75 age));.}.}.....public.function.u
2c500 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 61 6c 2c pdate(PackageInterface.$initial,
2c520 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 61 74 68 .PackageInterface.$target,.$path
2c540 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 ).{.$this->remove($initial,.$pat
2c560 68 29 3b 0a 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 70 61 h);.$this->download($target,.$pa
2c580 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 th);.}.....public.function.remov
2c5a0 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 e(PackageInterface.$package,.$pa
2c5c0 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d th).{.$this->io->writeError("..-
2c5e0 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 .Removing.<info>"...$package->ge
2c600 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e tName()..."</info>.(<comment>"..
2c620 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 .VersionParser::formatVersion($p
2c640 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 69 66 20 28 21 24 ackage)..."</comment>)");.if.(!$
2c660 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
2c680 79 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 45 78 y($path)).{.throw.new.\RuntimeEx
2c6a0 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 20 64 65 ception('Could.not.completely.de
2c6c0 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 7d 0a 7d lete.'.$path.',.aborting.');.}.}
2c6e0 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 65 74 46 .........protected.function.getF
2c700 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 ileName(PackageInterface.$packag
2c720 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 27 2e 70 61 74 e,.$path).{.return.$path.'/'.pat
2c740 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 65 74 44 69 73 hinfo(parse_url($package->getDis
2c760 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 49 4e 46 4f 5f tUrl(),.PHP_URL_PATH),.PATHINFO_
2c780 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 65 63 74 65 64 BASENAME);.}...........protected
2c7a0 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 65 49 6e 74 65 .function.processUrl(PackageInte
2c7c0 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 28 21 65 78 74 rface.$package,.$url).{.if.(!ext
2c7e0 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 30 20 3d 3d ension_loaded('openssl').&&.0.==
2c800 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 0a 74 68 72 6f =.strpos($url,.'https:')).{.thro
2c820 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 75 20 6d 75 73 w.new.\RuntimeException('You.mus
2c840 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 69 6f 6e 20 74 t.enable.the.openssl.extension.t
2c860 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 29 3b 0a 7d 0a o.download.files.via.https');.}.
2c880 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 6e 63 74 69 6f .return.$url;.}..private.functio
2c8a0 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 61 63 65 20 24 n.getCacheKey(PackageInterface.$
2c8c0 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 7b 5e 5b 61 2d package).{.if.(preg_match('{^[a-
2c8e0 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 44 69 73 74 52 f0-9]{40}$}',.$package->getDistR
2c900 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 61 67 65 2d 3e eference())).{.return.$package->
2c920 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 44 69 73 74 52 getName().'/'.$package->getDistR
2c940 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 74 44 69 73 74 eference().'.'.$package->getDist
2c960 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 3e 67 65 74 4e Type();.}..return.$package->getN
2c980 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 69 6f 6e 28 29 ame().'/'.$package->getVersion()
2c9a0 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 65 6e 63 65 28 .'-'.$package->getDistReference(
2c9c0 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 28 29 3b 0a 7d ).'.'.$package->getDistType();.}
2c9e0 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
2ca00 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Downloader;..use.Composer
2ca20 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
2ca40 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 3b 0a 0a 0a 0a omposer\Util\Svn.as.SvnUtil;....
2ca60 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 64 73 20 56 63 ..class.SvnDownloader.extends.Vc
2ca80 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 63 74 69 6f 6e sDownloader.{....public.function
2caa0 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 70 61 .doDownload(PackageInterface.$pa
2cac0 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 53 76 6e 55 74 69 6c 3a 3a 63 ckage,.$path,.$url).{.SvnUtil::c
2cae0 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 leanEnv();.$ref.=.$package->getS
2cb00 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 ourceReference();..$this->io->wr
2cb20 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 70 61 iteError("....Checking.out.".$pa
2cb40 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 74 ckage->getSourceReference());.$t
2cb60 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 22 2c 20 73 70 72 his->execute($url,."svn.co",.spr
2cb80 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 20 6e 75 6c 6c 2c intf("%s/%s",.$url,.$ref),.null,
2cba0 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 74 69 6f 6e 20 64 .$path);.}.....public.function.d
2cbc0 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 61 oUpdate(PackageInterface.$initia
2cbe0 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 61 l,.PackageInterface.$target,.$pa
2cc00 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 53 76 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b th,.$url).{.SvnUtil::cleanEnv();
2cc20 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .$ref.=.$target->getSourceRefere
2cc40 6e 63 65 28 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 73 76 6e nce();..if.(!is_dir($path.'/.svn
2cc60 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 6f ')).{.throw.new.\RuntimeExceptio
2cc80 6e 28 27 54 68 65 20 2e 73 76 6e 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e 67 n('The..svn.directory.is.missing
2cca0 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 63 .from.'.$path.',.see.http://getc
2ccc0 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 65 omposer.org/commit-deps.for.more
2cce0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 66 6c 61 67 73 20 3d 20 22 22 3b 0a .information');.}..$flags.=."";.
2cd00 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 75 74 if.(0.===.$this->process->execut
2cd20 65 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 69 e('svn.--version',.$output)).{.i
2cd40 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 5c 64 2b 28 3f 3a 5c 2e 5c 64 2b 29 2b 29 7d f.(preg_match('{(\d+(?:\.\d+)+)}
2cd60 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 ',.$output,.$match).&&.version_c
2cd80 6f 6d 70 61 72 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 27 31 2e 37 2e 30 27 2c 20 27 3e 3d 27 29 ompare($match[1],.'1.7.0',.'>=')
2cda0 29 20 7b 0a 24 66 6c 61 67 73 20 2e 3d 20 27 20 2d 2d 69 67 6e 6f 72 65 2d 61 6e 63 65 73 74 72 ).{.$flags..=.'.--ignore-ancestr
2cdc0 79 27 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 y';.}.}..$this->io->writeError("
2cde0 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 69 ....Checking.out."...$ref);.$thi
2ce00 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 73 77 69 74 63 68 22 20 2e 20 s->execute($url,."svn.switch"...
2ce20 24 66 6c 61 67 73 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 $flags,.sprintf("%s/%s",.$url,.$
2ce40 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 63 20 66 75 6e 63 74 ref),.$path);.}.....public.funct
2ce60 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 67 65 49 6e 74 65 72 ion.getLocalChanges(PackageInter
2ce80 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 69 73 5f face.$package,.$path).{.if.(!is_
2cea0 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 75 72 6e 3b 0a 7d 0a dir($path.'/.svn')).{.return;.}.
2cec0 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 73 76 6e 20 73 74 .$this->process->execute('svn.st
2cee0 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 20 24 6f 75 74 70 75 atus.--ignore-externals',.$outpu
2cf00 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 61 74 63 68 28 27 7b t,.$path);..return.preg_match('{
2cf20 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 20 24 6f 75 74 70 75 ^.*[^X.].+}m',.$output).?.$outpu
2cf40 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 70 72 6f 74 65 63 74 t.:.null;.}..............protect
2cf60 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 55 72 6c 2c 20 24 63 ed.function.execute($baseUrl,.$c
2cf80 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 2c 20 24 70 61 74 68 ommand,.$url,.$cwd.=.null,.$path
2cfa0 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 6e 55 74 69 6c 28 24 .=.null).{.$util.=.new.SvnUtil($
2cfc0 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 63 6f 6e 66 69 baseUrl,.$this->io,.$this->confi
2cfe0 67 29 3b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 g);.try.{.return.$util->execute(
2d000 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 74 68 $command,.$url,.$cwd,.$path,.$th
2d020 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c is->io->isVerbose());.}.catch.(\
2d040 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 RuntimeException.$e).{.throw.new
2d060 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 63 6f 75 .\RuntimeException(.'Package.cou
2d080 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d ld.not.be.downloaded,.'.$e->getM
2d0a0 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 essage().);.}.}.....protected.fu
2d0c0 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
2d0e0 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).{
2d100 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c .if.(!$changes.=.$this->getLocal
2d120 43 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 72 65 74 75 Changes($package,.$path)).{.retu
2d140 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 rn;.}..if.(!$this->io->isInterac
2d160 74 69 76 65 28 29 29 20 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f tive()).{.if.(true.===.$this->co
2d180 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 29 20 7b 0a nfig->get('discard-changes')).{.
2d1a0 72 65 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 return.$this->discardChanges($pa
2d1c0 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e th);.}..return.parent::cleanChan
2d1e0 67 65 73 28 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 3b 0a 7d ges($package,.$path,.$update);.}
2d200 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 ..$changes.=.array_map(function.
2d220 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d ($elem).{.return.'....'.$elem;.}
2d240 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 ,.preg_split('{\s*\r?\n\s*}',.$c
2d260 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 hanges));.$this->io->writeError(
2d280 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 '....<error>The.package.has.modi
2d2a0 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f fied.files:</error>');.$this->io
2d2c0 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 ->writeError(array_slice($change
2d2e0 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 6e 67 65 73 29 20 s,.0,.10));.if.(count($changes).
2d300 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 >.10).{.$this->io->writeError('.
2d320 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 20 ...<info>'.count($changes).-.10.
2d340 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 20 ..'.more.files.modified,.choose.
2d360 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 3e "v".to.view.the.full.list</info>
2d380 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 74 ');.}..while.(true).{.switch.($t
2d3a0 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 20 his->io->ask('....<info>Discard.
2d3c0 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 3f 27 changes.[y,n,v,?]?</info>.',.'?'
2d3e0 29 29 20 7b 0a 63 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 )).{.case.'y':.$this->discardCha
2d400 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 6e 27 3a nges($path);.break.2;..case.'n':
2d420 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 70 .throw.new.\RuntimeException('Up
2d440 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 3a 0a 24 74 68 69 73 date.aborted');..case.'v':.$this
2d460 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 65 61 ->io->writeError($changes);.brea
2d480 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 2d 3e 69 6f k;..case.'?':.default:.$this->io
2d4a0 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 ->writeError(array(.'....y.-.dis
2d4c0 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 card.changes.and.apply.the.'.($u
2d4e0 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c pdate.?.'update'.:.'uninstall'),
2d500 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f .'....n.-.abort.the.'.($update.?
2d520 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c .'update'.:.'uninstall').'.and.l
2d540 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 et.you.manually.clean.things.up'
2d560 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c ,.'....v.-.view.modified.files',
2d580 0a 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 2c 0a 29 29 3b 0a 62 72 65 61 6b .'....?.-.print.help',.));.break
2d5a0 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 ;.}.}.}.....protected.function.g
2d5c0 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
2d5e0 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 Reference,.$path).{.if.(preg_mat
2d600 63 68 28 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 ch('{.*@(\d+)$}',.$fromReference
2d620 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 24 ).&&.preg_match('{.*@(\d+)$}',.$
2d640 74 6f 52 65 66 65 72 65 6e 63 65 29 20 29 20 7b 0a 0a 20 24 66 72 6f 6d 52 65 76 69 73 69 6f 6e toReference).).{...$fromRevision
2d660 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 20 27 .=.preg_replace('{.*@(\d+)$}',.'
2d680 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 69 6f $1',.$fromReference);.$toRevisio
2d6a0 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 20 n.=.preg_replace('{.*@(\d+)$}',.
2d6c0 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 20 3d '$1',.$toReference);..$command.=
2d6e0 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 63 72 .sprintf('svn.log.-r%s:%s.--incr
2d700 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 76 69 emental',.$fromRevision,.$toRevi
2d720 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 73 73 sion);..if.(0.!==.$this->process
2d740 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 ->execute($command,.$output,.$pa
2d760 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
2d780 6f 6e 28 0a 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 on(.'Failed.to.execute.'...$comm
2d7a0 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 67 and..."\n\n"...$this->process->g
2d7c0 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f etErrorOutput().);.}.}.else.{.$o
2d7e0 75 74 70 75 74 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 63 68 61 6e utput.=."Could.not.retrieve.chan
2d800 67 65 73 20 62 65 74 77 65 65 6e 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 20 61 6e 64 20 24 ges.between.$fromReference.and.$
2d820 74 6f 52 65 66 65 72 65 6e 63 65 20 64 75 65 20 74 6f 20 6d 69 73 73 69 6e 67 20 72 65 76 69 73 toReference.due.to.missing.revis
2d840 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 ion.information";.}..return.$out
2d860 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 61 put;.}..protected.function.disca
2d880 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 68 rdChanges($path).{.if.(0.!==.$th
2d8a0 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 74 is->process->execute('svn.revert
2d8c0 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 77 .-R..',.$output,.$path)).{.throw
2d8e0 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
2d900 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 6f t.reset.changes\n\n:".$this->pro
2d920 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 3c cess->getErrorOutput());.}.}.}.<
2d940 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
2d960 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 69 er\Downloader;..use.Composer\Uti
2d980 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 65 l\Filesystem;...........class.Pe
2d9a0 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 61 arPackageExtractor.{.private.sta
2d9c0 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 66 tic.$rolesWithoutPackageNamePref
2d9e0 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 77 ix.=.array('php',.'script',.'www
2da00 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 74 ');..private.$filesystem;.privat
2da20 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 73 e.$file;..public.function.__cons
2da40 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 6c truct($file).{.if.(!is_file($fil
2da60 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 65 e)).{.throw.new.\UnexpectedValue
2da80 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 20 Exception('PEAR.package.file.is.
2daa0 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 2d not.found.at.'.$file);.}..$this-
2dac0 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 0a >filesystem.=.new.Filesystem();.
2dae0 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 0a $this->file.=.$file;.}..........
2db00 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 72 ..public.function.extractTo($tar
2db20 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 20 get,.array.$roles.=.array('php'.
2db40 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 61 =>.'/',.'script'.=>.'/bin'),.$va
2db60 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 20 rs.=.array()).{.$extractionPath.
2db80 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 72 =.$target.'/tarball';..try.{.$ar
2dba0 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 6c chive.=.new.\PharData($this->fil
2dbc0 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 74 e);.$archive->extractTo($extract
2dbe0 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 66 ionPath,.null,.true);..if.(!is_f
2dc00 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 61 ile($this->combine($extractionPa
2dc20 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 65 th,.'/package.xml'))).{.throw.ne
2dc40 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 41 w.\RuntimeException('Invalid.PEA
2dc60 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 61 R.package..It.must.contain.packa
2dc80 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 69 ge.xml.file.');.}..$fileCopyActi
2dca0 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 65 ons.=.$this->buildCopyActions($e
2dcc0 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 24 xtractionPath,.$roles,.$vars);.$
2dce0 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 73 this->copyFiles($fileCopyActions
2dd00 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 6c ,.$extractionPath,.$target,.$rol
2dd20 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 72 es,.$vars);.$this->filesystem->r
2dd40 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 3b emoveDirectory($extractionPath);
2dd60 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 29 .}.catch.(\Exception.$exception)
2dd80 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 .{.throw.new.\UnexpectedValueExc
2dda0 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 63 eption(sprintf('Failed.to.extrac
2ddc0 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 3a t.PEAR.package.%s.to.%s..Reason:
2dde0 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 63 .%s',.$this->file,.$target,.$exc
2de00 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 70 eption->getMessage()),.0,.$excep
2de20 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 6e tion);.}.}...........private.fun
2de40 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 2c ction.copyFiles($files,.$source,
2de60 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 61 .$target,.$roles,.$vars).{.forea
2de80 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 24 ch.($files.as.$file).{.$from.=.$
2dea0 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 72 this->combine($source,.$file['fr
2dec0 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 72 om']);.$to.=.$this->combine($tar
2dee0 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 6f get,.$roles[$file['role']]);.$to
2df00 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 6f .=.$this->combine($to,.$file['to
2df20 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 74 ']);.$tasks.=.$file['tasks'];.$t
2df40 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 73 his->copyFile($from,.$to,.$tasks
2df60 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 20 ,.$vars);.}.}..private.function.
2df80 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 61 copyFile($from,.$to,.$tasks,.$va
2dfa0 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 72 rs).{.if.(!is_file($from)).{.thr
2dfc0 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 69 ow.new.\RuntimeException('Invali
2dfe0 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 69 d.PEAR.package..package.xml.defi
2e000 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 73 nes.file.that.is.not.located.ins
2e020 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 79 ide.tarball.');.}..$this->filesy
2e040 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 6e stem->ensureDirectoryExists(dirn
2e060 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 6b ame($to));..if.(0.==.count($task
2e080 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 29 s)).{.$copied.=.copy($from,.$to)
2e0a0 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 63 ;.}.else.{.$content.=.file_get_c
2e0c0 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 20 ontents($from);.$replacements.=.
2e0e0 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 73 array();.foreach.($tasks.as.$tas
2e100 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 24 k).{.$pattern.=.$task['from'];.$
2e120 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 74 varName.=.$task['to'];.if.(isset
2e140 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 6d ($vars[$varName])).{.if.($varNam
2e160 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 72 e.===.'php_bin'.&&.false.===.str
2e180 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 74 pos($to,.'.bat')).{.$replacement
2e1a0 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 62 s[$pattern].=.preg_replace('{\.b
2e1c0 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 65 at$}',.'',.$vars[$varName]);.}.e
2e1e0 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 20 lse.{.$replacements[$pattern].=.
2e200 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 20 $vars[$varName];.}.}.}.$content.
2e220 3d 20 73 74 72 74 72 28 24 63 6f 6e 74 65 6e 74 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 29 =.strtr($content,.$replacements)
2e240 3b 0a 0a 24 63 6f 70 69 65 64 20 3d 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 ;..$copied.=.file_put_contents($
2e260 74 6f 2c 20 24 63 6f 6e 74 65 6e 74 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 to,.$content);.}..if.(false.===.
2e280 24 63 6f 70 69 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 $copied).{.throw.new.\RuntimeExc
2e2a0 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 20 25 eption(sprintf('Failed.to.copy.%
2e2c0 73 20 74 6f 20 25 73 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a s.to.%s',.$from,.$to));.}.}.....
2e2e0 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 70 .......private.function.buildCop
2e300 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 20 yActions($source,.array.$roles,.
2e320 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 6c $vars).{..$package.=.simplexml_l
2e340 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 2c oad_file($this->combine($source,
2e360 20 27 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 .'package.xml'));.if.(false.===.
2e380 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 $package).{.throw.new.\RuntimeEx
2e3a0 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 ception('Package.definition.file
2e3c0 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 53 63 68 .is.not.valid.');.}..$packageSch
2e3e0 65 6d 61 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d emaVersion.=.$package['version']
2e400 3b 0a 69 66 20 28 27 31 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 ;.if.('1.0'.==.$packageSchemaVer
2e420 73 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 sion).{.$children.=.$package->re
2e440 6c 65 61 73 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 lease->filelist->children();.$pa
2e460 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e ckageName.=.(string).$package->n
2e480 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 ame;.$packageVersion.=.(string).
2e4a0 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 76 65 72 73 69 6f 6e 3b 0a 24 73 6f 75 $package->release->version;.$sou
2e4c0 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 rceDir.=.$packageName...'-'...$p
2e4e0 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e ackageVersion;.$result.=.$this->
2e500 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 72 6f buildSourceList10($children,.$ro
2e520 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b les,.$sourceDir,.'',.null,.$pack
2e540 61 67 65 4e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 32 2e 30 27 20 3d 3d 20 24 70 61 ageName);.}.elseif.('2.0'.==.$pa
2e560 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 7c 7c 20 27 32 2e 31 27 20 3d 3d 20 24 ckageSchemaVersion.||.'2.1'.==.$
2e580 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 packageSchemaVersion).{.$childre
2e5a0 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 63 6f 6e 74 65 6e 74 73 2d 3e 63 68 69 6c 64 72 65 6e n.=.$package->contents->children
2e5c0 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 ();.$packageName.=.(string).$pac
2e5e0 6b 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 kage->name;.$packageVersion.=.(s
2e600 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 76 65 72 73 69 6f 6e 2d 3e 72 65 6c 65 61 73 tring).$package->version->releas
2e620 65 3b 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 e;.$sourceDir.=.$packageName...'
2e640 2d 27 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 -'...$packageVersion;.$result.=.
2e660 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 $this->buildSourceList20($childr
2e680 65 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c en,.$roles,.$sourceDir,.'',.null
2e6a0 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 ,.$packageName);..$namespaces.=.
2e6c0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 3b 0a 24 70 61 63 6b $package->getNamespaces();.$pack
2e6e0 61 67 65 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 age->registerXPathNamespace('ns'
2e700 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 5b 27 27 5d 29 3b 0a 24 72 65 6c 65 61 73 65 4e 6f 64 65 ,.$namespaces['']);.$releaseNode
2e720 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 68 70 72 65 6c 65 61 s.=.$package->xpath('ns:phprelea
2e740 73 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 79 52 65 6c 65 61 73 65 28 24 72 65 73 75 6c se');.$this->applyRelease($resul
2e760 74 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 3b 0a 7d 20 65 6c 73 65 t,.$releaseNodes,.$vars);.}.else
2e780 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 .{.throw.new.\RuntimeException('
2e7a0 55 6e 73 75 70 70 6f 72 74 65 64 20 73 63 68 65 6d 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 70 61 Unsupported.schema.version.of.pa
2e7c0 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 ckage.definition.file.');.}..ret
2e7e0 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 63 74 69 6f 6e urn.$result;.}..private.function
2e800 20 61 70 70 6c 79 52 65 6c 65 61 73 65 28 26 24 61 63 74 69 6f 6e 73 2c 20 24 72 65 6c 65 61 73 .applyRelease(&$actions,.$releas
2e820 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 eNodes,.$vars).{.foreach.($relea
2e840 73 65 4e 6f 64 65 73 20 61 73 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 29 20 7b 0a 24 72 65 71 75 seNodes.as.$releaseNode).{.$requ
2e860 69 72 65 64 4f 73 20 3d 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f iredOs.=.$releaseNode->installco
2e880 6e 64 69 74 69 6f 6e 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c nditions.&&.$releaseNode->instal
2e8a0 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d lconditions->os.&&.$releaseNode-
2e8c0 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3f 20 28 >installconditions->os->name.?.(
2e8e0 73 74 72 69 6e 67 29 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e string).$releaseNode->installcon
2e900 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3a 20 27 27 3b 0a 69 66 20 28 24 72 65 71 ditions->os->name.:.'';.if.($req
2e920 75 69 72 65 64 4f 73 20 26 26 20 24 76 61 72 73 5b 27 6f 73 27 5d 20 21 3d 20 24 72 65 71 75 69 uiredOs.&&.$vars['os'].!=.$requi
2e940 72 65 64 4f 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6c 65 61 redOs).{.continue;.}..if.($relea
2e960 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 seNode->filelist).{.foreach.($re
2e980 6c 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 20 leaseNode->filelist->children().
2e9a0 61 73 20 24 61 63 74 69 6f 6e 29 20 7b 0a 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 20 24 as.$action).{.if.('install'.==.$
2e9c0 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 action->getName()).{.$name.=.(st
2e9e0 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 24 61 73 20 3d 20 28 73 74 ring).$action['name'];.$as.=.(st
2ea00 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 61 73 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 ring).$action['as'];.if.(isset($
2ea20 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d actions[$name])).{.$actions[$nam
2ea40 65 5d 5b 27 74 6f 27 5d 20 3d 20 24 61 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 67 6e e]['to'].=.$as;.}.}.elseif.('ign
2ea60 6f 72 65 27 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e ore'.==.$action->getName()).{.$n
2ea80 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a ame.=.(string).$action['name'];.
2eaa0 75 6e 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b unset($actions[$name]);.}.else.{
2eac0 0a 0a 20 7d 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ...}.}.}.break;.}.}..private.fun
2eae0 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 ction.buildSourceList10($childre
2eb00 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
2eb20 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
2eb40 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
2eb60 65 6e 20 61 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 en.as.$child).{..if.($child->get
2eb80 4e 61 6d 65 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 Name().==.'dir').{.$dirSource.=.
2eba0 24 74 68 69 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 $this->combine($source,.(string)
2ebc0 20 24 63 68 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 .$child['name']);.$dirTarget.=.$
2ebe0 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a 20 24 74 61 72 67 child['baseinstalldir'].?:.$targ
2ec00 65 74 3b 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 3a et;.$dirRole.=.$child['role'].?:
2ec20 20 24 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 .$role;.$dirFiles.=.$this->build
2ec40 53 6f 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 SourceList10($child->children(),
2ec60 20 24 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 .$targetRoles,.$dirSource,.$dirT
2ec80 61 72 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 arget,.$dirRole,.$packageName);.
2eca0 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 $result.=.array_merge($result,.$
2ecc0 64 69 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 dirFiles);.}.elseif.($child->get
2ece0 4e 61 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 Name().==.'file').{.$fileRole.=.
2ed00 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 3a 20 24 72 6f 6c 65 (string).$child['role'].?:.$role
2ed20 3b 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 ;.if.(isset($targetRoles[$fileRo
2ed40 6c 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 le])).{.$fileName.=.(string).($c
2ed60 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 20 3f 3a 20 24 63 68 69 6c 64 5b 30 5d 29 3b 20 0a 20 24 66 hild['name'].?:.$child[0]);...$f
2ed80 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
2eda0 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
2edc0 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
2ede0 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a 20 24 74 61 72 67 65 74 2c 20 24 66 69 6c 65 seinstalldir'].?:.$target,.$file
2ee00 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 20 Name);.if.(!in_array($fileRole,.
2ee20 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 72 self::$rolesWithoutPackageNamePr
2ee40 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 4e efix)).{.$fileTarget.=.$packageN
2ee60 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 75 ame...'/'...$fileTarget;.}.$resu
2ee80 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 72 lt[(string).$child['name']].=.ar
2eea0 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 20 ray('from'.=>.$fileSource,.'to'.
2eec0 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 52 =>.$fileTarget,.'role'.=>.$fileR
2eee0 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 0a ole,.'tasks'.=>.array());.}.}.}.
2ef00 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 63 .return.$result;.}..private.func
2ef20 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 6e tion.buildSourceList20($children
2ef40 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 74 ,.$targetRoles,.$source,.$target
2ef60 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 74 ,.$role,.$packageName).{.$result
2ef80 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 65 .=.array();....foreach.($childre
2efa0 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 68 n.as.$child).{..if.('dir'.==.$ch
2efc0 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 24 ild->getName()).{.$dirSource.=.$
2efe0 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 6e this->combine($source,.$child['n
2f000 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 73 ame']);.$dirTarget.=.$child['bas
2f020 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a 20 24 74 61 72 67 65 74 3b 0a 24 64 69 72 52 6f einstalldir'].?:.$target;.$dirRo
2f040 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 3a 20 24 72 6f 6c 65 3b 0a 24 64 le.=.$child['role'].?:.$role;.$d
2f060 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 69 73 74 irFiles.=.$this->buildSourceList
2f080 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 74 52 6f 20($child->children(),.$targetRo
2f0a0 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 24 64 69 les,.$dirSource,.$dirTarget,.$di
2f0c0 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 20 3d 20 rRole,.$packageName);.$result.=.
2f0e0 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 73 29 3b array_merge($result,.$dirFiles);
2f100 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 67 65 74 .}.elseif.('file'.==.$child->get
2f120 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 29 20 24 Name()).{.$fileRole.=.(string).$
2f140 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 3a 20 24 72 6f 6c 65 3b 0a 69 66 20 28 69 73 73 65 child['role'].?:.$role;.if.(isse
2f160 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 7b 0a 24 66 t($targetRoles[$fileRole])).{.$f
2f180 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
2f1a0 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 3b 0a 24 66 ce,.(string).$child['name']);.$f
2f1c0 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 72 69 ileTarget.=.$this->combine((stri
2f1e0 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 5d 20 3f 3a ng).($child['baseinstalldir'].?:
2f200 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 27 6e 61 6d 65 .$target),.(string).$child['name
2f220 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 66 6f 72 65 61 ']);.$fileTasks.=.array();.forea
2f240 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 2f 2f 70 65 61 ch.($child->children('http://pea
2f260 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 73 20 24 74 61 r.php.net/dtd/tasks-1.0').as.$ta
2f280 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 24 74 61 73 6b skNode).{.if.('replace'.==.$task
2f2a0 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 6b 73 5b 5d 20 Node->getName()).{.$fileTasks[].
2f2c0 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 24 74 61 73 6b =.array('from'.=>.(string).$task
2f2e0 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 74 6f 27 20 3d Node->attributes()->from,.'to'.=
2f300 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 62 75 74 65 73 >.(string).$taskNode->attributes
2f320 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 24 66 69 6c 65 ()->to);.}.}.if.(!in_array($file
2f340 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 63 6b 61 67 65 Role,.self::$rolesWithoutPackage
2f360 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 3d 20 24 70 61 NamePrefix)).{.$fileTarget.=.$pa
2f380 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 65 74 3b 0a 7d ckageName...'/'...$fileTarget;.}
2f3a0 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 61 6d 65 27 5d .$result[(string).$child['name']
2f3c0 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 75 72 63 65 2c ].=.array('from'.=>.$fileSource,
2f3e0 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 27 20 3d 3e 20 .'to'.=>.$fileTarget,.'role'.=>.
2f400 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 54 61 73 6b 73 $fileRole,.'tasks'.=>.$fileTasks
2f420 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 0a 0a 70 72 69 );.}.}.}..return.$result;.}..pri
2f440 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 2c 20 24 72 69 vate.function.combine($left,.$ri
2f460 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 27 2f 27 29 20 ght).{.return.rtrim($left,.'/').
2f480 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 0a 7d 0a 7d 0a ..'/'...ltrim($right,.'/');.}.}.
2f4a0 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
2f4c0 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 50 61 ser\Downloader;..use.Composer\Pa
2f4e0 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 70 ckage\PackageInterface;.use.Comp
2f500 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 oser\IO\IOInterface;.use.Compose
2f520 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 63 6c 61 73 73 20 44 r\Util\Filesystem;.......class.D
2f540 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 ownloadManager.{.private.$io;.pr
2f560 69 76 61 74 65 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 ivate.$preferDist.=.false;.priva
2f580 74 65 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 te.$preferSource.=.false;.privat
2f5a0 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 e.$filesystem;.private.$download
2f5c0 65 72 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 69 63 20 66 75 ers.=.array();.........public.fu
2f5e0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 nction.__construct(IOInterface.$
2f600 69 6f 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 46 69 6c 65 73 io,.$preferSource.=.false,.Files
2f620 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 ystem.$filesystem.=.null).{.$thi
2f640 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 s->io.=.$io;.$this->preferSource
2f660 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 6c 65 73 79 73 .=.$preferSource;.$this->filesys
2f680 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 tem.=.$filesystem.?:.new.Filesys
2f6a0 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 74 69 6f 6e 20 tem();.}........public.function.
2f6c0 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 29 0a 7b setPreferSource($preferSource).{
2f6e0 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 66 65 72 53 6f .$this->preferSource.=.$preferSo
2f700 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 0a 0a 0a 70 75 urce;..return.$this;.}........pu
2f720 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 28 24 70 72 65 blic.function.setPreferDist($pre
2f740 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 74 20 3d 20 24 ferDist).{.$this->preferDist.=.$
2f760 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 7d 0a 0a 0a 0a preferDist;..return.$this;.}....
2f780 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
2f7a0 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 6f 72 65 61 63 ogress($outputProgress).{.foreac
2f7c0 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 6f 77 6e 6c 6f h.($this->downloaders.as.$downlo
2f7e0 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 70 75 74 50 72 ader).{.$downloader->setOutputPr
2f800 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 0a 72 65 74 75 ogress($outputProgress);.}..retu
2f820 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 74 rn.$this;.}.........public.funct
2f840 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 77 6e 6c 6f 61 ion.setDownloader($type,.Downloa
2f860 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 0a 24 74 79 70 derInterface.$downloader).{.$typ
2f880 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 73 2d 3e 64 6f e.=.strtolower($type);.$this->do
2f8a0 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 64 65 72 3b 0a wnloaders[$type].=.$downloader;.
2f8c0 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 75 62 6c 69 63 .return.$this;.}..........public
2f8e0 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 70 65 29 0a 7b .function.getDownloader($type).{
2f900 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 69 66 20 28 .$type.=.strtolower($type);.if.(
2f920 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 74 79 70 65 5d !isset($this->downloaders[$type]
2f940 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
2f960 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 6f 77 6e 6c 6f xception(sprintf('Unknown.downlo
2f980 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 70 65 73 3a 20 ader.type:.%s..Available.types:.
2f9a0 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 61 72 72 61 79 %s.',.$type,.implode(',.',.array
2f9c0 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 29 3b 0a 7d 0a _keys($this->downloaders))));.}.
2f9e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 .return.$this->downloaders[$type
2fa00 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 74 69 6f 6e 20 ];.}............public.function.
2fa20 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 65 getDownloaderForInstalledPackage
2fa40 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 (PackageInterface.$package).{.$i
2fa60 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 nstallationSource.=.$package->ge
2fa80 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 28 27 6d 65 74 tInstallationSource();..if.('met
2faa0 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 54 79 70 65 28 apackage'.===.$package->getType(
2fac0 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 3d 3d 3d 20 24 )).{.return;.}..if.('dist'.===.$
2fae0 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 6c 6f 61 64 65 installationSource).{.$downloade
2fb00 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 61 63 6b 61 67 r.=.$this->getDownloader($packag
2fb20 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 20 28 27 73 6f e->getDistType());.}.elseif.('so
2fb40 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 63 65 29 20 7b urce'.===.$installationSource).{
2fb60 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 .$downloader.=.$this->getDownloa
2fb80 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 28 29 29 3b 0a der($package->getSourceType());.
2fba0 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
2fbc0 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 61 63 6b 61 67 entException(.'Package.'.$packag
2fbe0 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 64 20 70 72 6f e.'.seems.not.been.installed.pro
2fc00 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 69 6f 6e 53 6f perly'.);.}..if.($installationSo
2fc20 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 73 74 61 6c 6c urce.!==.$downloader->getInstall
2fc40 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 5c 4c 6f 67 69 ationSource()).{.throw.new.\Logi
2fc60 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 61 64 65 72 20 cException(sprintf(.'Downloader.
2fc80 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 72 20 61 6e 64 "%s".is.a.%s.type.downloader.and
2fca0 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 64 20 25 73 27 .can.not.be.used.to.download.%s'
2fcc0 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 64 6f 77 6e 6c ,.get_class($downloader),.$downl
2fce0 6f 61 64 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 2c 20 oader->getInstallationSource(),.
2fd00 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 72 65 74 75 72 $installationSource.));.}..retur
2fd20 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 0a 70 75 62 6c n.$downloader;.}............publ
2fd40 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
2fd60 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 24 70 72 65 rface.$package,.$targetDir,.$pre
2fd80 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 6f 75 72 63 ferSource.=.null).{.$preferSourc
2fda0 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 20 24 70 72 e.=.null.!==.$preferSource.?.$pr
2fdc0 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 75 72 63 65 eferSource.:.$this->preferSource
2fde0 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 74 53 6f 75 ;.$sourceType.=.$package->getSou
2fe00 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 61 67 65 2d rceType();.$distType.=.$package-
2fe20 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 24 73 6f 75 72 63 65 73 20 3d 20 61 72 72 61 >getDistType();..$sources.=.arra
2fe40 79 28 29 3b 0a 69 66 20 28 24 73 6f 75 72 63 65 54 79 70 65 29 20 7b 0a 24 73 6f 75 72 63 65 73 y();.if.($sourceType).{.$sources
2fe60 5b 5d 20 3d 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a 69 66 20 28 24 64 69 73 74 54 79 70 65 29 20 [].=.'source';.}.if.($distType).
2fe80 7b 0a 24 73 6f 75 72 63 65 73 5b 5d 20 3d 20 27 64 69 73 74 27 3b 0a 7d 0a 0a 69 66 20 28 65 6d {.$sources[].=.'dist';.}..if.(em
2fea0 70 74 79 28 24 73 6f 75 72 63 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 pty($sources)).{.throw.new.\Inva
2fec0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e lidArgumentException('Package.'.
2fee0 24 70 61 63 6b 61 67 65 2e 27 20 6d 75 73 74 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 20 6f 72 $package.'.must.have.a.source.or
2ff00 20 64 69 73 74 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 69 66 20 28 28 21 24 70 61 63 .dist.specified');.}..if.((!$pac
2ff20 6b 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 kage->isDev().||.$this->preferDi
2ff40 73 74 29 20 26 26 20 21 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 73 6f 75 72 63 65 st).&&.!$preferSource).{.$source
2ff60 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 73 6f 75 72 63 65 73 29 3b 0a 7d 0a 0a s.=.array_reverse($sources);.}..
2ff80 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
2ffa0 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 ryExists($targetDir);..foreach.(
2ffc0 24 73 6f 75 72 63 65 73 20 61 73 20 24 69 20 3d 3e 20 24 73 6f 75 72 63 65 29 20 7b 0a 69 66 20 $sources.as.$i.=>.$source).{.if.
2ffe0 28 69 73 73 65 74 28 24 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 (isset($e)).{.$this->io->writeEr
30000 72 6f 72 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 4e 6f 77 20 74 72 79 69 6e 67 20 74 6f 20 ror('....<warning>Now.trying.to.
30020 64 6f 77 6e 6c 6f 61 64 20 66 72 6f 6d 20 27 20 2e 20 24 73 6f 75 72 63 65 20 2e 20 27 3c 2f 77 download.from.'...$source...'</w
30040 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 61 6c arning>');.}.$package->setInstal
30060 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 73 6f 75 72 63 65 29 3b 0a 74 72 79 20 7b 0a 24 64 6f lationSource($source);.try.{.$do
30080 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 wnloader.=.$this->getDownloaderF
300a0 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 orInstalledPackage($package);.if
300c0 20 28 24 64 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 64 6f .($downloader).{.$downloader->do
300e0 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a wnload($package,.$targetDir);.}.
30100 62 72 65 61 6b 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 break;.}.catch.(\RuntimeExceptio
30120 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 73 6f 75 72 63 65 n.$e).{.if.($i.===.count($source
30140 73 29 20 2d 20 31 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f s).-.1).{.throw.$e;.}..$this->io
30160 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 46 61 69 6c ->writeError(.'....<warning>Fail
30180 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 27 2e 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 ed.to.download.'..$package->getP
301a0 72 65 74 74 79 4e 61 6d 65 28 29 2e 0a 27 20 66 72 6f 6d 20 27 20 2e 20 24 73 6f 75 72 63 65 20 rettyName()..'.from.'...$source.
301c0 2e 20 27 3a 20 27 2e 0a 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e ..':.'..$e->getMessage().'</warn
301e0 69 6e 67 3e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ing>'.);.}.}.}...........public.
30200 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 function.update(PackageInterface
30220 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
30240 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d get,.$targetDir).{.$downloader.=
30260 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 .$this->getDownloaderForInstalle
30280 64 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 64 6f 77 6e 6c 6f dPackage($initial);.if.(!$downlo
302a0 61 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e ader).{.return;.}..$installation
302c0 53 6f 75 72 63 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 Source.=.$initial->getInstallati
302e0 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 onSource();..if.('dist'.===.$ins
30300 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 tallationSource).{.$initialType.
30320 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 =.$initial->getDistType();.$targ
30340 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b etType.=.$target->getDistType();
30360 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 .}.else.{.$initialType.=.$initia
30380 6c 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 l->getSourceType();.$targetType.
303a0 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a =.$target->getSourceType();.}...
303c0 20 69 66 20 28 24 74 61 72 67 65 74 2d 3e 69 73 44 65 76 28 29 20 26 26 20 27 64 69 73 74 27 20 .if.($target->isDev().&&.'dist'.
303e0 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
30400 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 loader->remove($initial,.$target
30420 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 Dir);.$this->download($target,.$
30440 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 targetDir);..return;.}..if.($ini
30460 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 74 61 72 tialType.===.$targetType).{.$tar
30480 67 65 74 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 69 6e 73 74 get->setInstallationSource($inst
304a0 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 75 70 allationSource);.$downloader->up
304c0 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 date($initial,.$target,.$targetD
304e0 69 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 ir);.}.else.{.$downloader->remov
30500 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e e($initial,.$targetDir);.$this->
30520 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 27 73 download($target,.$targetDir,.'s
30540 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 63 65 29 3b ource'.===.$installationSource);
30560 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 72 65 6d 6f .}.}........public.function.remo
30580 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 20 24 74 ve(PackageInterface.$package,.$t
305a0 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-
305c0 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
305e0 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 64 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a e($package);.if.($downloader).{.
30600 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 74 $downloader->remove($package,.$t
30620 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a argetDir);.}.}.}.<?php..........
30640 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b ..namespace.Composer\Downloader;
30660 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e ..use.Composer\Package\PackageIn
30680 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 6f 77 6e 6c 6f terface;........interface.Downlo
306a0 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 aderInterface.{......public.func
306c0 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a tion.getInstallationSource();...
306e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 .....public.function.download(Pa
30700 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b ckageInterface.$package,.$path);
30720 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 .........public.function.update(
30740 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
30760 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a geInterface.$target,.$path);....
30780 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 ....public.function.remove(Packa
307a0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a geInterface.$package,.$path);...
307c0 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
307e0 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 3c 3f 70 68 70 ogress($outputProgress);.}.<?php
30800 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
30820 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 6f 72 74 45 78 ownloader;.....class.TransportEx
30840 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f ception.extends.\RuntimeExceptio
30860 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 61 64 65 72 73 3b 0a 70 72 6f 74 65 63 74 65 n.{.protected.$headers;.protecte
30880 64 20 24 72 65 73 70 6f 6e 73 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 d.$response;..public.function.se
308a0 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 61 64 tHeaders($headers).{.$this->head
308c0 65 72 73 20 3d 20 24 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ers.=.$headers;.}..public.functi
308e0 6f 6e 20 67 65 74 48 65 61 64 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getHeaders().{.return.$this->
30900 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 headers;.}..public.function.setR
30920 65 73 70 6f 6e 73 65 28 24 72 65 73 70 6f 6e 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 70 esponse($response).{.$this->resp
30940 6f 6e 73 65 20 3d 20 24 72 65 73 70 6f 6e 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 onse.=.$response;.}..public.func
30960 74 69 6f 6e 20 67 65 74 52 65 73 70 6f 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getResponse().{.return.$thi
30980 73 2d 3e 72 65 73 70 6f 6e 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->response;.}.}.<?php..........
309a0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b ..namespace.Composer\Downloader;
309c0 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 20 65 78 74 65 .......class.PharDownloader.exte
309e0 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 70 72 6f 74 65 nds.ArchiveDownloader.{....prote
30a00 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
30a20 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 72 28 24 66 69 th).{...$archive.=.new.\Phar($fi
30a40 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 61 74 68 2c 20 le);.$archive->extractTo($path,.
30a60 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 0a 0a 0a 0a 0a null,.true);......}.}.<?php.....
30a80 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
30aa0 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 61 64 65 72 20 ader;.......class.TarDownloader.
30ac0 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 70 extends.ArchiveDownloader.{....p
30ae0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c rotected.function.extract($file,
30b00 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 72 .$path).{...$archive.=.new.\Phar
30b20 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 61 63 74 54 6f Data($file);.$archive->extractTo
30b40 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 70 68 70 0a 0a ($path,.null,.true);.}.}.<?php..
30b60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 ..........namespace.Composer\Dow
30b80 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 nloader;..use.Composer\Package\P
30ba0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 ackageInterface;.use.Composer\Ut
30bc0 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 il\ProcessExecutor;.....class.Hg
30be0 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 Downloader.extends.VcsDownloader
30c00 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 .{....public.function.doDownload
30c20 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
30c40 68 2c 20 24 75 72 6c 29 0a 7b 0a 24 75 72 6c 20 3d 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f h,.$url).{.$url.=.ProcessExecuto
30c60 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 3b 0a 24 72 65 66 20 3d 20 50 72 6f 63 65 73 73 45 r::escape($url);.$ref.=.ProcessE
30c80 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 xecutor::escape($package->getSou
30ca0 72 63 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 rceReference());.$this->io->writ
30cc0 65 45 72 72 6f 72 28 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 eError("....Cloning.".$package->
30ce0 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 getSourceReference());.$command.
30d00 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 2c 20 24 75 72 6c =.sprintf('hg.clone.%s.%s',.$url
30d20 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 ,.ProcessExecutor::escape($path)
30d40 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 65 );.if.(0.!==.$this->process->exe
30d60 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 29 29 20 cute($command,.$ignoredOutput)).
30d80 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 {.throw.new.\RuntimeException('F
30da0 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 ailed.to.execute.'...$command...
30dc0 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f "\n\n"...$this->process->getErro
30de0 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 rOutput());.}.$command.=.sprintf
30e00 28 27 68 67 20 75 70 20 25 73 27 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 ('hg.up.%s',.$ref);.if.(0.!==.$t
30e20 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 his->process->execute($command,.
30e40 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 $ignoredOutput,.realpath($path))
30e60 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(
30e80 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 'Failed.to.execute.'...$command.
30ea0 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 .."\n\n"...$this->process->getEr
30ec0 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rorOutput());.}.}.....public.fun
30ee0 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 61 63 65 20 ction.doUpdate(PackageInterface.
30f00 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 $initial,.PackageInterface.$targ
30f20 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 24 75 72 6c 20 3d 20 50 72 6f 63 65 73 et,.$path,.$url).{.$url.=.Proces
30f40 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 3b 0a 24 72 65 66 20 3d 20 sExecutor::escape($url);.$ref.=.
30f60 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 61 72 67 65 74 2d ProcessExecutor::escape($target-
30f80 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 >getSourceReference());.$this->i
30fa0 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 55 70 64 61 74 69 6e 67 20 74 6f 20 22 o->writeError("....Updating.to."
30fc0 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b .$target->getSourceReference());
30fe0 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 29 29 20 7b 0a 74 ..if.(!is_dir($path.'/.hg')).{.t
31000 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 68 65 20 hrow.new.\RuntimeException('The.
31020 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 72 6f 6d 20 27 2e .hg.directory.is.missing.from.'.
31040 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 70 6f 73 65 72 2e $path.',.see.http://getcomposer.
31060 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 6e 66 6f 72 6d 61 org/commit-deps.for.more.informa
31080 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 6e 74 66 28 27 68 tion');.}..$command.=.sprintf('h
310a0 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 72 6c 2c 20 24 72 g.pull.%s.&&.hg.up.%s',.$url,.$r
310c0 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 ef);.if.(0.!==.$this->process->e
310e0 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 75 74 2c xecute($command,.$ignoredOutput,
31100 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 20 6e 65 77 20 5c .realpath($path))).{.throw.new.\
31120 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 RuntimeException('Failed.to.exec
31140 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 2e 20 24 74 68 69 ute.'...$command..."\n\n"...$thi
31160 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 7d s->process->getErrorOutput());.}
31180 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
311a0 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
311c0 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 74 68 2e 27 2f 2e ,.$path).{.if.(!is_dir($path.'/.
311e0 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 70 72 6f 63 65 73 hg')).{.return;.}..$this->proces
31200 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 74 2c 20 72 65 61 s->execute('hg.st',.$output,.rea
31220 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 6d 28 24 6f 75 74 lpath($path));..return.trim($out
31240 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 20 66 75 put).?:.null;.}.....protected.fu
31260 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 66 65 72 65 nction.getCommitLogs($fromRefere
31280 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 24 63 6f 6d nce,.$toReference,.$path).{.$com
312a0 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 25 73 3a 25 73 20 mand.=.sprintf('hg.log.-r.%s:%s.
312c0 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 65 72 65 6e 63 65 --style.compact',.$fromReference
312e0 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 3d 20 24 74 68 69 ,.$toReference);..if.(0.!==.$thi
31300 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
31320 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
31340 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
31360 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".
31380 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
313a0 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 7d 0a 3c 3f 70 68 ());.}..return.$output;.}.}.<?ph
313c0 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\
313e0 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 Downloader;..use.Composer\Packag
31400 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 69 6e 74 65 72 66 e\PackageInterface;.......interf
31420 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 7b 0a 0a 0a 0a 0a ace.ChangeReportInterface.{.....
31440 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 ...public.function.getLocalChang
31460 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 2c 20 24 70 es(PackageInterface.$package,.$p
31480 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ath);.}.<?php............namespa
314a0 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
314c0 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;.
314e0 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 46 69 6e use.Symfony\Component\Finder\Fin
31500 64 65 72 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 68 der;.........abstract.class.Arch
31520 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 6f iveDownloader.extends.FileDownlo
31540 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 6f ader.{....public.function.downlo
31560 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
31580 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 6f ath).{.$temporaryDir.=.$this->co
315a0 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 73 nfig->get('vendor-dir').'/compos
315c0 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 29 er/'.substr(md5(uniqid('',.true)
315e0 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 24 ),.0,.8);.$retries.=.3;.while.($
31600 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 3a retries--).{.$fileName.=.parent:
31620 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 20 :download($package,.$path);..if.
31640 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 73 ($this->io->isVerbose()).{.$this
31660 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 45 78 74 72 61 63 74 69 6e 67 ->io->writeError('....Extracting
31680 20 61 72 63 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 .archive');.}..try.{.$this->file
316a0 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 system->ensureDirectoryExists($t
316c0 65 6d 70 6f 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 emporaryDir);.try.{.$this->extra
316e0 63 74 28 24 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 ct($fileName,.$temporaryDir);.}.
31700 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 70 61 72 65 6e 74 catch.(\Exception.$e).{...parent
31720 3a 3a 63 6c 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 ::clearCache($package,.$path);.t
31740 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 hrow.$e;.}..$this->filesystem->u
31760 6e 6c 69 6e 6b 28 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 0a 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d nlink($fileName);..$contentDir.=
31780 20 24 74 68 69 73 2d 3e 67 65 74 46 6f 6c 64 65 72 43 6f 6e 74 65 6e 74 28 24 74 65 6d 70 6f 72 .$this->getFolderContent($tempor
317a0 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 24 63 6f 6e aryDir);....if.(1.===.count($con
317c0 74 65 6e 74 44 69 72 29 20 26 26 20 69 73 5f 64 69 72 28 72 65 73 65 74 28 24 63 6f 6e 74 65 6e tentDir).&&.is_dir(reset($conten
317e0 74 44 69 72 29 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 3e 67 tDir))).{.$contentDir.=.$this->g
31800 65 74 46 6f 6c 64 65 72 43 6f 6e 74 65 6e 74 28 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 etFolderContent((string).reset($
31820 63 6f 6e 74 65 6e 74 44 69 72 29 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 6f 6e contentDir));.}....foreach.($con
31840 74 65 6e 74 44 69 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 20 3d 20 28 73 74 72 tentDir.as.$file).{.$file.=.(str
31860 69 6e 67 29 20 24 66 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 ing).$file;.$this->filesystem->r
31880 65 6e 61 6d 65 28 24 66 69 6c 65 2c 20 24 70 61 74 68 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e ename($file,.$path...'/'...basen
318a0 61 6d 65 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 ame($file));.}..$this->filesyste
318c0 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 m->removeDirectory($temporaryDir
318e0 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 );.if.($this->filesystem->isDirE
31900 6d 70 74 79 28 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 mpty($this->config->get('vendor-
31920 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 dir').'/composer/')).{.$this->fi
31940 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 74 68 69 73 2d lesystem->removeDirectory($this-
31960 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 2e 27 2f 63 6f 6d >config->get('vendor-dir').'/com
31980 70 6f 73 65 72 2f 27 29 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 poser/');.}.if.($this->filesyste
319a0 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 m->isDirEmpty($this->config->get
319c0 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 ('vendor-dir'))).{.$this->filesy
319e0 73 74 65 6d 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 63 6f 6e stem->removeDirectory($this->con
31a00 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 7d 0a 7d 20 63 61 74 fig->get('vendor-dir'));.}.}.cat
31a20 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 ch.(\Exception.$e).{...$this->fi
31a40 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 lesystem->removeDirectory($path)
31a60 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 63 ;.$this->filesystem->removeDirec
31a80 74 6f 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 tory($temporaryDir);....if.($ret
31aa0 72 69 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 ries.&&.$e.instanceof.\Unexpecte
31ac0 64 56 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 dValueException.&&.class_exists(
31ae0 27 5a 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 'ZipArchive').&&.$e->getCode().=
31b00 3d 3d 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 ==.\ZipArchive::ER_NOZIP).{.$thi
31b20 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 49 6e 76 61 6c 69 64 20 7a s->io->writeError('....Invalid.z
31b40 69 70 20 66 69 6c 65 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 ip.file,.retrying...');.usleep(5
31b60 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 0a 7d 00000);.continue;.}..throw.$e;.}
31b80 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f ..break;.}..$this->io->writeErro
31ba0 72 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 r('');.}.....protected.function.
31bc0 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 getFileName(PackageInterface.$pa
31be0 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 70 61 ckage,.$path).{.return.rtrim($pa
31c00 74 68 2e 27 2f 27 2e 6d 64 35 28 24 70 61 74 68 2e 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 th.'/'.md5($path.spl_object_hash
31c20 28 24 70 61 63 6b 61 67 65 29 29 2e 27 2e 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 ($package)).'.'.pathinfo(parse_u
31c40 72 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 rl($package->getDistUrl(),.PHP_U
31c60 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 27 RL_PATH),.PATHINFO_EXTENSION),.'
31c80 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 .');.}.....protected.function.pr
31ca0 6f 63 65 73 73 55 72 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 ocessUrl(PackageInterface.$packa
31cc0 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 ge,.$url).{.if.($package->getDis
31ce0 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 67 69 tReference().&&.strpos($url,.'gi
31d00 74 68 75 62 2e 63 6f 6d 27 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e thub.com')).{.if.(preg_match('{^
31d20 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 2e 63 6f 6d 2f 28 https?://(?:www\.)?github\.com/(
31d40 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 6c 2f 28 2e 2b [^/]+)/([^/]+)/(zip|tar)ball/(.+
31d60 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d )$}i',.$url,.$match)).{...$url.=
31d80 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 .'https://api.github.com/repos/'
31da0 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 ...$match[1]...'/'..$match[2]...
31dc0 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 '/'...$match[3]...'ball/'...$pac
31de0 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 kage->getDistReference();.}.else
31e00 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()
31e20 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 .&&.preg_match('{^https?://(?:ww
31e40 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 2b 29 w\.)?github\.com/([^/]+)/([^/]+)
31e60 2f 61 72 63 68 69 76 65 2f 2e 2b 5c 2e 28 7a 69 70 7c 74 61 72 29 28 3f 3a 5c 2e 67 7a 29 3f 24 /archive/.+\.(zip|tar)(?:\.gz)?$
31e80 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 }i',.$url,.$match)).{...$url.=.'
31ea0 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e https://api.github.com/repos/'..
31ec0 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f .$match[1]...'/'..$match[2]...'/
31ee0 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 '...$match[3]...'ball/'...$packa
31f00 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 ge->getDistReference();.}.elseif
31f20 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 20 26 .($package->getDistReference().&
31f40 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 61 70 69 5c 2e 67 69 &.preg_match('{^https?://api\.gi
31f60 74 68 75 62 5c 2e 63 6f 6d 2f 72 65 70 6f 73 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f thub\.com/repos/([^/]+)/([^/]+)/
31f80 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 28 3f 3a 2f 2e 2b 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c (zip|tar)ball(?:/.+)?$}i',.$url,
31fa0 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
31fc0 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]
31fe0 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
32000 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
32020 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f tReference();.}.}..if.(!extensio
32040 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 28 30 20 3d 3d 3d 20 73 74 n_loaded('openssl').&&.(0.===.st
32060 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 73 3a 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 rpos($url,.'https:').||.0.===.st
32080 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 rpos($url,.'http://github.com'))
320a0 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(
320c0 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 'You.must.enable.the.openssl.ext
320e0 65 6e 73 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 66 69 6c 65 73 20 76 69 61 20 68 74 74 ension.to.download.files.via.htt
32100 70 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 70 72 6f 63 65 73 73 55 ps');.}..return.parent::processU
32120 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 rl($package,.$url);.}..........a
32140 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 65 78 74 72 61 bstract.protected.function.extra
32160 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ct($file,.$path);........private
32180 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 6c 64 65 72 43 6f 6e 74 65 6e 74 28 24 64 69 72 29 .function.getFolderContent($dir)
321a0 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 0a 2d 3e .{.$finder.=.Finder::create().->
321c0 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 ignoreVCS(false).->ignoreDotFile
321e0 73 28 66 61 6c 73 65 29 0a 2d 3e 64 65 70 74 68 28 30 29 0a 2d 3e 69 6e 28 24 64 69 72 29 3b 0a s(false).->depth(0).->in($dir);.
32200 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 .return.iterator_to_array($finde
32220 72 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 r);.}.}.<?php............namespa
32240 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c ce.Composer\Downloader;.......cl
32260 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 ass.FilesystemException.extends.
32280 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 \Exception.{.public.function.__c
322a0 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 24 63 6f 64 65 20 onstruct($message.=.null,.$code.
322c0 3d 20 6e 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 =.null,.\Exception.$previous.=.n
322e0 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 22 46 69 6c 65 ull).{.parent::__construct("File
32300 73 79 73 74 65 6d 20 65 78 63 65 70 74 69 6f 6e 3a 20 5c 6e 22 2e 24 6d 65 73 73 61 67 65 2c 20 system.exception:.\n".$message,.
32320 24 63 6f 64 65 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a $code,.$previous);.}.}.<?php....
32340 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c ........namespace.Composer\Downl
32360 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 oader;..use.Composer\Package\Pac
32380 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
323a0 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 sitory\VcsRepository;.use.Compos
323c0 65 72 5c 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 er\Util\Perforce;.....class.Perf
323e0 6f 72 63 65 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 orceDownloader.extends.VcsDownlo
32400 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 65 72 66 6f 72 63 65 3b 0a 0a 0a 0a 0a ader.{.protected.$perforce;.....
32420 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 public.function.doDownload(Packa
32440 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 2c 20 24 75 72 geInterface.$package,.$path,.$ur
32460 6c 29 0a 7b 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 l).{.$ref.=.$package->getSourceR
32480 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 6c 61 62 65 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c eference();.$label.=.$this->getL
324a0 61 62 65 6c 46 72 6f 6d 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 29 3b 0a 0a abelFromSourceReference($ref);..
324c0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 43 6c 6f 6e 69 $this->io->writeError('....Cloni
324e0 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 72 63 ng.'...$ref);.$this->initPerforc
32500 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 24 74 68 69 73 2d e($package,.$path,.$url);.$this-
32520 3e 70 65 72 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 >perforce->setStream($ref);.$thi
32540 73 2d 3e 70 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 s->perforce->p4Login($this->io);
32560 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 43 6c 69 65 6e 74 53 .$this->perforce->writeP4ClientS
32580 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 6f 6e 6e 65 63 74 43 pec();.$this->perforce->connectC
325a0 6c 69 65 6e 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 lient();.$this->perforce->syncCo
325c0 64 65 42 61 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 deBase($label);.$this->perforce-
325e0 3e 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 >cleanupClientSpec();.}..private
32600 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 61 62 65 6c 46 72 6f 6d 53 6f 75 72 63 65 52 65 66 65 .function.getLabelFromSourceRefe
32620 72 65 6e 63 65 28 24 72 65 66 29 0a 7b 0a 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 72 65 66 rence($ref).{.$pos.=.strpos($ref
32640 2c 27 40 27 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 29 20 7b 0a 72 65 74 ,'@');.if.(false.!==.$pos).{.ret
32660 75 72 6e 20 73 75 62 73 74 72 28 24 72 65 66 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 7d 0a 0a 72 urn.substr($ref,.$pos.+.1);.}..r
32680 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 eturn.null;.}..public.function.i
326a0 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 68 2c 20 24 75 72 nitPerforce($package,.$path,.$ur
326c0 6c 29 0a 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 29 l).{.if.(!empty($this->perforce)
326e0 29 20 7b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 50 ).{.$this->perforce->initializeP
32700 61 74 68 28 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 70 6f 73 69 74 ath($path);..return;.}..$reposit
32720 6f 72 79 20 3d 20 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 3b ory.=.$package->getRepository();
32740 0a 24 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 72 65 70 6f 73 69 .$repoConfig.=.null;.if.($reposi
32760 74 6f 72 79 20 69 6e 73 74 61 6e 63 65 6f 66 20 56 63 73 52 65 70 6f 73 69 74 6f 72 79 29 20 7b tory.instanceof.VcsRepository).{
32780 0a 24 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 43 6f 6e .$repoConfig.=.$this->getRepoCon
327a0 66 69 67 28 24 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f fig($repository);.}.$this->perfo
327c0 72 63 65 20 3d 20 50 65 72 66 6f 72 63 65 3a 3a 63 72 65 61 74 65 28 24 72 65 70 6f 43 6f 6e 66 rce.=.Perforce::create($repoConf
327e0 69 67 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c ig,.$url,.$path,.$this->process,
32800 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e .$this->io);.}..private.function
32820 20 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 56 63 73 52 65 70 6f 73 69 74 6f 72 79 20 24 72 65 .getRepoConfig(VcsRepository.$re
32840 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e pository).{.return.$repository->
32860 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 getRepoConfig();.}.....public.fu
32880 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 61 63 65 nction.doUpdate(PackageInterface
328a0 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
328c0 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 6f 77 get,.$path,.$url).{.$this->doDow
328e0 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a nload($target,.$path,.$url);.}..
32900 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 ...public.function.getLocalChang
32920 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 2c 20 24 70 es(PackageInterface.$package,.$p
32940 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 50 65 ath).{.$this->io->writeError('Pe
32960 72 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 rforce.driver.does.not.check.for
32980 20 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 .local.changes.before.overriding
329a0 27 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 ',.true);..return;.}.....protect
329c0 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 52 ed.function.getCommitLogs($fromR
329e0 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 7b eference,.$toReference,.$path).{
32a00 0a 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 .$commitLogs.=.$this->perforce->
32a20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 getCommitLogs($fromReference,.$t
32a40 6f 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 oReference);..return.$commitLogs
32a60 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 65 ;.}..public.function.setPerforce
32a80 28 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 ($perforce).{.$this->perforce.=.
32aa0 24 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 $perforce;.}.}.<?php............
32ac0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a namespace.Composer\Downloader;..
32ae0 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 73 65 use.Composer\Config;.use.Compose
32b00 72 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 r\Cache;.use.Composer\EventDispa
32b20 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 6f tcher\EventDispatcher;.use.Compo
32b40 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f ser\Util\ProcessExecutor;.use.Co
32b60 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 5a 69 70 41 72 mposer\IO\IOInterface;.use.ZipAr
32b80 63 68 69 76 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 chive;.....class.ZipDownloader.e
32ba0 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 70 72 6f 74 65 xtends.ArchiveDownloader.{.prote
32bc0 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 cted.$process;..public.function.
32be0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e __construct(IOInterface.$io,.Con
32c00 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 65 76 fig.$config,.EventDispatcher.$ev
32c20 65 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 entDispatcher.=.null,.Cache.$cac
32c40 68 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 he.=.null,.ProcessExecutor.$proc
32c60 65 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 ess.=.null).{.$this->process.=.$
32c80 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 process.?:.new.ProcessExecutor($
32ca0 69 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 io);.parent::__construct($io,.$c
32cc0 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)
32ce0 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 74 72 61 63 74 28 ;.}..protected.function.extract(
32d00 24 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 $file,.$path).{.$processError.=.
32d20 6e 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 null;....if.(!defined('PHP_WINDO
32d40 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d WS_VERSION_BUILD')).{.$command.=
32d60 20 27 75 6e 7a 69 70 20 27 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 .'unzip.'.ProcessExecutor::escap
32d80 65 28 24 66 69 6c 65 29 2e 27 20 2d 64 20 27 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a e($file).'.-d.'.ProcessExecutor:
32da0 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 20 2e 20 27 20 26 26 20 63 68 6d 6f 64 20 2d 52 20 75 :escape($path)...'.&&.chmod.-R.u
32dc0 2b 77 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 +w.'...ProcessExecutor::escape($
32de0 70 61 74 68 29 3b 0a 74 72 79 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 path);.try.{.if.(0.===.$this->pr
32e00 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 ocess->execute($command,.$ignore
32e20 64 4f 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 dOutput)).{.return;.}..$processE
32e40 72 72 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 rror.=.'Failed.to.execute.'...$c
32e60 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ommand..."\n\n"...$this->process
32e80 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 ->getErrorOutput();.}.catch.(\Ex
32ea0 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 ception.$e).{.$processError.=.'F
32ec0 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 ailed.to.execute.'...$command...
32ee0 22 5c 6e 5c 6e 22 20 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d 0a 7d 0a 0a "\n\n"...$e->getMessage();.}.}..
32f00 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 5a 69 70 41 72 63 68 69 76 65 27 29 29 if.(!class_exists('ZipArchive'))
32f20 20 7b 0a 0a 20 24 69 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 .{...$iniPath.=.php_ini_loaded_f
32f40 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 ile();..if.($iniPath).{.$iniMess
32f60 61 67 65 20 3d 20 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 age.=.'The.php.ini.used.by.your.
32f80 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 command-line.PHP.is:.'...$iniPat
32fa0 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 41 20 70 68 70 h;.}.else.{.$iniMessage.=.'A.php
32fc0 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 77 69 .ini.file.does.not.exist..You.wi
32fe0 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 0a 24 65 72 72 ll.have.to.create.one.';.}..$err
33000 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 68 65 20 61 or.=."Could.not.decompress.the.a
33020 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 70 20 65 78 74 65 6e rchive,.enable.the.PHP.zip.exten
33040 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 7a 69 70 2e 5c 6e 22 0a 2e 20 24 69 6e 69 sion.or.install.unzip.\n"...$ini
33060 4d 65 73 73 61 67 65 20 2e 20 22 5c 6e 22 20 2e 20 24 70 72 6f 63 65 73 73 45 72 72 6f 72 3b 0a Message..."\n"...$processError;.
33080 0a 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 .if.(!defined('PHP_WINDOWS_VERSI
330a0 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f ON_BUILD')).{.$error.=."Could.no
330c0 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
330e0 20 74 68 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 2e 5c 6e 22 20 2e 20 24 69 6e .the.PHP.zip.extension.\n"...$in
33100 69 4d 65 73 73 61 67 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 iMessage;.}..throw.new.\RuntimeE
33120 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 xception($error);.}..$zipArchive
33140 20 3d 20 6e 65 77 20 5a 69 70 41 72 63 68 69 76 65 28 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 .=.new.ZipArchive();..if.(true.!
33160 3d 3d 20 28 24 72 65 74 76 61 6c 20 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 ==.($retval.=.$zipArchive->open(
33180 24 66 69 6c 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 $file))).{.throw.new.\Unexpected
331a0 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 ValueException($this->getErrorMe
331c0 73 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 2c 20 24 72 65 74 76 61 6c 29 3b ssage($retval,.$file),.$retval);
331e0 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 65 78 .}..if.(true.!==.$zipArchive->ex
33200 74 72 61 63 74 54 6f 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 tractTo($path)).{.throw.new.\Run
33220 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 54 68 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f timeException("There.was.an.erro
33240 72 20 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 5a 49 50 20 66 69 6c 65 2e 20 43 6f 72 72 75 r.extracting.the.ZIP.file..Corru
33260 70 74 20 66 69 6c 65 3f 22 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 pt.file?");.}..$zipArchive->clos
33280 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 66 75 6e 63 74 69 6f e();.}.........protected.functio
332a0 6e 20 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 n.getErrorMessage($retval,.$file
332c0 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 72 65 74 76 61 6c 29 20 7b 0a 63 61 73 65 20 5a 69 70 41 ).{.switch.($retval).{.case.ZipA
332e0 72 63 68 69 76 65 3a 3a 45 52 5f 45 58 49 53 54 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 rchive::ER_EXISTS:.return.sprint
33300 66 28 22 46 69 6c 65 20 27 25 73 27 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 2c 20 24 f("File.'%s'.already.exists.",.$
33320 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 49 4e 43 4f 4e file);.case.ZipArchive::ER_INCON
33340 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 61 72 63 68 69 76 65 20 27 S:.return.sprintf("Zip.archive.'
33360 25 73 27 20 69 73 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 %s'.is.inconsistent.",.$file);.c
33380 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 49 4e 56 41 4c 3a 0a 72 65 74 75 72 6e ase.ZipArchive::ER_INVAL:.return
333a0 20 73 70 72 69 6e 74 66 28 22 49 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 20 28 25 73 29 22 .sprintf("Invalid.argument.(%s)"
333c0 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4d 45 ,.$file);.case.ZipArchive::ER_ME
333e0 4d 4f 52 59 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 4d 61 6c 6c 6f 63 20 66 61 69 MORY:.return.sprintf("Malloc.fai
33400 6c 75 72 65 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 lure.(%s)",.$file);.case.ZipArch
33420 69 76 65 3a 3a 45 52 5f 4e 4f 45 4e 54 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 4e ive::ER_NOENT:.return.sprintf("N
33440 6f 20 73 75 63 68 20 7a 69 70 20 66 69 6c 65 3a 20 27 25 73 27 22 2c 20 24 66 69 6c 65 29 3b 0a o.such.zip.file:.'%s'",.$file);.
33460 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 5a 49 50 3a 0a 72 65 74 75 72 case.ZipArchive::ER_NOZIP:.retur
33480 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f 74 20 61 20 7a 69 70 20 61 72 63 n.sprintf("'%s'.is.not.a.zip.arc
334a0 68 69 76 65 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a hive.",.$file);.case.ZipArchive:
334c0 3a 45 52 5f 4f 50 45 4e 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 43 61 6e 27 74 20 :ER_OPEN:.return.sprintf("Can't.
334e0 6f 70 65 6e 20 7a 69 70 20 66 69 6c 65 3a 20 25 73 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 open.zip.file:.%s",.$file);.case
33500 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 52 45 41 44 3a 0a 72 65 74 75 72 6e 20 73 70 72 .ZipArchive::ER_READ:.return.spr
33520 69 6e 74 66 28 22 5a 69 70 20 72 65 61 64 20 65 72 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c intf("Zip.read.error.(%s)",.$fil
33540 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 53 45 45 4b 3a 0a 72 65 e);.case.ZipArchive::ER_SEEK:.re
33560 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 73 65 65 6b 20 65 72 72 6f 72 20 28 25 73 turn.sprintf("Zip.seek.error.(%s
33580 29 22 2c 20 24 66 69 6c 65 29 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 )",.$file);.default:.return.spri
335a0 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 7a 69 70 20 61 72 63 ntf("'%s'.is.not.a.valid.zip.arc
335c0 68 69 76 65 2c 20 67 6f 74 20 65 72 72 6f 72 20 63 6f 64 65 3a 20 25 73 22 2c 20 24 66 69 6c 65 hive,.got.error.code:.%s",.$file
335e0 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.$retval);.}.}.}.<?php.........
33600 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 ...namespace.Composer\Downloader
33620 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 70 ;..use.Composer\Config;.use.Comp
33640 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 45 76 65 6e 74 44 69 oser\Cache;.use.Composer\EventDi
33660 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 20 43 6f spatcher\EventDispatcher;.use.Co
33680 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;
336a0 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 65 63 75 74 .use.Composer\Util\ProcessExecut
336c0 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b or;.use.Composer\IO\IOInterface;
336e0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 7a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 .......class.GzipDownloader.exte
33700 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 74 65 nds.ArchiveDownloader.{.protecte
33720 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 5f 63 d.$process;..public.function.__c
33740 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 onstruct(IOInterface.$io,.Config
33760 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 6e 74 .$config,.EventDispatcher.$event
33780 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 65 20 Dispatcher.=.null,.Cache.$cache.
337a0 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 73 73 =.null,.ProcessExecutor.$process
337c0 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 72 6f .=.null).{.$this->process.=.$pro
337e0 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 6f 29 cess.?:.new.ProcessExecutor($io)
33800 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 6e 66 ;.parent::__construct($io,.$conf
33820 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 0a 7d ig,.$eventDispatcher,.$cache);.}
33840 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 ..protected.function.extract($fi
33860 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 61 72 67 65 74 46 69 6c 65 70 61 74 68 20 3d 20 24 le,.$path).{.$targetFilepath.=.$
33880 70 61 74 68 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 62 61 73 path...DIRECTORY_SEPARATOR...bas
338a0 65 6e 61 6d 65 28 73 75 62 73 74 72 28 24 66 69 6c 65 2c 20 30 2c 20 2d 33 29 29 3b 0a 0a 0a 20 ename(substr($file,.0,.-3));....
338c0 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
338e0 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 7a 69 70 20 2d 63 N_BUILD')).{.$command.=.'gzip.-c
33900 64 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 66 d.'...ProcessExecutor::escape($f
33920 69 6c 65 29 20 2e 20 27 20 3e 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a ile)...'.>.'...ProcessExecutor::
33940 65 73 63 61 70 65 28 24 74 61 72 67 65 74 46 69 6c 65 70 61 74 68 29 3b 0a 0a 69 66 20 28 30 20 escape($targetFilepath);..if.(0.
33960 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d ===.$this->process->execute($com
33980 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b mand,.$ignoredOutput)).{.return;
339a0 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 65 .}..$processError.=.'Failed.to.e
339c0 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 2e 20 24 xecute.'...$command..."\n\n"...$
339e0 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();
33a00 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 70 72 .throw.new.\RuntimeException($pr
33a20 6f 63 65 73 73 45 72 72 6f 72 29 3b 0a 7d 0a 0a 0a 20 24 61 72 63 68 69 76 65 46 69 6c 65 20 3d ocessError);.}....$archiveFile.=
33a40 20 67 7a 6f 70 65 6e 28 24 66 69 6c 65 2c 20 27 72 62 27 29 3b 0a 24 74 61 72 67 65 74 46 69 6c .gzopen($file,.'rb');.$targetFil
33a60 65 20 3d 20 66 6f 70 65 6e 28 24 74 61 72 67 65 74 46 69 6c 65 70 61 74 68 2c 20 27 77 62 27 29 e.=.fopen($targetFilepath,.'wb')
33a80 3b 0a 77 68 69 6c 65 20 28 24 73 74 72 69 6e 67 20 3d 20 67 7a 72 65 61 64 28 24 61 72 63 68 69 ;.while.($string.=.gzread($archi
33aa0 76 65 46 69 6c 65 2c 20 34 30 39 36 29 29 20 7b 0a 66 77 72 69 74 65 28 24 74 61 72 67 65 74 46 veFile,.4096)).{.fwrite($targetF
33ac0 69 6c 65 2c 20 24 73 74 72 69 6e 67 2c 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 29 3b 0a ile,.$string,.strlen($string));.
33ae0 7d 0a 67 7a 63 6c 6f 73 65 28 24 61 72 63 68 69 76 65 46 69 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 }.gzclose($archiveFile);.fclose(
33b00 24 74 61 72 67 65 74 46 69 6c 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 $targetFile);.}.....protected.fu
33b20 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 nction.getFileName(PackageInterf
33b40 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 ace.$package,.$path).{.return.$p
33b60 61 74 68 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b ath.'/'.pathinfo(parse_url($pack
33b80 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 age->getDistUrl(),.PHP_URL_PATH)
33ba0 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ,.PATHINFO_BASENAME);.}.}.<?php.
33bc0 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 6f ...........namespace.Composer\Do
33be0 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c wnloader;..use.Composer\Package\
33c00 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 55 PackageInterface;.use.Composer\U
33c20 74 69 6c 5c 47 69 74 48 75 62 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 til\GitHub;.use.Composer\Util\Gi
33c40 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c t.as.GitUtil;.use.Composer\Util\
33c60 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 49 4f ProcessExecutor;.use.Composer\IO
33c80 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c \IOInterface;.use.Composer\Util\
33ca0 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 67 3b Filesystem;.use.Composer\Config;
33cc0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 .....class.GitDownloader.extends
33ce0 20 56 63 73 44 6f 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 .VcsDownloader.{.private.$hasSta
33d00 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 67 69 shedChanges.=.false;.private.$gi
33d20 74 55 74 69 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 tUtil;..public.function.__constr
33d40 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e uct(IOInterface.$io,.Config.$con
33d60 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 fig,.ProcessExecutor.$process.=.
33d80 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 null,.Filesystem.$fs.=.null).{.p
33da0 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 6e 66 69 67 2c arent::__construct($io,.$config,
33dc0 20 24 70 72 6f 63 65 73 73 2c 20 24 66 73 29 3b 0a 24 74 68 69 73 2d 3e 67 69 74 55 74 69 6c 20 .$process,.$fs);.$this->gitUtil.
33de0 3d 20 6e 65 77 20 47 69 74 55 74 69 6c 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e =.new.GitUtil($this->io,.$this->
33e00 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 73 2d 3e 66 config,.$this->process,.$this->f
33e20 69 6c 65 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ilesystem);.}.....public.functio
33e40 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 70 n.doDownload(PackageInterface.$p
33e60 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 47 69 74 55 74 69 6c 3a 3a ackage,.$path,.$url).{.GitUtil::
33e80 63 6c 65 61 6e 45 6e 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 cleanEnv();.$path.=.$this->norma
33ea0 6c 69 7a 65 50 61 74 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 lizePath($path);..$ref.=.$packag
33ec0 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 66 6c 61 67 20 3d e->getSourceReference();.$flag.=
33ee0 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 .defined('PHP_WINDOWS_VERSION_MA
33f00 4a 4f 52 27 29 20 3f 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 JOR').?.'/D.'.:.'';.$command.=.'
33f20 67 69 74 20 63 6c 6f 6e 65 20 2d 2d 6e 6f 2d 63 68 65 63 6b 6f 75 74 20 25 73 20 25 73 20 26 26 git.clone.--no-checkout.%s.%s.&&
33f40 20 63 64 20 27 2e 24 66 6c 61 67 2e 27 25 32 24 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 .cd.'.$flag.'%2$s.&&.git.remote.
33f60 61 64 64 20 63 6f 6d 70 6f 73 65 72 20 25 31 24 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 add.composer.%1$s.&&.git.fetch.c
33f80 6f 6d 70 6f 73 65 72 27 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 omposer';.$this->io->writeError(
33fa0 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 6d 6d 61 6e 64 43 "....Cloning.".$ref);..$commandC
33fc0 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 75 72 6c 29 20 75 73 65 20 28 24 allable.=.function.($url).use.($
33fe0 72 65 66 2c 20 24 70 61 74 68 2c 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 ref,.$path,.$command).{.return.s
34000 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 printf($command,.ProcessExecutor
34020 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a ::escape($url),.ProcessExecutor:
34040 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a :escape($path),.ProcessExecutor:
34060 3a 65 73 63 61 70 65 28 24 72 65 66 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 67 69 74 55 74 :escape($ref));.};..$this->gitUt
34080 69 6c 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c il->runCommand($commandCallable,
340a0 20 24 75 72 6c 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 24 75 72 6c 20 21 3d .$url,.$path,.true);.if.($url.!=
340c0 3d 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 29 20 7b 0a 24 75 =.$package->getSourceUrl()).{.$u
340e0 72 6c 20 3d 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 3b 0a 24 rl.=.$package->getSourceUrl();.$
34100 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 this->process->execute(sprintf('
34120 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 50 git.remote.set-url.origin.%s',.P
34140 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 29 2c 20 24 rocessExecutor::escape($url)),.$
34160 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 65 74 50 75 73 68 output,.$path);.}.$this->setPush
34180 55 72 6c 28 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 0a 69 66 20 28 24 6e 65 77 52 65 66 20 3d Url($path,.$url);..if.($newRef.=
341a0 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 .$this->updateToCommit($path,.$r
341c0 65 66 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 ef,.$package->getPrettyVersion()
341e0 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 29 20 7b ,.$package->getReleaseDate())).{
34200 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 .if.($package->getDistReference(
34220 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e ).===.$package->getSourceReferen
34240 63 65 28 29 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 ce()).{.$package->setDistReferen
34260 63 65 28 24 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 ce($newRef);.}.$package->setSour
34280 63 65 52 65 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 ceReference($newRef);.}.}.....pu
342a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e blic.function.doUpdate(PackageIn
342c0 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
342e0 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 47 69 74 55 74 ce.$target,.$path,.$url).{.GitUt
34300 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e il::cleanEnv();.$path.=.$this->n
34320 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 21 69 73 5f 64 69 72 ormalizePath($path);.if.(!is_dir
34340 28 24 70 61 74 68 2e 27 2f 2e 67 69 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ($path.'/.git')).{.throw.new.\Ru
34360 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 67 69 74 20 64 69 72 65 63 74 6f ntimeException('The..git.directo
34380 72 79 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 ry.is.missing.from.'.$path.',.se
343a0 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 74 2d e.http://getcomposer.org/commit-
343c0 64 65 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 deps.for.more.information');.}..
343e0 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e $ref.=.$target->getSourceReferen
34400 63 65 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 ce();.$this->io->writeError("...
34420 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 72 65 66 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 .Checking.out.".$ref);.$command.
34440 3d 20 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 63 6f 6d 70 6f 73 65 72 20 25 =.'git.remote.set-url.composer.%
34460 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f 6d 70 6f 73 65 72 20 26 26 20 67 69 74 20 66 s.&&.git.fetch.composer.&&.git.f
34480 65 74 63 68 20 2d 2d 74 61 67 73 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 etch.--tags.composer';..$command
344a0 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 75 72 6c 29 20 75 73 65 20 28 Callable.=.function.($url).use.(
344c0 24 63 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 $command).{.return.sprintf($comm
344e0 61 6e 64 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 20 28 24 75 and,.ProcessExecutor::escape.($u
34500 72 6c 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 67 69 74 55 74 69 6c 2d 3e 72 75 6e 43 6f 6d rl));.};..$this->gitUtil->runCom
34520 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 2c 20 24 70 61 mand($commandCallable,.$url,.$pa
34540 74 68 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 th);.if.($newRef.=.$this->update
34560 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 2c 20 24 74 61 72 67 65 74 2d 3e 67 ToCommit($path,.$ref,.$target->g
34580 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 52 etPrettyVersion(),.$target->getR
345a0 65 6c 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 eleaseDate())).{.if.($target->ge
345c0 74 44 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 tDistReference().===.$target->ge
345e0 74 53 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 tSourceReference()).{.$target->s
34600 65 74 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 etDistReference($newRef);.}.$tar
34620 67 65 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 get->setSourceReference($newRef)
34640 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 4c 6f 63 ;.}.}.....public.function.getLoc
34660 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 61 63 6b alChanges(PackageInterface.$pack
34680 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 age,.$path).{.GitUtil::cleanEnv(
346a0 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 28 );.$path.=.$this->normalizePath(
346c0 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 74 $path);.if.(!is_dir($path.'/.git
346e0 27 29 29 20 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 ')).{.return;.}..$command.=.'git
34700 20 73 74 61 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 .status.--porcelain.--untracked-
34720 66 69 6c 65 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 files=no';.if.(0.!==.$this->proc
34740 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,.
34760 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 65 $path)).{.throw.new.\RuntimeExce
34780 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f ption('Failed.to.execute.'...$co
347a0 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d mmand..."\n\n"...$this->process-
347c0 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 >getErrorOutput());.}..return.tr
347e0 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 im($output).?:.null;.}.....prote
34800 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 cted.function.cleanChanges(Packa
34820 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 2c 20 24 75 70 geInterface.$package,.$path,.$up
34840 64 61 74 65 29 0a 7b 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 date).{.GitUtil::cleanEnv();.$pa
34860 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 68 29 th.=.$this->normalizePath($path)
34880 3b 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 ;.if.(!$changes.=.$this->getLoca
348a0 6c 43 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 72 65 74 lChanges($package,.$path)).{.ret
348c0 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 urn;.}..if.(!$this->io->isIntera
348e0 63 74 69 76 65 28 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 ctive()).{.$discardChanges.=.$th
34900 69 73 2d 3e 63 6f 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 is->config->get('discard-changes
34920 27 29 3b 0a 69 66 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 ');.if.(true.===.$discardChanges
34940 29 20 7b 0a 72 65 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 ).{.return.$this->discardChanges
34960 28 24 70 61 74 68 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 ($path);.}.if.('stash'.===.$disc
34980 61 72 64 43 68 61 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 ardChanges).{.if.(!$update).{.re
349a0 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 6b 61 turn.parent::cleanChanges($packa
349c0 67 65 2c 20 24 70 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 ge,.$path,.$update);.}..return.$
349e0 74 68 69 73 2d 3e 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 this->stashChanges($path);.}..re
34a00 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 6b 61 turn.parent::cleanChanges($packa
34a20 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 65 73 ge,.$path,.$update);.}..$changes
34a40 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 7b 0a .=.array_map(function.($elem).{.
34a60 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 70 6c return.'....'.$elem;.},.preg_spl
34a80 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 3b 0a it('{\s*\r?\n\s*}',.$changes));.
34aa0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 65 72 72 6f $this->io->writeError('....<erro
34ac0 72 3e 54 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 r>The.package.has.modified.files
34ae0 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 :</error>');.$this->io->writeErr
34b00 6f 72 28 61 72 72 61 79 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 or(array_slice($changes,.0,.10))
34b20 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 ;.if.(count($changes).>.10).{.$t
34b40 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 his->io->writeError('....<info>'
34b60 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 .count($changes).-.10...'.more.f
34b80 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 iles.modified,.choose."v".to.vie
34ba0 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 w.the.full.list</info>');.}..whi
34bc0 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 le.(true).{.switch.($this->io->a
34be0 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 sk('....<info>Discard.changes.[y
34c00 2c 6e 2c 76 2c 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 73 2c 27 20 3a 20 27 27 29 2e 27 3f 5d ,n,v,'.($update.?.'s,'.:.'').'?]
34c20 3f 3c 2f 69 6e 66 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 ?</info>.',.'?')).{.case.'y':.$t
34c40 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 62 72 65 61 his->discardChanges($path);.brea
34c60 6b 20 32 3b 0a 0a 63 61 73 65 20 27 73 27 3a 0a 69 66 20 28 21 24 75 70 64 61 74 65 29 20 7b 0a k.2;..case.'s':.if.(!$update).{.
34c80 67 6f 74 6f 20 68 65 6c 70 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 73 68 43 68 61 6e 67 65 goto.help;.}..$this->stashChange
34ca0 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 s($path);.break.2;..case.'n':.th
34cc0 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 70 64 61 74 row.new.\RuntimeException('Updat
34ce0 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 e.aborted');..case.'v':.$this->i
34d00 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 65 61 6b 3b 0a o->writeError($changes);.break;.
34d20 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 68 65 6c 70 3a 0a 24 74 68 69 73 2d .case.'?':.default:.help:.$this-
34d40 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 >io->writeError(array(.'....y.-.
34d60 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e discard.changes.and.apply.the.'.
34d80 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c ($update.?.'update'.:.'uninstall
34da0 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 '),.'....n.-.abort.the.'.($updat
34dc0 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e e.?.'update'.:.'uninstall').'.an
34de0 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 d.let.you.manually.clean.things.
34e00 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 up',.'....v.-.view.modified.file
34e20 73 27 2c 0a 29 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f s',.));.if.($update).{.$this->io
34e40 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 73 20 2d 20 73 74 61 73 68 20 63 68 61 6e ->writeError('....s.-.stash.chan
34e60 67 65 73 20 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 ges.and.try.to.reapply.them.afte
34e80 72 20 74 68 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 r.the.update');.}.$this->io->wri
34ea0 74 65 45 72 72 6f 72 28 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 29 3b 0a 62 teError('....?.-.print.help');.b
34ec0 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 reak;.}.}.}.....protected.functi
34ee0 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 on.reapplyChanges($path).{.$path
34f00 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 68 29 3b 0a .=.$this->normalizePath($path);.
34f20 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 29 20 7b 0a if.($this->hasStashedChanges).{.
34f40 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 $this->hasStashedChanges.=.false
34f60 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 69 6e ;.$this->io->writeError('....<in
34f80 66 6f 3e 52 65 2d 61 70 70 6c 79 69 6e 67 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 65 73 3c 2f fo>Re-applying.stashed.changes</
34fa0 69 6e 66 6f 3e 27 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 info>');.if.(0.!==.$this->proces
34fc0 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 20 70 6f 70 27 2c 20 24 6f 75 74 s->execute('git.stash.pop',.$out
34fe0 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 69 6d put,.$path)).{.throw.new.\Runtim
35000 65 45 78 63 65 70 74 69 6f 6e 28 22 46 61 69 6c 65 64 20 74 6f 20 61 70 70 6c 79 20 73 74 61 73 eException("Failed.to.apply.stas
35020 68 65 64 20 63 68 61 6e 67 65 73 3a 5c 6e 5c 6e 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 hed.changes:\n\n".$this->process
35040 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 0a 0a 0a 0a 0a ->getErrorOutput());.}.}.}......
35060 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 75 70 64 61 74 65 .......protected.function.update
35080 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 65 72 65 6e 63 65 2c 20 24 62 72 61 ToCommit($path,.$reference,.$bra
350a0 6e 63 68 2c 20 24 64 61 74 65 29 0a 7b 0a 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 63 nch,.$date).{.$template.=.'git.c
350c0 68 65 63 6b 6f 75 74 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 heckout.%s.&&.git.reset.--hard.%
350e0 31 24 73 27 3b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 1$s';.$branch.=.preg_replace('{(
35100 3f 3a 5e 64 65 76 2d 7c 28 3f 3a 5c 2e 78 29 3f 2d 64 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 ?:^dev-|(?:\.x)?-dev$)}i',.'',.$
35120 62 72 61 6e 63 68 29 3b 0a 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 branch);..$branches.=.null;.if.(
35140 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 27 67 0.===.$this->process->execute('g
35160 69 74 20 62 72 61 6e 63 68 20 2d 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 it.branch.-r',.$output,.$path)).
35180 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 20 24 67 69 74 {.$branches.=.$output;.}....$git
351a0 52 65 66 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 Ref.=.$reference;.if.(!preg_matc
351c0 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 65 72 65 6e 63 65 h('{^[a-f0-9]{40}$}',.$reference
351e0 29 0a 26 26 20 24 62 72 61 6e 63 68 65 73 0a 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e ).&&.$branches.&&.preg_match('{^
35200 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 72 65 66 65 72 65 \s+composer/'.preg_quote($refere
35220 6e 63 65 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 0a 29 20 7b 0a 24 63 6f 6d 6d nce).'$}m',.$branches).).{.$comm
35240 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 74 20 2d 42 20 25 and.=.sprintf('git.checkout.-B.%
35260 73 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 32 24 73 27 2c 20 s.%s.&&.git.reset.--hard.%2$s',.
35280 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 62 72 61 6e 63 68 29 ProcessExecutor::escape($branch)
352a0 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 27 63 6f 6d 70 6f ,.ProcessExecutor::escape('compo
352c0 73 65 72 2f 27 2e 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 ser/'.$reference));.if.(0.===.$t
352e0 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 his->process->execute($command,.
35300 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 0a 0a $output,.$path)).{.return;.}.}..
35320 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d ..if.(preg_match('{^[a-f0-9]{40}
35340 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f $}',.$reference)).{...if.(!preg_
35360 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
35380 65 28 24 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 20 26 26 20 e($branch).'$}m',.$branches).&&.
353a0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 76 27 2e 70 72 65 preg_match('{^\s+composer/v'.pre
353c0 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 g_quote($branch).'$}m',.$branche
353e0 73 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 27 76 27 20 2e 20 24 62 72 61 6e 63 68 3b 0a 7d s)).{.$branch.=.'v'...$branch;.}
35400 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 68 65 63 6b 6f ..$command.=.sprintf('git.checko
35420 75 74 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 ut.%s',.ProcessExecutor::escape(
35440 24 62 72 61 6e 63 68 29 29 3b 0a 24 66 61 6c 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 20 3d 20 73 70 $branch));.$fallbackCommand.=.sp
35460 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 27 2c 20 50 rintf('git.checkout.-B.%s.%s',.P
35480 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 62 72 61 6e 63 68 29 2c rocessExecutor::escape($branch),
354a0 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 27 63 6f 6d 70 6f 73 .ProcessExecutor::escape('compos
354c0 65 72 2f 27 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 er/'.$branch));.if.(0.===.$this-
354e0 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 75 74 >process->execute($command,.$out
35500 70 75 74 2c 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 put,.$path).||.0.===.$this->proc
35520 65 73 73 2d 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 ess->execute($fallbackCommand,.$
35540 6f 75 74 70 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 output,.$path).).{.$command.=.sp
35560 72 69 6e 74 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 50 72 6f rintf('git.reset.--hard.%s',.Pro
35580 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 72 65 66 65 72 65 6e 63 65 29 cessExecutor::escape($reference)
355a0 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
355c0 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 cute($command,.$output,.$path)).
355e0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 {.return;.}.}.}..$command.=.spri
35600 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a ntf($template,.ProcessExecutor::
35620 65 73 63 61 70 65 28 24 67 69 74 52 65 66 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 escape($gitRef));.if.(0.===.$thi
35640 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
35660 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 0a 0a 20 69 66 utput,.$path)).{.return;.}....if
35680 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 .(false.!==.strpos($this->proces
356a0 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 72 65 66 65 72 65 6e 63 65 29 s->getErrorOutput(),.$reference)
356c0 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c ).{.$this->io->writeError('....<
356e0 77 61 72 6e 69 6e 67 3e 27 2e 24 72 65 66 65 72 65 6e 63 65 2e 27 20 69 73 20 67 6f 6e 65 20 28 warning>'.$reference.'.is.gone.(
35700 68 69 73 74 6f 72 79 20 77 61 73 20 72 65 77 72 69 74 74 65 6e 3f 29 3c 2f 77 61 72 6e 69 6e 67 history.was.rewritten?)</warning
35720 3e 27 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 >');.}..throw.new.\RuntimeExcept
35740 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 47 69 74 55 74 ion('Failed.to.execute.'...GitUt
35760 69 6c 3a 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c il::sanitizeUrl($command)..."\n\
35780 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 n"...$this->process->getErrorOut
357a0 70 75 74 28 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 put());.}..protected.function.se
357c0 74 50 75 73 68 55 72 6c 28 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 0a 20 69 66 20 28 70 72 tPushUrl($path,.$url).{...if.(pr
357e0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 27 2e 47 eg_match('{^(?:https?|git)://'.G
35800 69 74 55 74 69 6c 3a 3a 67 65 74 47 69 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 24 74 itUtil::getGitHubDomainsRegex($t
35820 68 69 73 2d 3e 63 6f 6e 66 69 67 29 2e 27 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 3f 29 28 his->config).'/([^/]+)/([^/]+?)(
35840 3f 3a 5c 2e 67 69 74 29 3f 24 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 ?:\.git)?$}',.$url,.$match)).{.$
35860 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 2d 3e 67 65 74 28 27 protocols.=.$this->config->get('
35880 67 69 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 github-protocols');.$pushUrl.=.'
358a0 67 69 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 git@'.$match[1].':'.$match[2].'/
358c0 27 2e 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 '.$match[3].'.git';.if.($protoco
358e0 6c 73 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 ls[0].!==.'git').{.$pushUrl.=.'h
35900 74 74 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 ttps://'...$match[1]...'/'.$matc
35920 68 5b 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 h[2].'/'.$match[3].'.git';.}.$cm
35940 64 20 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 d.=.sprintf('git.remote.set-url.
35960 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 --push.origin.%s',.ProcessExecut
35980 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 75 73 68 55 72 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 or::escape($pushUrl));.$this->pr
359a0 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 ocess->execute($cmd,.$ignoredOut
359c0 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 put,.$path);.}.}.....protected.f
359e0 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 66 65 72 unction.getCommitLogs($fromRefer
35a00 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 24 70 61 ence,.$toReference,.$path).{.$pa
35a20 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 68 29 th.=.$this->normalizePath($path)
35a40 3b 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 6c 6f 67 20 25 73 ;.$command.=.sprintf('git.log.%s
35a60 2e 2e 25 73 20 2d 2d 70 72 65 74 74 79 3d 66 6f 72 6d 61 74 3a 22 25 25 68 20 2d 20 25 25 61 6e ..%s.--pretty=format:"%%h.-.%%an
35a80 3a 20 25 25 73 22 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 :.%%s"',.$fromReference,.$toRefe
35aa0 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 rence);..if.(0.!==.$this->proces
35ac0 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 s->execute($command,.$output,.$p
35ae0 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
35b00 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 6d ion('Failed.to.execute.'...$comm
35b20 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 67 and..."\n\n"...$this->process->g
35b40 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 74 etErrorOutput());.}..return.$out
35b60 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 put;.}......protected.function.d
35b80 69 73 63 61 72 64 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 iscardChanges($path).{.$path.=.$
35ba0 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.(
35bc0 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 0.!==.$this->process->execute('g
35be0 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 it.reset.--hard',.$output,.$path
35c00 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
35c20 28 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e ("Could.not.reset.changes\n\n:".
35c40 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 $this->process->getErrorOutput()
35c60 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 );.}.}......protected.function.s
35c80 74 61 73 68 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 tashChanges($path).{.$path.=.$th
35ca0 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 30 20 is->normalizePath($path);.if.(0.
35cc0 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 !==.$this->process->execute('git
35ce0 20 73 74 61 73 68 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 .stash',.$output,.$path)).{.thro
35d00 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
35d20 6f 74 20 73 74 61 73 68 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.stash.changes\n\n:".$this->pr
35d40 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 74 68 ocess->getErrorOutput());.}..$th
35d60 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 74 72 75 65 3b 0a 7d 0a is->hasStashedChanges.=.true;.}.
35d80 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
35da0 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
35dc0 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
35de0 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;.$
35e00 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
35e20 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.!==.'
35e40 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
35e60 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.=
35e80 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
35ea0 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;.
35ec0 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
35ee0 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
35f00 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;.}.}.
35f20 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
35f40 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
35f60 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.\
35f80 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
35fa0 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
35fc0 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
35fe0 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
36000 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
36020 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
36040 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
36060 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.
36080 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.{
360a0 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
360c0 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
360e0 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
36100 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
36120 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
36140 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
36160 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
36180 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
361a0 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
361c0 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
361e0 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
36200 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
36220 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
36240 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
36260 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
36280 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
362a0 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)
362c0 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
362e0 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
36300 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
36320 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
36340 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
36360 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
36380 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.&&.(
363a0 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.==
363c0 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
363e0 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
36400 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
36420 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
36440 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_
36460 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';..
36480 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
364a0 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).{
364c0 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
364e0 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
36500 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,.$
36520 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
36540 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
36560 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
36580 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
365a0 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())...
365c0 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()
365e0 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(.
36600 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
36620 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->
36640 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
36660 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 6d 61 74 63 68 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 .array_values($matches);.}.....p
36680 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 ublic.function.hasPackage(Packag
366a0 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 eInterface.$package).{.$packageI
366c0 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a d.=.$package->getUniqueName();..
366e0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 foreach.($this->getPackages().as
36700 20 24 72 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 .$repoPackage).{.if.($packageId.
36720 3d 3d 3d 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 ===.$repoPackage->getUniqueName(
36740 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 )).{.return.true;.}.}..return.fa
36760 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 61 64 64 lse;.}.......public.function.add
36780 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 67 Package(PackageInterface.$packag
367a0 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 70 61 63 6b 61 67 65 e).{.if.(null.===.$this->package
367c0 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 24 70 61 63 s).{.$this->initialize();.}.$pac
367e0 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 24 74 68 69 kage->setRepository($this);.$thi
36800 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 69 66 20 28 24 s->packages[].=.$package;..if.($
36820 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 package.instanceof.AliasPackage)
36840 20 7b 0a 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 .{.$aliasedPackage.=.$package->g
36860 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 6c 69 61 73 etAliasOf();.if.(null.===.$alias
36880 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 24 74 edPackage->getRepository()).{.$t
368a0 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 29 his->addPackage($aliasedPackage)
368c0 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 ;.}.}.}..protected.function.crea
368e0 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 teAliasPackage(PackageInterface.
36900 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 29 0a $package,.$alias,.$prettyAlias).
36920 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 {.return.new.AliasPackage($packa
36940 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 3f 20 24 70 61 ge.instanceof.AliasPackage.?.$pa
36960 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3a 20 24 70 61 63 6b 61 67 65 2c 20 ckage->getAliasOf().:.$package,.
36980 24 61 6c 69 61 73 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 $alias,.$prettyAlias);.}.......p
369a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 ublic.function.removePackage(Pac
369c0 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 61 kageInterface.$package).{.$packa
369e0 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 geId.=.$package->getUniqueName()
36a00 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 ;..foreach.($this->getPackages()
36a20 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 .as.$key.=>.$repoPackage).{.if.(
36a40 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 $packageId.===.$repoPackage->get
36a60 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 UniqueName()).{.array_splice($th
36a80 69 73 2d 3e 70 61 63 6b 61 67 65 73 2c 20 24 6b 65 79 2c 20 31 29 3b 0a 0a 72 65 74 75 72 6e 3b is->packages,.$key,.1);..return;
36aa0 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 50 61 .}.}.}.....public.function.getPa
36ac0 63 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 ckages().{.if.(null.===.$this->p
36ae0 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a ackages).{.$this->initialize();.
36b00 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a }..return.$this->packages;.}....
36b20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 ...public.function.count().{.ret
36b40 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a urn.count($this->packages);.}...
36b60 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 28 ..protected.function.initialize(
36b80 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d ).{.$this->packages.=.array();.}
36ba0 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
36bc0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Repository;..use.Composer
36be0 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 50 61 63 \Json\JsonFile;.use.Composer\Pac
36c00 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 6d kage\Loader\ArrayLoader;.use.Com
36c20 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 poser\Package\Dumper\ArrayDumper
36c40 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 ;........class.FilesystemReposit
36c60 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 ory.extends.WritableArrayReposit
36c80 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ory.{.private.$file;.......publi
36ca0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 c.function.__construct(JsonFile.
36cc0 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d $repositoryFile).{.$this->file.=
36ce0 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 .$repositoryFile;.}.....protecte
36d00 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 74 d.function.initialize().{.parent
36d20 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c ::initialize();..if.(!$this->fil
36d40 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 74 72 79 20 7b 0a e->exists()).{.return;.}..try.{.
36d60 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b $packages.=.$this->file->read();
36d80 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 ..if.(!is_array($packages)).{.th
36da0 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
36dc0 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 70 61 63 6b 61 67 65 20 6c 69 73 74 20 n('Could.not.parse.package.list.
36de0 66 72 6f 6d 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 from.the.repository');.}.}.catch
36e00 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 .(\Exception.$e).{.throw.new.Inv
36e20 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 49 6e 76 61 6c 69 64 alidRepositoryException('Invalid
36e40 20 72 65 70 6f 73 69 74 6f 72 79 20 64 61 74 61 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 66 69 6c .repository.data.in.'.$this->fil
36e60 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 2c 20 70 61 63 6b 61 67 65 73 20 63 6f 75 6c 64 20 6e e->getPath().',.packages.could.n
36e80 6f 74 20 62 65 20 6c 6f 61 64 65 64 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 ot.be.loaded:.['.get_class($e).'
36ea0 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 ].'.$e->getMessage());.}..$loade
36ec0 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 75 6c 6c 2c 20 74 72 75 65 29 3b r.=.new.ArrayLoader(null,.true);
36ee0 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 44 .foreach.($packages.as.$packageD
36f00 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 ata).{.$package.=.$loader->load(
36f20 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 $packageData);.$this->addPackage
36f40 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ($package);.}.}..public.function
36f60 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 6e 75 .reload().{.$this->packages.=.nu
36f80 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ll;.$this->initialize();.}.....p
36fa0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 24 64 61 74 61 20 3d ublic.function.write().{.$data.=
36fc0 20 61 72 72 61 79 28 29 3b 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 44 75 6d .array();.$dumper.=.new.ArrayDum
36fe0 70 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 43 61 6e 6f 6e per();..foreach.($this->getCanon
37000 69 63 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 0a 24 64 icalPackages().as.$package).{.$d
37020 61 74 61 5b 5d 20 3d 20 24 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b ata[].=.$dumper->dump($package);
37040 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 64 61 74 61 29 3b 0a 7d .}..$this->file->write($data);.}
37060 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
37080 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Repository;..use.Composer
370a0 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 0a \Package\PackageInterface;......
370c0 0a 69 6e 74 65 72 66 61 63 65 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 .interface.WritableRepositoryInt
370e0 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 erface.extends.RepositoryInterfa
37100 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 3b ce.{....public.function.write();
37120 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 .......public.function.addPackag
37140 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 0a 0a e(PackageInterface.$package);...
37160 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 ....public.function.removePackag
37180 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 0a 0a e(PackageInterface.$package);...
371a0 0a 0a 0a 0a 70 75 62 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 ....public.function.getCanonical
371c0 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Packages();.....public.function.
371e0 72 65 6c 6f 61 64 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d reload();.}.<?php............nam
37200 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 espace.Composer\Repository;..use
37220 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
37240 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
37260 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 rser;.use.Composer\Repository\Pe
37280 61 72 5c 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ar\ChannelReader;.use.Composer\P
372a0 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 ackage\CompletePackage;.use.Comp
372c0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 6c 49 6e 66 6f oser\Repository\Pear\ChannelInfo
372e0 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 63 68 65 72 5c 45 ;.use.Composer\EventDispatcher\E
37300 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 65 72 5c 50 61 63 ventDispatcher;.use.Composer\Pac
37320 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 61 67 65 5c kage\Link;.use.Composer\Package\
37340 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 69 6e 74 LinkConstraint\VersionConstraint
37360 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 ;.use.Composer\Util\RemoteFilesy
37380 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a stem;.use.Composer\Config;......
373a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 .....class.PearRepository.extend
373c0 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 75 72 6c s.ArrayRepository.{.private.$url
373e0 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 70 72 69 ;.private.$io;.private.$rfs;.pri
37400 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 vate.$versionParser;.....private
37420 20 24 76 65 6e 64 6f 72 41 6c 69 61 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .$vendorAlias;..public.function.
37440 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 __construct(array.$repoConfig,.I
37460 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,.
37480 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 EventDispatcher.$dispatcher.=.nu
374a0 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 75 6c 6c ll,.RemoteFilesystem.$rfs.=.null
374c0 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f ).{.if.(!preg_match('{^https?://
374e0 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 24 72 65 70 6f }',.$repoConfig['url'])).{.$repo
37500 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 70 6f 43 Config['url'].=.'http://'.$repoC
37520 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 0a 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 onfig['url'];.}..$urlBits.=.pars
37540 65 5f 75 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 69 66 20 28 65 e_url($repoConfig['url']);.if.(e
37560 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 74 mpty($urlBits['scheme']).||.empt
37580 79 28 24 75 72 6c 42 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 y($urlBits['host'])).{.throw.new
375a0 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 .\UnexpectedValueException('Inva
375c0 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 lid.url.given.for.PEAR.repositor
375e0 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 y:.'.$repoConfig['url']);.}..$th
37600 69 73 2d 3e 75 72 6c 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 is->url.=.rtrim($repoConfig['url
37620 27 5d 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 73 '],.'/');.$this->io.=.$io;.$this
37640 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
37660 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d stem($this->io,.$config);.$this-
37680 3e 76 65 6e 64 6f 72 41 6c 69 61 73 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 >vendorAlias.=.isset($repoConfig
376a0 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b ['vendor-alias']).?.$repoConfig[
376c0 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 76 'vendor-alias'].:.null;.$this->v
376e0 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
37700 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 ();.}..protected.function.initia
37720 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 3b 0a 0a lize().{.parent::initialize();..
37740 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 49 6e 69 74 69 61 6c 69 7a $this->io->writeError('Initializ
37760 69 6e 67 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c ing.PEAR.repository.'.$this->url
37780 29 3b 0a 0a 24 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 28 );..$reader.=.new.ChannelReader(
377a0 24 74 68 69 73 2d 3e 72 66 73 29 3b 0a 74 72 79 20 7b 0a 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 20 $this->rfs);.try.{.$channelInfo.
377c0 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 63 =.$reader->read($this->url);.}.c
377e0 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f atch.(\Exception.$e).{.$this->io
37800 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 50 45 41 52 20 72 65 70 6f ->writeError('<warning>PEAR.repo
37820 73 69 74 6f 72 79 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 sitory.from.'.$this->url.'.could
37840 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 2e 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 .not.be.loaded..'.$e->getMessage
37860 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 70 61 ().'</warning>');..return;.}.$pa
37880 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 ckages.=.$this->buildComposerPac
378a0 6b 61 67 65 73 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 kages($channelInfo,.$this->versi
378c0 6f 6e 50 61 72 73 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 onParser);.foreach.($packages.as
378e0 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 .$package).{.$this->addPackage($
37900 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 package);.}.}.........private.fu
37920 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 43 68 61 nction.buildComposerPackages(Cha
37940 6e 6e 65 6c 49 6e 66 6f 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 56 65 72 73 69 6f 6e 50 61 nnelInfo.$channelInfo,.VersionPa
37960 72 73 65 72 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d rser.$versionParser).{.$result.=
37980 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d .array();.foreach.($channelInfo-
379a0 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 44 65 66 69 6e 69 >getPackages().as.$packageDefini
379c0 74 69 6f 6e 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 tion).{.foreach.($packageDefinit
379e0 69 6f 6e 2d 3e 67 65 74 52 65 6c 65 61 73 65 73 28 29 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d ion->getReleases().as.$version.=
37a00 3e 20 24 72 65 6c 65 61 73 65 49 6e 66 6f 29 20 7b 0a 74 72 79 20 7b 0a 24 6e 6f 72 6d 61 6c 69 >.$releaseInfo).{.try.{.$normali
37a20 7a 65 64 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 zedVersion.=.$versionParser->nor
37a40 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 malize($version);.}.catch.(\Unex
37a60 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 69 66 20 28 24 pectedValueException.$e).{.if.($
37a80 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->
37aa0 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 27 io->writeError('Could.not.load.'
37ac0 2e 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e .$packageDefinition->getPackageN
37ae0 61 6d 65 28 29 2e 27 20 27 2e 24 76 65 72 73 69 6f 6e 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d ame().'.'.$version.':.'.$e->getM
37b00 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f essage());.}.continue;.}..$compo
37b20 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d serPackageName.=.$this->buildCom
37b40 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 poserPackageName($packageDefinit
37b60 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 44 ion->getChannelName(),.$packageD
37b80 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 0a 0a efinition->getPackageName());...
37ba0 20 0a 20 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 ...$urlBits.=.parse_url($this->u
37bc0 72 6c 29 3b 0a 24 73 63 68 65 6d 65 20 3d 20 28 69 73 73 65 74 28 24 75 72 6c 42 69 74 73 5b 27 rl);.$scheme.=.(isset($urlBits['
37be0 73 63 68 65 6d 65 27 5d 29 20 26 26 20 27 68 74 74 70 73 27 20 3d 3d 3d 20 24 75 72 6c 42 69 74 scheme']).&&.'https'.===.$urlBit
37c00 73 5b 27 73 63 68 65 6d 65 27 5d 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 s['scheme'].&&.extension_loaded(
37c20 27 6f 70 65 6e 73 73 6c 27 29 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 'openssl')).?.'https'.:.'http';.
37c40 24 64 69 73 74 55 72 6c 20 3d 20 22 7b 24 73 63 68 65 6d 65 7d 3a 2f 2f 7b 24 70 61 63 6b 61 67 $distUrl.=."{$scheme}://{$packag
37c60 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 7d 2f 67 eDefinition->getChannelName()}/g
37c80 65 74 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 et/{$packageDefinition->getPacka
37ca0 67 65 4e 61 6d 65 28 29 7d 2d 7b 24 76 65 72 73 69 6f 6e 7d 2e 74 67 7a 22 3b 0a 0a 24 72 65 71 geName()}-{$version}.tgz";..$req
37cc0 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 uires.=.array();.$suggests.=.arr
37ce0 61 79 28 29 3b 0a 24 63 6f 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 ay();.$conflicts.=.array();.$rep
37d00 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 63 68 61 6e 6e laces.=.array();......if.($chann
37d20 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 24 70 61 63 6b 61 67 65 44 65 66 elInfo->getName().==.$packageDef
37d40 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 20 7b 0a 24 63 6f inition->getChannelName()).{.$co
37d60 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c mposerPackageAlias.=.$this->buil
37d80 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 49 6e 66 dComposerPackageName($channelInf
37da0 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f o->getAlias(),.$packageDefinitio
37dc0 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 n->getPackageName());.$aliasCons
37de0 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 28 27 traint.=.new.VersionConstraint('
37e00 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 ==',.$normalizedVersion);.$repla
37e20 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 ces[].=.new.Link($composerPackag
37e40 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 eName,.$composerPackageAlias,.$a
37e60 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 liasConstraint,.'replaces',.(str
37e80 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 ing).$aliasConstraint);.}....if.
37ea0 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 29 0a 26 26 20 28 (!empty($this->vendorAlias).&&.(
37ec0 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 20 21 3d 20 27 70 65 61 72 2d 27 2e 24 63 $this->vendorAlias.!=.'pear-'.$c
37ee0 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 20 7c 7c 20 24 63 68 61 6e 6e hannelInfo->getAlias().||.$chann
37f00 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 20 24 70 61 63 6b 61 67 65 44 65 66 elInfo->getName().!=.$packageDef
37f20 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 0a 29 20 7b 0a 24 inition->getChannelName()).).{.$
37f40 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 22 7b 24 74 68 69 73 2d 3e composerPackageAlias.=."{$this->
37f60 76 65 6e 64 6f 72 41 6c 69 61 73 7d 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e vendorAlias}/{$packageDefinition
37f80 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 7d 22 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 ->getPackageName()}";.$aliasCons
37fa0 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 28 27 traint.=.new.VersionConstraint('
37fc0 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 ==',.$normalizedVersion);.$repla
37fe0 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 ces[].=.new.Link($composerPackag
38000 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 eName,.$composerPackageAlias,.$a
38020 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 liasConstraint,.'replaces',.(str
38040 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 ing).$aliasConstraint);.}..forea
38060 63 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 ch.($releaseInfo->getDependencyI
38080 6e 66 6f 28 29 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 64 65 70 65 6e 64 65 nfo()->getRequires().as.$depende
380a0 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 61 63 6b ncyConstraint).{.$dependencyPack
380c0 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 ageName.=.$this->buildComposerPa
380e0 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 6e 74 2d ckageName($dependencyConstraint-
38100 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 79 43 6f >getChannelName(),.$dependencyCo
38120 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 24 63 6f nstraint->getPackageName());.$co
38140 6e 73 74 72 61 69 6e 74 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 nstraint.=.$versionParser->parse
38160 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e Constraints($dependencyConstrain
38180 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 6c 69 6e 6b 20 3d 20 6e 65 77 t->getConstraint());.$link.=.new
381a0 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 65 70 .Link($composerPackageName,.$dep
381c0 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c endencyPackageName,.$constraint,
381e0 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 54 79 70 65 28 .$dependencyConstraint->getType(
38200 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 43 6f 6e ),.$dependencyConstraint->getCon
38220 73 74 72 61 69 6e 74 28 29 29 3b 0a 73 77 69 74 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 straint());.switch.($dependencyC
38240 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 63 61 73 65 20 27 72 65 onstraint->getType()).{.case.'re
38260 71 75 69 72 65 64 27 3a 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 quired':.$requires[].=.$link;.br
38280 65 61 6b 3b 0a 63 61 73 65 20 27 63 6f 6e 66 6c 69 63 74 73 27 3a 0a 24 63 6f 6e 66 6c 69 63 74 eak;.case.'conflicts':.$conflict
382a0 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 72 65 70 6c 61 63 s[].=.$link;.break;.case.'replac
382c0 65 73 27 3a 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b es':.$replaces[].=.$link;.break;
382e0 0a 7d 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 2d 3e 67 65 74 .}.}..foreach.($releaseInfo->get
38300 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 DependencyInfo()->getOptionals()
38320 20 61 73 20 24 67 72 6f 75 70 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 .as.$group.=>.$dependencyConstra
38340 69 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 ints).{.foreach.($dependencyCons
38360 74 72 61 69 6e 74 73 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 traints.as.$dependencyConstraint
38380 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 ).{.$dependencyPackageName.=.$th
383a0 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 is->buildComposerPackageName($de
383c0 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 pendencyConstraint->getChannelNa
383e0 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 me(),.$dependencyConstraint->get
38400 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 73 75 67 67 65 73 74 73 5b 24 67 72 6f 75 70 PackageName());.$suggests[$group
38420 2e 27 2d 27 2e 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 .'-'.$dependencyPackageName].=.$
38440 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 dependencyConstraint->getConstra
38460 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 43 6f 6d 70 6c int();.}.}..$package.=.new.Compl
38480 65 74 65 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c etePackage($composerPackageName,
384a0 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a .$normalizedVersion,.$version);.
384c0 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 $package->setType('pear-library'
384e0 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 70 61 63 );.$package->setDescription($pac
38500 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 kageDefinition->getDescription()
38520 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 63 65 6e 73 65 28 61 72 72 61 79 28 24 70 );.$package->setLicense(array($p
38540 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 29 ackageDefinition->getLicense()))
38560 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 54 79 70 65 28 27 66 69 6c 65 27 29 3b ;.$package->setDistType('file');
38580 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 55 72 6c 28 24 64 69 73 74 55 72 6c 29 3b .$package->setDistUrl($distUrl);
385a0 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 28 27 63 6c .$package->setAutoload(array('cl
385c0 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 79 28 27 27 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 assmap'.=>.array('')));.$package
385e0 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 28 27 2f 27 29 29 3b 0a 24 ->setIncludePaths(array('/'));.$
38600 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 72 65 71 75 69 72 65 73 29 3b package->setRequires($requires);
38620 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 63 6f 6e 66 6c 69 63 .$package->setConflicts($conflic
38640 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 73 75 67 67 ts);.$package->setSuggests($sugg
38660 65 73 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 ests);.$package->setReplaces($re
38680 70 6c 61 63 65 73 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d places);.$result[].=.$package;.}
386a0 0a 7d 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 .}..return.$result;.}..private.f
386c0 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 unction.buildComposerPackageName
386e0 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 29 0a 7b 0a 69 ($channelName,.$packageName).{.i
38700 66 20 28 27 70 68 70 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 f.('php'.===.$channelName).{.ret
38720 75 72 6e 20 22 70 68 70 22 3b 0a 7d 0a 69 66 20 28 27 65 78 74 27 20 3d 3d 3d 20 24 63 68 61 6e urn."php";.}.if.('ext'.===.$chan
38740 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 65 78 74 2d 7b 24 70 61 63 6b 61 67 65 nelName).{.return."ext-{$package
38760 4e 61 6d 65 7d 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 70 65 61 72 2d 7b 24 63 68 61 6e 6e 65 Name}";.}..return."pear-{$channe
38780 6c 4e 61 6d 65 7d 2f 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 lName}/{$packageName}";.}.}.<?ph
387a0 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\
387c0 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 49 4f 5c 49 4f 49 Repository;..use.Composer\IO\IOI
387e0 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
38800 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
38820 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 tDispatcher;.........class.Repos
38840 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 61 6c 52 65 70 itoryManager.{.private.$localRep
38860 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d ository;.private.$repositories.=
38880 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 .array();.private.$repositoryCla
388a0 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 sses.=.array();.private.$io;.pri
388c0 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 65 76 65 6e 74 44 69 73 70 vate.$config;.private.$eventDisp
388e0 61 74 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 atcher;..public.function.__const
38900 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f ruct(IOInterface.$io,.Config.$co
38920 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 69 73 70 nfig,.EventDispatcher.$eventDisp
38940 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f atcher.=.null).{.$this->io.=.$io
38960 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 ;.$this->config.=.$config;.$this
38980 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
389a0 63 68 65 72 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 cher;.}..........public.function
389c0 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a .findPackage($name,.$version).{.
389e0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 foreach.($this->repositories.as.
38a00 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d 20 24 72 $repository).{.if.($package.=.$r
38a20 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 epository->findPackage($name,.$v
38a40 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a ersion)).{.return.$package;.}.}.
38a60 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 }..........public.function.findP
38a80 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b ackages($name,.$version).{.$pack
38aa0 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 74 68 69 73 2d ages.=.array();..foreach.($this-
38ac0 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).{.
38ae0 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 $packages.=.array_merge($package
38b00 73 2c 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 24 6e 61 s,.$repository->findPackages($na
38b20 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 me,.$version));.}..return.$packa
38b40 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 61 64 64 ges;.}.......public.function.add
38b60 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 Repository(RepositoryInterface.$
38b80 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 repository).{.$this->repositorie
38ba0 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 s[].=.$repository;.}..........pu
38bc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 blic.function.createRepository($
38be0 74 79 70 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 type,.$config).{.if.(!isset($thi
38c00 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 29 29 20 7b 0a s->repositoryClasses[$type])).{.
38c20 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
38c40 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 74 79 70 65 20 69 73 20 6e 6f 74 20 72 65 67 69 ion('Repository.type.is.not.regi
38c60 73 74 65 72 65 64 3a 20 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 24 74 stered:.'.$type);.}..$class.=.$t
38c80 68 69 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 3b 0a 0a his->repositoryClasses[$type];..
38ca0 72 65 74 75 72 6e 20 6e 65 77 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 return.new.$class($config,.$this
38cc0 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 65 76 65 6e ->io,.$this->config,.$this->even
38ce0 74 44 69 73 70 61 74 63 68 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tDispatcher);.}........public.fu
38d00 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 24 74 79 70 65 2c nction.setRepositoryClass($type,
38d20 20 24 63 6c 61 73 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 .$class).{.$this->repositoryClas
38d40 73 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 63 6c 61 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 ses[$type].=.$class;.}.......pub
38d60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b lic.function.getRepositories().{
38d80 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a .return.$this->repositories;.}..
38da0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 52 65 70 .....public.function.setLocalRep
38dc0 6f 73 69 74 6f 72 79 28 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 ository(WritableRepositoryInterf
38de0 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 ace.$repository).{.$this->localR
38e00 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a epository.=.$repository;.}......
38e20 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
38e40 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 ory().{.return.$this->localRepos
38e60 69 74 6f 72 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 6e 20 itory;.}........public.function.
38e80 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 74 72 69 67 67 65 72 getLocalRepositories().{.trigger
38ea0 5f 65 72 72 6f 72 28 27 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 65 _error('This.method.is.deprecate
38ec0 64 2c 20 75 73 65 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 65 61 d,.use.getLocalRepository.instea
38ee0 64 20 73 69 6e 63 65 20 74 68 65 20 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 d.since.the.getLocalDevRepositor
38f00 79 20 69 73 20 6e 6f 77 20 67 6f 6e 65 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 y.is.now.gone',.E_USER_DEPRECATE
38f20 44 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 D);..return.array($this->localRe
38f40 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a pository);.}.}.<?php............
38f60 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 0a namespace.Composer\Repository;..
38f80 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
38fa0 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f e;.......class.WritableArrayRepo
38fc0 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 sitory.extends.ArrayRepository.i
38fe0 6d 70 6c 65 6d 65 6e 74 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 mplements.WritableRepositoryInte
39000 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 rface.{....public.function.write
39020 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 ().{.}.....public.function.reloa
39040 64 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 d().{.}.....public.function.getC
39060 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d anonicalPackages().{.$packages.=
39080 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 20 24 70 61 63 6b 61 .$this->getPackages();....$packa
390a0 67 65 73 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 gesByName.=.array();.foreach.($p
390c0 61 63 6b 61 67 65 73 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 ackages.as.$package).{.if.(!isse
390e0 74 28 24 70 61 63 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 t($packagesByName[$package->getN
39100 61 6d 65 28 29 5d 29 20 7c 7c 20 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b ame()]).||.$packagesByName[$pack
39120 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 age->getName()].instanceof.Alias
39140 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b Package).{.$packagesByName[$pack
39160 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 0a age->getName()].=.$package;.}.}.
39180 0a 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a .$canonicalPackages.=.array();..
391a0 0a 20 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 20 61 73 20 24 70 ..foreach.($packagesByName.as.$p
391c0 61 63 6b 61 67 65 29 20 7b 0a 77 68 69 6c 65 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e ackage).{.while.($package.instan
391e0 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 20 ceof.AliasPackage).{.$package.=.
39200 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 24 63 61 6e 6f $package->getAliasOf();.}..$cano
39220 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 nicalPackages[].=.$package;.}..r
39240 65 74 75 72 6e 20 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f eturn.$canonicalPackages;.}.}.<?
39260 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
39280 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c r\Repository\Vcs;..use.Composer\
392a0 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c Config;.use.Composer\Downloader\
392c0 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 72 TransportException;.use.Composer
392e0 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 43 61 63 \Json\JsonFile;.use.Composer\Cac
39300 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b he;.use.Composer\IO\IOInterface;
39320 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 0a 0a 0a 0a 0a 63 .use.Composer\Util\GitHub;.....c
39340 6c 61 73 73 20 47 69 74 48 75 62 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 lass.GitHubDriver.extends.VcsDri
39360 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 74 65 ver.{.protected.$cache;.protecte
39380 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b d.$owner;.protected.$repository;
393a0 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
393c0 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
393e0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 49 73 73 75 65 73 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$hasIssues;.protecte
39400 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 d.$infoCache.=.array();.protecte
39420 64 20 24 69 73 50 72 69 76 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 d.$isPrivate.=.false;.......prot
39440 65 63 74 65 64 20 24 67 69 74 44 72 69 76 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ected.$gitDriver;.....public.fun
39460 63 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 ction.initialize().{.preg_match(
39480 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 28 5b 5e 2f 5d 2b 29 2f 7c '#^(?:(?:https?|git)://([^/]+)/|
394a0 67 69 74 40 28 5b 5e 3a 5d 2b 29 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 git@([^:]+):)([^/]+)/(.+?)(?:\.g
394c0 69 74 7c 2f 29 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a it|/)?$#',.$this->url,.$match);.
394e0 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 33 5d 3b 0a 24 74 68 69 73 2d $this->owner.=.$match[3];.$this-
39500 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 34 5d 3b 0a 24 74 68 69 73 2d 3e >repository.=.$match[4];.$this->
39520 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 5b 31 5d 29 20 3f 20 originUrl.=.!empty($match[1]).?.
39540 24 6d 61 74 63 68 5b 31 5d 20 3a 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 63 61 $match[1].:.$match[2];.$this->ca
39560 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
39580 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').
395a0 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2e 27 2f 27 2e 24 74 68 69 73 2d 3e '/'.$this->originUrl.'/'.$this->
395c0 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 29 3b 0a 0a 69 owner.'/'.$this->repository);..i
395e0 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 6e 6f 2d 61 f.(isset($this->repoConfig['no-a
39600 70 69 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6e 6f 2d 61 pi']).&&.$this->repoConfig['no-a
39620 70 69 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 74 pi']).{.$this->setupGitDriver($t
39640 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 65 his->url);..return;.}..$this->fe
39660 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 tchRootIdentifier();.}..public.f
39680 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 55 72 6c 28 29 0a 7b 0a 72 65 74 unction.getRepositoryUrl().{.ret
396a0 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2e urn.'https://'.$this->originUrl.
396c0 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 72 65 70 6f '/'.$this->owner.'/'.$this->repo
396e0 73 69 74 6f 72 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 sitory;.}.....public.function.ge
39700 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 73 2d 3e 67 tRootIdentifier().{.if.($this->g
39720 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 itDriver).{.return.$this->gitDri
39740 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 0a 72 65 74 ver->getRootIdentifier();.}..ret
39760 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;.}....
39780 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 69 66 20 28 .public.function.getUrl().{.if.(
397a0 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 $this->gitDriver).{.return.$this
397c0 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 74 75 72 6e ->gitDriver->getUrl();.}..return
397e0 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 72 6c 20 2e .'https://'...$this->originUrl..
39800 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 3e 72 65 70 .'/'.$this->owner.'/'.$this->rep
39820 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 74 65 64 20 ository.'.git';.}.....protected.
39840 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 67 69 74 68 function.getApiUrl().{.if.('gith
39860 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 29 20 7b 0a ub.com'.===.$this->originUrl).{.
39880 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 7d 20 65 6c $apiUrl.=.'api.github.com';.}.el
398a0 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 55 72 6c 20 se.{.$apiUrl.=.$this->originUrl.
398c0 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 73 3a 2f 2f ..'/api/v3';.}..return.'https://
398e0 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 6e 63 74 69 '...$apiUrl;.}.....public.functi
39900 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 69 66 20 28 on.getSource($identifier).{.if.(
39920 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 $this->gitDriver).{.return.$this
39940 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 74 69 66 69 ->gitDriver->getSource($identifi
39960 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 20 7b 0a 0a er);.}.if.($this->isPrivate).{..
39980 20 0a 20 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 ...$url.=.$this->generateSshUrl(
399a0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c );.}.else.{.$url.=.$this->getUrl
399c0 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 ();.}..return.array('type'.=>.'g
399e0 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 it',.'url'.=>.$url,.'reference'.
39a00 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 75 =>.$identifier);.}.....public.fu
39a20 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 75 nction.getDist($identifier).{.$u
39a40 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 70 6f rl.=.$this->getApiUrl()...'/repo
39a60 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f s/'.$this->owner.'/'.$this->repo
39a80 73 69 74 6f 72 79 2e 27 2f 7a 69 70 62 61 6c 6c 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a sitory.'/zipball/'.$identifier;.
39aa0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 .return.array('type'.=>.'zip',.'
39ac0 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 url'.=>.$url,.'reference'.=>.$id
39ae0 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a entifier,.'shasum'.=>.'');.}....
39b00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f .public.function.getComposerInfo
39b20 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 rmation($identifier).{.if.($this
39b40 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 ->gitDriver).{.return.$this->git
39b60 44 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 Driver->getComposerInformation($
39b80 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 identifier);.}..if.(preg_match('
39ba0 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 {[a-f0-9]{40}}i',.$identifier).&
39bc0 26 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 &.$res.=.$this->cache->read($ide
39be0 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 ntifier)).{.$this->infoCache[$id
39c00 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 entifier].=.JsonFile::parseJson(
39c20 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f $res);.}..if.(!isset($this->info
39c40 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 6e 6f 74 46 6f 75 6e 64 Cache[$identifier])).{.$notFound
39c60 52 65 74 72 69 65 73 20 3d 20 32 3b 0a 77 68 69 6c 65 20 28 24 6e 6f 74 46 6f 75 6e 64 52 65 74 Retries.=.2;.while.($notFoundRet
39c80 72 69 65 73 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d ries).{.try.{.$resource.=.$this-
39ca0 3e 67 65 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 >getApiUrl()...'/repos/'.$this->
39cc0 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 63 6f owner.'/'.$this->repository.'/co
39ce0 6e 74 65 6e 74 73 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3f 72 65 66 3d 27 2e 75 72 6c 65 6e ntents/composer.json?ref='.urlen
39d00 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a code($identifier);.$composer.=.J
39d20 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e sonFile::parseJson($this->getCon
39d40 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f tents($resource));.if.(empty($co
39d60 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 20 7c 7c 20 24 63 6f 6d 70 6f 73 65 72 5b mposer['content']).||.$composer[
39d80 27 65 6e 63 6f 64 69 6e 67 27 5d 20 21 3d 3d 20 27 62 61 73 65 36 34 27 20 7c 7c 20 21 28 24 63 'encoding'].!==.'base64'.||.!($c
39da0 6f 6d 70 6f 73 65 72 20 3d 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 omposer.=.base64_decode($compose
39dc0 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e r['content']))).{.throw.new.\Run
39de0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 timeException('Could.not.retriev
39e00 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 72 6f 6d 20 27 2e 24 72 65 73 6f 75 72 63 65 e.composer.json.from.'.$resource
39e20 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 );.}.break;.}.catch.(TransportEx
39e40 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 34 30 34 20 21 3d 3d 20 24 65 2d 3e 67 65 ception.$e).{.if.(404.!==.$e->ge
39e60 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 0a 20 24 6e 6f 74 tCode()).{.throw.$e;.}......$not
39e80 46 6f 75 6e 64 52 65 74 72 69 65 73 2d 2d 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 FoundRetries--;.$composer.=.fals
39ea0 65 3b 0a 7d 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 70 6f 73 e;.}.}..if.($composer).{.$compos
39ec0 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
39ee0 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 er,.$resource);..if.(empty($comp
39f00 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
39f20 69 73 2d 3e 67 65 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 is->getApiUrl()...'/repos/'.$thi
39f40 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 27 s->owner.'/'.$this->repository.'
39f60 2f 63 6f 6d 6d 69 74 73 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 /commits/'.urlencode($identifier
39f80 29 3b 0a 24 63 6f 6d 6d 69 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e );.$commit.=.JsonFile::parseJson
39fa0 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 ($this->getContents($resource),.
39fc0 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 $resource);.$composer['time'].=.
39fe0 24 63 6f 6d 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 $commit['commit']['committer']['
3a000 64 61 74 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 date'];.}.if.(!isset($composer['
3a020 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 6c 61 62 65 6c 20 3d support']['source'])).{.$label.=
3a040 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 .array_search($identifier,.$this
3a060 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 ->getTags()).?:.array_search($id
3a080 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 entifier,.$this->getBranches()).
3a0a0 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f ?:.$identifier;.$composer['suppo
3a0c0 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a rt']['source'].=.sprintf('https:
3a0e0 2f 2f 25 73 2f 25 73 2f 25 73 2f 74 72 65 65 2f 25 73 27 2c 20 24 74 68 69 73 2d 3e 6f 72 69 67 //%s/%s/%s/tree/%s',.$this->orig
3a100 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f inUrl,.$this->owner,.$this->repo
3a120 73 69 74 6f 72 79 2c 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 sitory,.$label);.}.if.(!isset($c
3a140 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 27 5d 29 20 26 26 omposer['support']['issues']).&&
3a160 20 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 .$this->hasIssues).{.$composer['
3a180 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 support']['issues'].=.sprintf('h
3a1a0 74 74 70 73 3a 2f 2f 25 73 2f 25 73 2f 25 73 2f 69 73 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e ttps://%s/%s/%s/issues',.$this->
3a1c0 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e originUrl,.$this->owner,.$this->
3a1e0 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 repository);.}.}..if.(preg_match
3a200 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 ('{[a-f0-9]{40}}i',.$identifier)
3a220 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 ).{.$this->cache->write($identif
3a240 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a ier,.json_encode($composer));.}.
3a260 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d .$this->infoCache[$identifier].=
3a280 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 .$composer;.}..return.$this->inf
3a2a0 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 oCache[$identifier];.}.....publi
3a2c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 c.function.getTags().{.if.($this
3a2e0 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 ->gitDriver).{.return.$this->git
3a300 44 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d Driver->getTags();.}.if.(null.==
3a320 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 =.$this->tags).{.$this->tags.=.a
3a340 72 72 61 79 28 29 3b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 rray();.$resource.=.$this->getAp
3a360 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 65 72 2e iUrl()...'/repos/'.$this->owner.
3a380 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 3f 70 65 72 '/'.$this->repository.'/tags?per
3a3a0 5f 70 61 67 65 3d 31 30 30 27 3b 0a 0a 64 6f 20 7b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 _page=100';..do.{.$tagsData.=.Js
3a3c0 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 onFile::parseJson($this->getCont
3a3e0 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 66 6f 72 ents($resource),.$resource);.for
3a400 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 29 20 7b 0a 24 74 68 69 73 each.($tagsData.as.$tag).{.$this
3a420 2d 3e 74 61 67 73 5b 24 74 61 67 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 74 61 67 5b 27 63 6f 6d ->tags[$tag['name']].=.$tag['com
3a440 6d 69 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 mit']['sha'];.}..$resource.=.$th
3a460 69 73 2d 3e 67 65 74 4e 65 78 74 50 61 67 65 28 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 65 73 is->getNextPage();.}.while.($res
3a480 6f 75 72 63 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d ource);.}..return.$this->tags;.}
3a4a0 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
3a4c0 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 74 ().{.if.($this->gitDriver).{.ret
3a4e0 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 6e 63 68 65 urn.$this->gitDriver->getBranche
3a500 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 72 61 6e 63 s();.}.if.(null.===.$this->branc
3a520 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 hes).{.$this->branches.=.array()
3a540 3b 0a 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 ;.$resource.=.$this->getApiUrl()
3a560 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 2f 27 2e 24 74 ...'/repos/'.$this->owner.'/'.$t
3a580 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 69 74 2f 72 65 66 73 2f 68 65 61 64 73 his->repository.'/git/refs/heads
3a5a0 3f 70 65 72 5f 70 61 67 65 3d 31 30 30 27 3b 0a 0a 24 62 72 61 6e 63 68 42 6c 61 63 6b 6c 69 73 ?per_page=100';..$branchBlacklis
3a5c0 74 20 3d 20 61 72 72 61 79 28 27 67 68 2d 70 61 67 65 73 27 29 3b 0a 0a 64 6f 20 7b 0a 24 62 72 t.=.array('gh-pages');..do.{.$br
3a5e0 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 anchData.=.JsonFile::parseJson($
3a600 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
3a620 65 73 6f 75 72 63 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 esource);.foreach.($branchData.a
3a640 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 62 72 61 s.$branch).{.$name.=.substr($bra
3a660 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 31 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 nch['ref'],.11);.if.(!in_array($
3a680 6e 61 6d 65 2c 20 24 62 72 61 6e 63 68 42 6c 61 63 6b 6c 69 73 74 29 29 20 7b 0a 24 74 68 69 73 name,.$branchBlacklist)).{.$this
3a6a0 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
3a6c0 65 63 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 7d 0a 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 ect']['sha'];.}.}..$resource.=.$
3a6e0 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 50 61 67 65 28 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 this->getNextPage();.}.while.($r
3a700 65 73 6f 75 72 63 65 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 esource);.}..return.$this->branc
3a720 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
3a740 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
3a760 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)
3a780 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 68 74 74 70 73 3f .{.if.(!preg_match('#^((?:https?
3a7a0 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@([^:]+):)([
3a7c0 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 7c 2f 29 3f 24 23 27 2c 20 24 75 72 6c ^/]+)/(.+?)(?:\.git|/)?$#',.$url
3a7e0 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 0a 7d 0a 0a ,.$matches)).{.return.false;.}..
3a800 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 5b 32 5d 29 $originUrl.=.!empty($matches[2])
3a820 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 3b 0a 69 66 .?.$matches[2].:.$matches[3];.if
3a840 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 66 69 67 2d .(!in_array($originUrl,.$config-
3a860 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 72 >get('github-domains'))).{.retur
3a880 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 n.false;.}..if.(!extension_loade
3a8a0 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f d('openssl')).{.if.($io->isVerbo
3a8c0 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 53 6b 69 70 70 69 6e se()).{.$io->writeError('Skippin
3a8e0 67 20 47 69 74 48 75 62 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 g.GitHub.driver.for.'.$url.'.bec
3a900 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 ause.the.OpenSSL.PHP.extension.i
3a920 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d s.missing.');.}..return.false;.}
3a940 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ..return.true;.}.......protected
3a960 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 0a 7b 0a 72 65 74 .function.generateSshUrl().{.ret
3a980 75 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 urn.'git@'...$this->originUrl...
3a9a0 27 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 ':'.$this->owner.'/'.$this->repo
3a9c0 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 74 65 64 20 66 sitory.'.git';.}.....protected.f
3a9e0 75 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 unction.getContents($url,.$fetch
3aa00 69 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 ingRepoData.=.false).{.try.{.ret
3aa20 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 6c 29 3b 0a 7d urn.parent::getContents($url);.}
3aa40 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b .catch.(TransportException.$e).{
3aa60 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d .$gitHubUtil.=.new.GitHub($this-
3aa80 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 >io,.$this->config,.$this->proce
3aaa0 73 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 ss,.$this->remoteFilesystem);..s
3aac0 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 63 61 73 65 20 34 30 31 witch.($e->getCode()).{.case.401
3aae0 3a 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 :.case.404:...if.(!$fetchingRepo
3ab00 44 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 Data).{.throw.$e;.}..if.($gitHub
3ab20 55 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 Util->authorizeOAuth($this->orig
3ab40 69 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 inUrl)).{.return.parent::getCont
3ab60 65 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 ents($url);.}..if.(!$this->io->i
3ab80 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e sInteractive()).{.return.$this->
3aba0 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 67 69 74 48 attemptCloneFallback();.}..$gitH
3abc0 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 72 61 63 74 69 76 ubUtil->authorizeOAuthInteractiv
3abe0 65 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 ely($this->originUrl,.'Your.GitH
3ac00 75 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 ub.credentials.are.required.to.f
3ac20 65 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 etch.private.repository.metadata
3ac40 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 .(<info>'.$this->url.'</info>)')
3ac60 3b 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 ;..return.parent::getContents($u
3ac80 72 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 rl);..case.403:.if.(!$this->io->
3aca0 68 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 hasAuthentication($this->originU
3acc0 72 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 rl).&&.$gitHubUtil->authorizeOAu
3ace0 74 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 th($this->originUrl)).{.return.p
3ad00 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 0a 0a 69 66 20 arent::getContents($url);.}..if.
3ad20 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 26 26 20 (!$this->io->isInteractive().&&.
3ad40 24 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 $fetchingRepoData).{.return.$thi
3ad60 73 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 s->attemptCloneFallback();.}..$r
3ad80 61 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 ateLimited.=.false;.foreach.($e-
3ada0 3e 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 >getHeaders().as.$header).{.if.(
3adc0 70 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 preg_match('{^X-RateLimit-Remain
3ade0 69 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 ing:.*0$}i',.trim($header))).{.$
3ae00 72 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 rateLimited.=.true;.}.}..if.(!$t
3ae20 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 74 68 69 73 his->io->hasAuthentication($this
3ae40 2d 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 ->originUrl)).{.if.(!$this->io->
3ae60 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 6f 2d 3e 77 72 isInteractive()).{.$this->io->wr
3ae80 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 iteError('<error>GitHub.API.limi
3aea0 74 20 65 78 68 61 75 73 74 65 64 2e 20 46 61 69 6c 65 64 20 74 6f 20 67 65 74 20 6d 65 74 61 64 t.exhausted..Failed.to.get.metad
3aec0 61 74 61 20 66 6f 72 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 72 65 70 6f 73 ata.for.the.'.$this->url.'.repos
3aee0 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 itory,.try.running.in.interactiv
3af00 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 e.mode.so.that.you.can.enter.you
3af20 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 69 6e 63 72 65 61 73 65 r.GitHub.credentials.to.increase
3af40 20 74 68 65 20 41 50 49 20 6c 69 6d 69 74 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 .the.API.limit</error>');.throw.
3af60 24 65 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 $e;.}..$gitHubUtil->authorizeOAu
3af80 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c thInteractively($this->originUrl
3afa0 2c 20 27 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 45 6e 74 65 72 20 79 6f ,.'API.limit.exhausted..Enter.yo
3afc0 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 67 65 74 20 61 20 6c ur.GitHub.credentials.to.get.a.l
3afe0 61 72 67 65 72 20 41 50 49 20 6c 69 6d 69 74 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e arger.API.limit.(<info>'.$this->
3b000 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a url.'</info>)');..return.parent:
3b020 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 24 72 61 74 65 :getContents($url);.}..if.($rate
3b040 4c 69 6d 69 74 65 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 Limited).{.$rateLimit.=.$this->g
3b060 65 74 52 61 74 65 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 etRateLimit($e->getHeaders());.$
3b080 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 0a 27 3c this->io->writeError(sprintf(.'<
3b0a0 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 74 20 28 25 64 20 63 61 6c 6c 73 error>GitHub.API.limit.(%d.calls
3b0c0 2f 68 72 29 20 69 73 20 65 78 68 61 75 73 74 65 64 2e 20 59 6f 75 20 61 72 65 20 61 6c 72 65 61 /hr).is.exhausted..You.are.alrea
3b0e0 64 79 20 61 75 74 68 6f 72 69 7a 65 64 20 73 6f 20 79 6f 75 20 68 61 76 65 20 74 6f 20 77 61 69 dy.authorized.so.you.have.to.wai
3b100 74 20 75 6e 74 69 6c 20 25 73 20 62 65 66 6f 72 65 20 64 6f 69 6e 67 20 6d 6f 72 65 20 72 65 71 t.until.%s.before.doing.more.req
3b120 75 65 73 74 73 3c 2f 65 72 72 6f 72 3e 27 2c 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 6c 69 6d 69 uests</error>',.$rateLimit['limi
3b140 74 27 5d 2c 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 72 65 73 65 74 27 5d 0a 29 29 3b 0a 7d 0a 0a t'],.$rateLimit['reset'].));.}..
3b160 74 68 72 6f 77 20 24 65 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a throw.$e;..default:.throw.$e;.}.
3b180 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 20 67 }.}.........protected.function.g
3b1a0 65 74 52 61 74 65 4c 69 6d 69 74 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 72 etRateLimit(array.$headers).{.$r
3b1c0 61 74 65 4c 69 6d 69 74 20 3d 20 61 72 72 61 79 28 0a 27 6c 69 6d 69 74 27 20 3d 3e 20 27 3f 27 ateLimit.=.array(.'limit'.=>.'?'
3b1e0 2c 0a 27 72 65 73 65 74 27 20 3d 3e 20 27 3f 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 ,.'reset'.=>.'?',.);..foreach.($
3b200 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 headers.as.$header).{.$header.=.
3b220 74 72 69 6d 28 24 68 65 61 64 65 72 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 trim($header);.if.(false.===.str
3b240 70 6f 73 28 24 68 65 61 64 65 72 2c 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 27 29 29 20 7b 0a pos($header,.'X-RateLimit-')).{.
3b260 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 6c 69 73 74 28 24 74 79 70 65 2c 20 24 76 61 6c 75 65 29 20 continue;.}.list($type,.$value).
3b280 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 68 65 61 64 65 72 2c 20 32 29 3b 0a 73 77 69 74 =.explode(':',.$header,.2);.swit
3b2a0 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 4c ch.($type).{.case.'X-RateLimit-L
3b2c0 69 6d 69 74 27 3a 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 6c 69 6d 69 74 27 5d 20 3d 20 28 69 6e imit':.$rateLimit['limit'].=.(in
3b2e0 74 29 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 58 2d t).trim($value);.break;.case.'X-
3b300 52 61 74 65 4c 69 6d 69 74 2d 52 65 73 65 74 27 3a 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 72 65 RateLimit-Reset':.$rateLimit['re
3b320 73 65 74 27 5d 20 3d 20 64 61 74 65 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 2c 20 28 69 6e 74 set'].=.date('Y-m-d.H:i:s',.(int
3b340 29 20 74 72 69 6d 28 24 76 61 6c 75 65 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 ).trim($value));.break;.}.}..ret
3b360 75 72 6e 20 24 72 61 74 65 4c 69 6d 69 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 urn.$rateLimit;.}.......protecte
3b380 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 d.function.fetchRootIdentifier()
3b3a0 0a 7b 0a 24 72 65 70 6f 44 61 74 61 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 .{.$repoDataUrl.=.$this->getApiU
3b3c0 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 2f rl()...'/repos/'.$this->owner.'/
3b3e0 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 '.$this->repository;..$repoData.
3b400 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 74 =.JsonFile::parseJson($this->get
3b420 43 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f 44 61 74 61 55 72 6c 2c 20 74 72 75 65 29 2c 20 24 72 Contents($repoDataUrl,.true),.$r
3b440 65 70 6f 44 61 74 61 55 72 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 44 epoDataUrl);.if.(null.===.$repoD
3b460 61 74 61 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 ata.&&.null.!==.$this->gitDriver
3b480 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 72 ).{.return;.}..$this->owner.=.$r
3b4a0 65 70 6f 44 61 74 61 5b 27 6f 77 6e 65 72 27 5d 5b 27 6c 6f 67 69 6e 27 5d 3b 0a 24 74 68 69 73 epoData['owner']['login'];.$this
3b4c0 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6e 61 6d 65 27 5d ->repository.=.$repoData['name']
3b4e0 3b 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 65 ;..$this->isPrivate.=.!empty($re
3b500 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 72 poData['private']);.if.(isset($r
3b520 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 74 epoData['default_branch'])).{.$t
3b540 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 5b his->rootIdentifier.=.$repoData[
3b560 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 73 'default_branch'];.}.elseif.(iss
3b580 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 20 et($repoData['master_branch'])).
3b5a0 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 44 {.$this->rootIdentifier.=.$repoD
3b5c0 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 24 ata['master_branch'];.}.else.{.$
3b5e0 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 3b this->rootIdentifier.=.'master';
3b600 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 65 .}.$this->hasIssues.=.!empty($re
3b620 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 63 poData['has_issues']);.}..protec
3b640 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 63 ted.function.attemptCloneFallbac
3b660 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 0a k().{.$this->isPrivate.=.true;..
3b680 74 72 79 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e 73 65 74 75 70 47 69 74 44 72 69 try.{.........$this->setupGitDri
3b6a0 76 65 72 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 29 3b 0a 0a 72 ver($this->generateSshUrl());..r
3b6c0 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 6f eturn;.}.catch.(\RuntimeExceptio
3b6e0 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 3b n.$e).{.$this->gitDriver.=.null;
3b700 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e ..$this->io->writeError('<error>
3b720 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 6e Failed.to.clone.the.'.$this->gen
3b740 65 72 61 74 65 53 73 68 55 72 6c 28 29 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 erateSshUrl().'.repository,.try.
3b760 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 running.in.interactive.mode.so.t
3b780 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 hat.you.can.enter.your.GitHub.cr
3b7a0 65 64 65 6e 74 69 61 6c 73 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d edentials</error>');.throw.$e;.}
3b7c0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 75 70 47 69 74 44 .}..protected.function.setupGitD
3b7e0 72 69 76 65 72 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d river($url).{.$this->gitDriver.=
3b800 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 24 .new.GitDriver(.array('url'.=>.$
3b820 75 72 6c 29 2c 0a 24 74 68 69 73 2d 3e 69 6f 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a url),.$this->io,.$this->config,.
3b840 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c $this->process,.$this->remoteFil
3b860 65 73 79 73 74 65 6d 0a 29 3b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 esystem.);.$this->gitDriver->ini
3b880 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e tialize();.}..protected.function
3b8a0 20 67 65 74 4e 65 78 74 50 61 67 65 28 29 0a 7b 0a 24 68 65 61 64 65 72 73 20 3d 20 24 74 68 69 .getNextPage().{.$headers.=.$thi
3b8c0 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 4c 61 73 74 48 65 61 64 s->remoteFilesystem->getLastHead
3b8e0 65 72 73 28 29 3b 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 ers();.foreach.($headers.as.$hea
3b900 64 65 72 29 20 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 68 65 61 64 65 72 2c 20 30 2c 20 35 29 der).{.if.(substr($header,.0,.5)
3b920 20 3d 3d 3d 20 27 4c 69 6e 6b 3a 27 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 65 78 70 6c 6f 64 65 .===.'Link:').{.$links.=.explode
3b940 28 27 2c 27 2c 20 73 75 62 73 74 72 28 24 68 65 61 64 65 72 2c 20 35 29 29 3b 0a 66 6f 72 65 61 (',',.substr($header,.5));.forea
3b960 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 65 67 5f ch.($links.as.$link).{.if.(preg_
3b980 6d 61 74 63 68 28 27 7b 3c 28 2e 2b 3f 29 3e 3b 20 2a 72 65 6c 3d 22 6e 65 78 74 22 7d 27 2c 20 match('{<(.+?)>;.*rel="next"}',.
3b9a0 24 6c 69 6e 6b 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b $link,.$match)).{.return.$match[
3b9c0 31 5d 3b 0a 7d 0a 7d 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 1];.}.}.}.}.}.}.<?php...........
3b9e0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 .namespace.Composer\Repository\V
3ba00 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 65 20 43 6f cs;..use.Composer\Config;.use.Co
3ba20 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
3ba40 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 er\IO\IOInterface;.....class.Git
3ba60 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 69 76 65 BitbucketDriver.extends.VcsDrive
3ba80 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a r.implements.VcsDriverInterface.
3baa0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 {.protected.$owner;.protected.$r
3bac0 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 epository;.protected.$tags;.prot
3bae0 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 6f 6f 74 ected.$branches;.protected.$root
3bb00 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 63 68 65 Identifier;.protected.$infoCache
3bb20 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.
3bb40 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 initialize().{.preg_match('#^htt
3bb60 70 73 3f 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b ps?://bitbucket\.org/([^/]+)/(.+
3bb80 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b ?)\.git$#',.$this->url,.$match);
3bba0 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 68 69 73 .$this->owner.=.$match[1];.$this
3bbc0 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 69 73 2d ->repository.=.$match[2];.$this-
3bbe0 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 0a 7d 0a >originUrl.=.'bitbucket.org';.}.
3bc00 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 74 ....public.function.getRootIdent
3bc20 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 3e 72 6f ifier().{.if.(null.===.$this->ro
3bc40 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 74 68 69 otIdentifier).{.$resource.=.$thi
3bc60 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 6b s->getScheme()...'://api.bitbuck
3bc80 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 2d et.org/1.0/repositories/'.$this-
3bca0 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 24 72 >owner.'/'.$this->repository;.$r
3bcc0 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 epoData.=.JsonFile::parseJson($t
3bce0 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 65 his->getContents($resource),.$re
3bd00 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d source);.$this->rootIdentifier.=
3bd20 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d .!empty($repoData['main_branch']
3bd40 29 20 3f 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 20 3a 20 27 ).?.$repoData['main_branch'].:.'
3bd60 6d 61 73 74 65 72 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 master';.}..return.$this->rootId
3bd80 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 entifier;.}.....public.function.
3bda0 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a getUrl().{.return.$this->url;.}.
3bdc0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 ....public.function.getSource($i
3bde0 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 dentifier).{.return.array('type'
3be00 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 .=>.'git',.'url'.=>.$this->getUr
3be20 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 l(),.'reference'.=>.$identifier)
3be40 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 28 ;.}.....public.function.getDist(
3be60 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 $identifier).{.$url.=.$this->get
3be80 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 Scheme()...'://bitbucket.org/'.$
3bea0 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 this->owner.'/'.$this->repositor
3bec0 79 2e 27 2f 67 65 74 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 y.'/get/'.$identifier.'.zip';..r
3bee0 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 eturn.array('type'.=>.'zip',.'ur
3bf00 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e l'.=>.$url,.'reference'.=>.$iden
3bf20 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 tifier,.'shasum'.=>.'');.}.....p
3bf40 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
3bf60 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 ation($identifier).{.if.(!isset(
3bf80 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 $this->infoCache[$identifier])).
3bfa0 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 {.$resource.=.$this->getScheme()
3bfc0 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 ...'://bitbucket.org/'.$this->ow
3bfe0 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 72 61 77 2f ner.'/'.$this->repository.'/raw/
3c000 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 6a 73 6f 6e 27 3b 0a '.$identifier.'/composer.json';.
3c020 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 $composer.=.$this->getContents($
3c040 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 21 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 72 65 74 resource);.if.(!$composer).{.ret
3c060 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 urn;.}..$composer.=.JsonFile::pa
3c080 72 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 rseJson($composer,.$resource);..
3c0a0 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a if.(empty($composer['time'])).{.
3c0c0 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()..
3c0e0 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
3c100 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
3c120 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 ->repository.'/changesets/'.$ide
3c140 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a ntifier;.$changeset.=.JsonFile::
3c160 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 parseJson($this->getContents($re
3c180 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 source),.$resource);.$composer['
3c1a0 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d time'].=.$changeset['timestamp']
3c1c0 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 ;.}.$this->infoCache[$identifier
3c1e0 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ].=.$composer;.}..return.$this->
3c200 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 infoCache[$identifier];.}.....pu
3c220 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 blic.function.getTags().{.if.(nu
3c240 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 ll.===.$this->tags).{.$resource.
3c260 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 =.$this->getScheme()...'://api.b
3c280 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e itbucket.org/1.0/repositories/'.
3c2a0 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f $this->owner.'/'.$this->reposito
3c2c0 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 ry.'/tags';.$tagsData.=.JsonFile
3c2e0 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 ::parseJson($this->getContents($
3c300 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 resource),.$resource);.$this->ta
3c320 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 gs.=.array();.foreach.($tagsData
3c340 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 .as.$tag.=>.$data).{.$this->tags
3c360 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a [$tag].=.$data['raw_node'];.}.}.
3c380 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
3c3a0 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
3c3c0 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f ull.===.$this->branches).{.$reso
3c3e0 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f urce.=.$this->getScheme()...'://
3c400 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 api.bitbucket.org/1.0/repositori
3c420 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 es/'.$this->owner.'/'.$this->rep
3c440 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 ository.'/branches';.$branchData
3c460 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
3c480 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)
3c4a0 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 ;.$this->branches.=.array();.for
3c4c0 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 each.($branchData.as.$branch.=>.
3c4e0 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 $data).{.$this->branches[$branch
3c500 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ].=.$data['raw_node'];.}.}..retu
3c520 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->branches;.}.....public
3c540 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 .static.function.supports(IOInte
3c560 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 2c rface.$io,.Config.$config,.$url,
3c580 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 .$deep.=.false).{.if.(!preg_matc
3c5a0 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e h('#^https?://bitbucket\.org/([^
3c5c0 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 /]+)/(.+?)\.git$#',.$url)).{.ret
3c5e0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 urn.false;.}..if.(!extension_loa
3c600 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 ded('openssl')).{.if.($io->isVer
3c620 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 53 6b 69 70 70 bose()).{.$io->writeError('Skipp
3c640 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 ing.Bitbucket.git.driver.for.'.$
3c660 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 url.'.because.the.OpenSSL.PHP.ex
3c680 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e tension.is.missing.');.}..return
3c6a0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 .false;.}..return.true;.}.}.<?ph
3c6c0 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\
3c6e0 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 Repository\Vcs;..use.Composer\Js
3c700 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 on\JsonFile;.use.Composer\Util\P
3c720 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 rocessExecutor;.use.Composer\Uti
3c740 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c l\Filesystem;.use.Composer\Util\
3c760 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c Git.as.GitUtil;.use.Composer\IO\
3c780 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 61 63 68 65 3b IOInterface;.use.Composer\Cache;
3c7a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 .use.Composer\Config;.....class.
3c7c0 47 69 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 GitDriver.extends.VcsDriver.{.pr
3c7e0 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 74 61 67 73 3b otected.$cache;.protected.$tags;
3c800 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.
3c820 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f $rootIdentifier;.protected.$repo
3c840 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 Dir;.protected.$infoCache.=.arra
3c860 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c y();.....public.function.initial
3c880 69 7a 65 28 29 0a 7b 0a 69 66 20 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 ize().{.if.(Filesystem::isLocalP
3c8a0 61 74 68 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 ath($this->url)).{.$this->repoDi
3c8c0 72 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 24 63 61 63 68 65 55 72 6c 20 3d 20 72 65 61 6c r.=.$this->url;.$cacheUrl.=.real
3c8e0 70 61 74 68 28 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 path($this->url);.}.else.{.$this
3c900 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('
3c920 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
3c940 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
3c960 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 ->url)...'/';..GitUtil::cleanEnv
3c980 28 29 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 ();..$fs.=.new.Filesystem();.$fs
3c9a0 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 6e 61 6d 65 28 ->ensureDirectoryExists(dirname(
3c9c0 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 3b 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 $this->repoDir));..if.(!is_writa
3c9e0 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a ble(dirname($this->repoDir))).{.
3ca00 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 61 6e throw.new.\RuntimeException('Can
3ca20 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 .not.clone.'.$this->url.'.to.acc
3ca40 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e ess.package.information..The."'.
3ca60 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 2e 27 22 20 64 69 72 65 63 dirname($this->repoDir).'".direc
3ca80 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 tory.is.not.writable.by.the.curr
3caa0 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ent.user.');.}..if.(preg_match('
3cac0 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 24 {^ssh://[^@]+@[^:]+:[^0-9]+}',.$
3cae0 74 68 69 73 2d 3e 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 this->url)).{.throw.new.\Invalid
3cb00 41 72 67 75 6d 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 ArgumentException('The.source.UR
3cb20 4c 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 L.'.$this->url.'.is.invalid,.ssh
3cb40 20 55 52 4c 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 .URLs.should.have.a.port.number.
3cb60 61 66 74 65 72 20 22 3a 22 2e 27 2e 22 5c 6e 22 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 after.":".'."\n".'Use.ssh://git@
3cb80 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 32 2f 70 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 example.com:22/path.or.just.git@
3cba0 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 61 74 68 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 example.com:path.if.you.do.not.w
3cbc0 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 ant.to.provide.a.password.or.cus
3cbe0 74 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a 7d 0a 0a 24 67 69 74 55 74 69 6c 20 3d 20 6e 65 77 20 47 tom.port.');.}..$gitUtil.=.new.G
3cc00 69 74 55 74 69 6c 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c itUtil($this->io,.$this->config,
3cc20 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 66 73 29 3b 0a 0a 0a 20 69 66 20 28 69 73 .$this->process,.$fs);....if.(is
3cc40 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 24 74 _dir($this->repoDir).&&.0.===.$t
3cc60 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 76 2d 70 his->process->execute('git.rev-p
3cc80 61 72 73 65 20 2d 2d 67 69 74 2d 64 69 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d arse.--git-dir',.$output,.$this-
3cca0 3e 72 65 70 6f 44 69 72 29 20 26 26 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3d 3d 3d 20 27 >repoDir).&&.trim($output).===.'
3ccc0 2e 27 29 20 7b 0a 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 .').{.try.{.$commandCallable.=.f
3cce0 75 6e 63 74 69 6f 6e 20 28 24 75 72 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 unction.($url).{.return.sprintf(
3cd00 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 6f 72 69 67 69 6e 20 25 73 20 26 26 'git.remote.set-url.origin.%s.&&
3cd20 20 67 69 74 20 72 65 6d 6f 74 65 20 75 70 64 61 74 65 20 2d 2d 70 72 75 6e 65 20 6f 72 69 67 69 .git.remote.update.--prune.origi
3cd40 6e 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c n',.ProcessExecutor::escape($url
3cd60 29 29 3b 0a 7d 3b 0a 24 67 69 74 55 74 69 6c 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d ));.};.$gitUtil->runCommand($com
3cd80 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d mandCallable,.$this->url,.$this-
3cda0 3e 72 65 70 6f 44 69 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 >repoDir);.}.catch.(\Exception.$
3cdc0 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 e).{.$this->io->writeError('<err
3cde0 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 6c or>Failed.to.update.'.$this->url
3ce00 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 69 .',.package.information.from.thi
3ce20 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 2e s.repository.may.be.outdated.('.
3ce40 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d $e->getMessage().')</error>');.}
3ce60 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 .}.else.{...$fs->removeDirectory
3ce80 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 24 72 65 70 6f 44 69 72 20 3d 20 24 74 ($this->repoDir);..$repoDir.=.$t
3cea0 68 69 73 2d 3e 72 65 70 6f 44 69 72 3b 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d his->repoDir;.$commandCallable.=
3cec0 20 66 75 6e 63 74 69 6f 6e 20 28 24 75 72 6c 29 20 75 73 65 20 28 24 72 65 70 6f 44 69 72 29 20 .function.($url).use.($repoDir).
3cee0 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 6c 6f 6e 65 20 2d 2d 6d 69 {.return.sprintf('git.clone.--mi
3cf00 72 72 6f 72 20 25 73 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 rror.%s.%s',.ProcessExecutor::es
3cf20 63 61 70 65 28 24 75 72 6c 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 cape($url),.ProcessExecutor::esc
3cf40 61 70 65 28 24 72 65 70 6f 44 69 72 29 29 3b 0a 7d 3b 0a 0a 24 67 69 74 55 74 69 6c 2d 3e 72 75 ape($repoDir));.};..$gitUtil->ru
3cf60 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 74 68 69 73 nCommand($commandCallable,.$this
3cf80 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 2c 20 74 72 75 65 29 3b 0a 7d 0a ->url,.$this->repoDir,.true);.}.
3cfa0 0a 24 63 61 63 68 65 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 24 74 68 69 .$cacheUrl.=.$this->url;.}..$thi
3cfc0 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
3cfe0 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 ();..$this->cache.=.new.Cache($t
3d000 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 63 his->io,.$this->config->get('cac
3d020 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 he-repo-dir').'/'.preg_replace('
3d040 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 63 61 63 68 65 55 72 6c 29 29 {[^a-z0-9.]}i',.'-',.$cacheUrl))
3d060 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
3d080 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 69 73 dentifier().{.if.(null.===.$this
3d0a0 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 72 6f 6f 74 49 ->rootIdentifier).{.$this->rootI
3d0c0 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e dentifier.=.'master';....$this->
3d0e0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e process->execute('git.branch.--n
3d100 6f 2d 63 6f 6c 6f 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 o-color',.$output,.$this->repoDi
3d120 72 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e r);.$branches.=.$this->process->
3d140 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 splitLines($output);.if.(!in_arr
3d160 61 79 28 27 2a 20 6d 61 73 74 65 72 27 2c 20 24 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 66 6f 72 ay('*.master',.$branches)).{.for
3d180 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 each.($branches.as.$branch).{.if
3d1a0 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 2a 20 2b 28 .($branch.&&.preg_match('{^\*.+(
3d1c0 5c 53 2b 29 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 \S+)}',.$branch,.$match)).{.$thi
3d1e0 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 62 s->rootIdentifier.=.$match[1];.b
3d200 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f reak;.}.}.}.}..return.$this->roo
3d220 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tIdentifier;.}.....public.functi
3d240 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b on.getUrl().{.return.$this->url;
3d260 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 .}.....public.function.getSource
3d280 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 ($identifier).{.return.array('ty
3d2a0 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 pe'.=>.'git',.'url'.=>.$this->ge
3d2c0 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 tUrl(),.'reference'.=>.$identifi
3d2e0 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 er);.}.....public.function.getDi
3d300 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d st($identifier).{.return.null;.}
3d320 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 70 6f 73 65 72 .....public.function.getComposer
3d340 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 70 Information($identifier).{.if.(p
3d360 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 24 69 64 reg_match('{[a-f0-9]{40}}i',.$id
3d380 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 63 68 65 entifier).&&.$res.=.$this->cache
3d3a0 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 3e 69 6e ->read($identifier)).{.$this->in
3d3c0 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a foCache[$identifier].=.JsonFile:
3d3e0 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 :parseJson($res);.}..if.(!isset(
3d400 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 $this->infoCache[$identifier])).
3d420 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 3a 63 6f 6d 70 6f 73 {.$resource.=.sprintf('%s:compos
3d440 65 72 2e 6a 73 6f 6e 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 er.json',.ProcessExecutor::escap
3d460 65 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 63 65 73 73 2d e($identifier));.$this->process-
3d480 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 25 73 27 2c 20 >execute(sprintf('git.show.%s',.
3d4a0 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 73 2d 3e 72 65 $resource),.$composer,.$this->re
3d4c0 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 72 29 29 20 7b poDir);..if.(!trim($composer)).{
3d4e0 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 6e 46 69 6c 65 .return;.}..$composer.=.JsonFile
3d500 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 6f 75 72 63 65 ::parseJson($composer,.$resource
3d520 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 );..if.(empty($composer['time'])
3d540 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 ).{.$this->process->execute(spri
3d560 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 25 61 74 20 25 73 ntf('git.log.-1.--format=%%at.%s
3d580 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 69 64 65 6e ',.ProcessExecutor::escape($iden
3d5a0 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 tifier)),.$output,.$this->repoDi
3d5c0 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 72 r);.$date.=.new.\DateTime('@'.tr
3d5e0 69 6d 28 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 im($output),.new.\DateTimeZone('
3d600 55 54 43 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 UTC'));.$composer['time'].=.$dat
3d620 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 69 66 20 e->format('Y-m-d.H:i:s');.}..if.
3d640 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 24 (preg_match('{[a-f0-9]{40}}i',.$
3d660 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 3e 77 72 69 identifier)).{.$this->cache->wri
3d680 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 24 63 6f 6d te($identifier,.json_encode($com
3d6a0 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 5b 24 69 64 poser));.}..$this->infoCache[$id
3d6c0 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 74 75 72 6e entifier].=.$composer;.}..return
3d6e0 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 72 5d 3b 0a .$this->infoCache[$identifier];.
3d700 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 73 28 29 0a }.....public.function.getTags().
3d720 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 7b 0a 24 74 {.if.(null.===.$this->tags).{.$t
3d740 68 69 73 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 his->tags.=.array();..$this->pro
3d760 63 65 73 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 cess->execute('git.show-ref.--ta
3d780 67 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 29 3b 0a 66 gs',.$output,.$this->repoDir);.f
3d7a0 6f 72 65 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 oreach.($output.=.$this->process
3d7c0 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 74 61 67 29 20 7b ->splitLines($output).as.$tag).{
3d7e0 0a 69 66 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 .if.($tag.&&.preg_match('{^([a-f
3d800 30 2d 39 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 0-9]{40}).refs/tags/(\S+)$}',.$t
3d820 61 67 2c 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 ag,.$match)).{.$this->tags[$matc
3d840 68 5b 32 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 h[2]].=.$match[1];.}.}.}..return
3d860 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 63 74 .$this->tags;.}.....public.funct
3d880 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 3d 3d ion.getBranches().{.if.(null.===
3d8a0 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 3d 20 .$this->branches).{.$branches.=.
3d8c0 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 array();..$this->process->execut
3d8e0 65 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 e('git.branch.--no-color.--no-ab
3d900 62 72 65 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 brev.-v',.$output,.$this->repoDi
3d920 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c r);.foreach.($this->process->spl
3d940 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 itLines($output).as.$branch).{.i
3d960 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b f.($branch.&&.!preg_match('{^.*[
3d980 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 70 72 ^/]+/HEAD.}',.$branch)).{.if.(pr
3d9a0 65 67 5f 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 eg_match('{^(?:\*.)?.*(\S+).*([a
3d9c0 2d 66 30 2d 39 5d 2b 29 28 3f 3a 20 2e 2a 29 3f 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d -f0-9]+)(?:..*)?$}',.$branch,.$m
3d9e0 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 5d 20 3d 20 atch)).{.$branches[$match[1]].=.
3da00 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 $match[2];.}.}.}..$this->branche
3da20 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e s.=.$branches;.}..return.$this->
3da40 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 75 branches;.}.....public.static.fu
3da60 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 2c nction.supports(IOInterface.$io,
3da80 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 66 .Config.$config,.$url,.$deep.=.f
3daa0 61 6c 73 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 67 69 74 3a 2f alse).{.if.(preg_match('#(^git:/
3dac0 2f 7c 5c 2e 67 69 74 24 7c 67 69 74 28 3f 3a 6f 6c 69 74 65 29 3f 40 7c 2f 2f 67 69 74 5c 2e 7c /|\.git$|git(?:olite)?@|//git\.|
3dae0 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 //github.com/)#i',.$url)).{.retu
3db00 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 rn.true;.}....if.(Filesystem::is
3db20 4c 6f 63 61 6c 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 24 75 72 6c 20 3d 20 46 69 6c 65 73 79 LocalPath($url)).{.$url.=.Filesy
3db40 73 74 65 6d 3a 3a 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 24 75 72 6c 29 3b 0a 69 66 20 stem::getPlatformPath($url);.if.
3db60 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a (!is_dir($url)).{.return.false;.
3db80 7d 0a 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 }..$process.=.new.ProcessExecuto
3dba0 72 28 24 69 6f 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 r($io);...if.($process->execute(
3dbc0 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 'git.tag',.$output,.$url).===.0)
3dbe0 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 .{.return.true;.}.}..if.(!$deep)
3dc00 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e .{.return.false;.}..$process.=.n
3dc20 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 69 66 20 28 24 70 72 ew.ProcessExecutor($io);.if.($pr
3dc40 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 6c 73 2d 72 65 6d 6f 74 65 20 2d 2d ocess->execute('git.ls-remote.--
3dc60 68 65 61 64 73 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 heads.'...ProcessExecutor::escap
3dc80 65 28 24 75 72 6c 29 2c 20 24 6f 75 74 70 75 74 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 e($url),.$output).===.0).{.retur
3dca0 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 n.true;.}..return.false;.}.}.<?p
3dcc0 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
3dce0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 \Repository\Vcs;..use.Composer\C
3dd00 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 onfig;.use.Composer\IO\IOInterfa
3dd20 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 65 ce;.use.Composer\Util\ProcessExe
3dd40 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 50 65 72 66 6f 72 63 cutor;.use.Composer\Util\Perforc
3dd60 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 65 44 72 69 76 65 72 20 65 78 74 65 e;.....class.PerforceDriver.exte
3dd80 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 70 6f 74 nds.VcsDriver.{.protected.$depot
3dda0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ;.protected.$branch;.protected.$
3ddc0 70 65 72 66 6f 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 49 6e 66 perforce;.protected.$composerInf
3dde0 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 49 64 65 6e 74 69 o;.protected.$composerInfoIdenti
3de00 66 69 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 fier;.....public.function.initia
3de20 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 70 6f 74 20 3d 20 24 74 68 69 73 2d 3e 72 lize().{.$this->depot.=.$this->r
3de40 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 epoConfig['depot'];.$this->branc
3de60 68 20 3d 20 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f h.=.'';.if.(!empty($this->repoCo
3de80 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 nfig['branch'])).{.$this->branch
3dea0 20 3d 20 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 27 5d 3b 0a .=.$this->repoConfig['branch'];.
3dec0 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 50 65 72 66 6f 72 63 65 28 24 74 68 69 73 2d 3e 72 65 }..$this->initPerforce($this->re
3dee0 70 6f 43 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 70 34 4c 6f poConfig);.$this->perforce->p4Lo
3df00 67 69 6e 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d gin($this->io);.$this->perforce-
3df20 3e 63 68 65 63 6b 53 74 72 65 61 6d 28 24 74 68 69 73 2d 3e 64 65 70 6f 74 29 3b 0a 0a 24 74 68 >checkStream($this->depot);..$th
3df40 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(
3df60 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
3df80 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 t();..return.true;.}..private.fu
3dfa0 6e 63 74 69 6f 6e 20 69 6e 69 74 50 65 72 66 6f 72 63 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 29 nction.initPerforce($repoConfig)
3dfc0 0a 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 29 29 20 .{.if.(!empty($this->perforce)).
3dfe0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 {.return;.}..$repoDir.=.$this->c
3e000 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 20 2e 20 27 2f onfig->get('cache-vcs-dir')...'/
3e020 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 70 6f 74 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 '...$this->depot;.$this->perforc
3e040 65 20 3d 20 50 65 72 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 e.=.Perforce::create($repoConfig
3e060 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 24 72 65 70 6f 44 69 72 2c 20 24 74 68 ,.$this->getUrl(),.$repoDir,.$th
3e080 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 70 is->process,.$this->io);.}.....p
3e0a0 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
3e0c0 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 ation($identifier).{.if.(!empty(
3e0e0 24 74 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 $this->composerInfoIdentifier)).
3e100 7b 0a 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 {.if.(strcmp($identifier,.$this-
3e120 3e 63 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 >composerInfoIdentifier).===.0).
3e140 7b 0a 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 {.return.$this->composerInfo;.}.
3e160 7d 0a 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 }.$composer_info.=.$this->perfor
3e180 63 65 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 ce->getComposerInformation($iden
3e1a0 74 69 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 tifier);..return.$composer_info;
3e1c0 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
3e1e0 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 62 72 61 6e 63 entifier().{.return.$this->branc
3e200 68 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 h;.}.....public.function.getBran
3e220 63 68 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 ches().{.$branches.=.$this->perf
3e240 6f 72 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 orce->getBranches();..return.$br
3e260 61 6e 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 anches;.}.....public.function.ge
3e280 74 54 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 tTags().{.$tags.=.$this->perforc
3e2a0 65 2d 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 e->getTags();..return.$tags;.}..
3e2c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e ...public.function.getDist($iden
3e2e0 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 tifier).{.return.null;.}.....pub
3e300 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
3e320 65 72 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 er).{.$source.=.array(.'type'.=>
3e340 20 27 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 .'perforce',.'url'.=>.$this->rep
3e360 6f 43 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 oConfig['url'],.'reference'.=>.$
3e380 69 64 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 identifier,.'p4user'.=>.$this->p
3e3a0 65 72 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 erforce->getUser().);..return.$s
3e3c0 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ource;.}.....public.function.get
3e3e0 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a Url().{.return.$this->url;.}....
3e400 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 .public.function.hasComposerFile
3e420 28 24 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 ($identifier).{.$this->composerI
3e440 6e 66 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 nfo.=.$this->perforce->getCompos
3e460 65 72 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 erInformation('//'...$this->depo
3e480 74 20 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 t...'/'...$identifier);.$this->c
3e4a0 6f 6d 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 omposerInfoIdentifier.=.$identif
3e4c0 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f ier;..return.!empty($this->compo
3e4e0 73 65 72 49 6e 66 6f 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 serInfo);.}.....public.function.
3e500 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 getContents($url).{.return.false
3e520 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
3e540 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.
3e560 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).{.
3e580 69 66 20 28 24 64 65 65 70 20 7c 7c 20 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5c 62 28 70 65 72 if.($deep.||.preg_match('#\b(per
3e5a0 66 6f 72 63 65 7c 70 34 29 5c 62 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 force|p4)\b#i',.$url)).{.return.
3e5c0 50 65 72 66 6f 72 63 65 3a 3a 63 68 65 63 6b 53 65 72 76 65 72 45 78 69 73 74 73 28 24 75 72 6c Perforce::checkServerExists($url
3e5e0 2c 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 29 3b 0a 7d 0a 0a ,.new.ProcessExecutor($io));.}..
3e600 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 return.false;.}.....public.funct
3e620 69 6f 6e 20 63 6c 65 61 6e 75 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d ion.cleanup().{.$this->perforce-
3e640 3e 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 >cleanupClientSpec();.$this->per
3e660 66 6f 72 63 65 20 3d 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 force.=.null;.}..public.function
3e680 20 67 65 74 44 65 70 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 70 6f .getDepot().{.return.$this->depo
3e6a0 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 42 72 61 6e 63 68 28 t;.}..public.function.getBranch(
3e6c0 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 0a 7d 0a 7d 0a 3c 3f ).{.return.$this->branch;.}.}.<?
3e6e0 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
3e700 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c r\Repository\Vcs;..use.Composer\
3e720 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 20 Cache;.use.Composer\Config;.use.
3e740 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
3e760 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
3e780 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
3e7a0 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 3b 0a 75 73 65 20 43 poser\Util\Svn.as.SvnUtil;.use.C
3e7c0 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
3e7e0 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 oser\Downloader\TransportExcepti
3e800 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 on;......class.SvnDriver.extends
3e820 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 .VcsDriver.{....protected.$cache
3e840 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 ;.protected.$baseUrl;.protected.
3e860 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 $tags;.protected.$branches;.prot
3e880 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 ected.$rootIdentifier;.protected
3e8a0 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 .$infoCache.=.array();..protecte
3e8c0 64 20 24 74 72 75 6e 6b 50 61 74 68 20 3d 20 27 74 72 75 6e 6b 27 3b 0a 70 72 6f 74 65 63 74 65 d.$trunkPath.=.'trunk';.protecte
3e8e0 64 20 24 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 27 62 72 61 6e 63 68 65 73 27 3b 0a 70 72 d.$branchesPath.=.'branches';.pr
3e900 6f 74 65 63 74 65 64 20 24 74 61 67 73 50 61 74 68 20 3d 20 27 74 61 67 73 27 3b 0a 70 72 6f 74 otected.$tagsPath.=.'tags';.prot
3e920 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 50 61 74 68 20 3d 20 27 27 3b 0a 70 72 6f 74 65 63 74 ected.$packagePath.=.'';.protect
3e940 65 64 20 24 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a ed.$cacheCredentials.=.true;....
3e960 0a 70 72 69 76 61 74 65 20 24 75 74 69 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .private.$util;.....public.funct
3e980 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 75 72 6c 20 3d 20 ion.initialize().{.$this->url.=.
3e9a0 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 73 65 6c 66 3a 3a 6e 6f 72 $this->baseUrl.=.rtrim(self::nor
3e9c0 6d 61 6c 69 7a 65 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 0a 53 76 malizeUrl($this->url),.'/');..Sv
3e9e0 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 nUtil::cleanEnv();..if.(isset($t
3ea00 68 69 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 his->repoConfig['trunk-path'])).
3ea20 7b 0a 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 {.$this->trunkPath.=.$this->repo
3ea40 43 6f 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 Config['trunk-path'];.}.if.(isse
3ea60 74 28 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 t($this->repoConfig['branches-pa
3ea80 74 68 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 th'])).{.$this->branchesPath.=.$
3eaa0 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 27 this->repoConfig['branches-path'
3eac0 5d 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 ];.}.if.(isset($this->repoConfig
3eae0 5b 27 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 ['tags-path'])).{.$this->tagsPat
3eb00 68 20 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 h.=.$this->repoConfig['tags-path
3eb20 27 5d 3b 0a 7d 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 73 76 6e 2d '];.}.if.(array_key_exists('svn-
3eb40 63 61 63 68 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 27 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 cache-credentials',.$this->repoC
3eb60 6f 6e 66 69 67 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c onfig)).{.$this->cacheCredential
3eb80 73 20 3d 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 73 76 s.=.(bool).$this->repoConfig['sv
3eba0 6e 2d 63 61 63 68 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 n-cache-credentials'];.}.if.(iss
3ebc0 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 2d 70 61 et($this->repoConfig['package-pa
3ebe0 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 50 61 74 68 20 3d 20 27 2f th'])).{.$this->packagePath.=.'/
3ec00 27 20 2e 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 61 63 6b '...trim($this->repoConfig['pack
3ec20 61 67 65 2d 70 61 74 68 27 5d 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 age-path'],.'/');.}..if.(false.!
3ec40 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 27 ==.($pos.=.strrpos($this->url,.'
3ec60 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 29 29 29 20 7b 0a 24 74 68 69 73 /'...$this->trunkPath))).{.$this
3ec80 2d 3e 62 61 73 65 55 72 6c 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 ->baseUrl.=.substr($this->url,.0
3eca0 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 ,.$pos);.}..$this->cache.=.new.C
3ecc0 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 66 69 67 2d 3e 67 ache($this->io,.$this->config->g
3ece0 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 67 5f 72 65 et('cache-repo-dir').'/'.preg_re
3ed00 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 place('{[^a-z0-9.]}i',.'-',.$thi
3ed20 73 2d 3e 62 61 73 65 55 72 6c 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 s->baseUrl));..$this->getBranche
3ed40 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 s();.$this->getTags();.}.....pub
3ed60 6c 69 63 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 lic.function.getRootIdentifier()
3ed80 0a 7b 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 20 .{.return.$this->rootIdentifier.
3eda0 3f 3a 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ?:.$this->trunkPath;.}.....publi
3edc0 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 6e 20 24 74 68 c.function.getUrl().{.return.$th
3ede0 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 is->url;.}.....public.function.g
3ee00 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 75 72 6e 20 61 etSource($identifier).{.return.a
3ee20 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 76 6e 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 rray('type'.=>.'svn',.'url'.=>.$
3ee40 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 this->baseUrl,.'reference'.=>.$i
3ee60 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 75 6e 63 74 69 6f dentifier);.}.....public.functio
3ee80 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 n.getDist($identifier).{.return.
3eea0 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 null;.}.....public.function.getC
3eec0 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a omposerInformation($identifier).
3eee0 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 2f 27 20 2e 20 74 72 69 6d 28 24 69 64 65 6e {.$identifier.=.'/'...trim($iden
3ef00 74 69 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 24 72 65 73 20 3d 20 tifier,.'/')...'/';..if.($res.=.
3ef20 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 2e 27 $this->cache->read($identifier.'
3ef40 2e 6a 73 6f 6e 27 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 .json')).{.$this->infoCache[$ide
3ef60 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 ntifier].=.JsonFile::parseJson($
3ef80 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 res);.}..if.(!isset($this->infoC
3efa0 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 ache[$identifier])).{.preg_match
3efc0 28 27 7b 5e 28 2e 2b 3f 29 28 40 5c 64 2b 29 3f 2f 24 7d 27 2c 20 24 69 64 65 6e 74 69 66 69 65 ('{^(.+?)(@\d+)?/$}',.$identifie
3efe0 72 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 32 5d r,.$match);.if.(!empty($match[2]
3f000 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 72 65 76 20 3d 20 24 )).{.$path.=.$match[1];.$rev.=.$
3f020 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 24 69 64 65 6e match[2];.}.else.{.$path.=.$iden
3f040 74 69 66 69 65 72 3b 0a 24 72 65 76 20 3d 20 27 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 73 tifier;.$rev.=.'';.}..try.{.$res
3f060 6f 75 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 ource.=.$path.'composer.json';.$
3f080 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 63 61 74 output.=.$this->execute('svn.cat
3f0a0 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 ',.$this->baseUrl...$resource...
3f0c0 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 $rev);.if.(!trim($output)).{.ret
3f0e0 75 72 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f urn;.}.}.catch.(\RuntimeExceptio
3f100 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 n.$e).{.throw.new.TransportExcep
3f120 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 tion($e->getMessage());.}..$comp
3f140 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 28 24 6f 75 74 70 oser.=.JsonFile::parseJson($outp
3f160 75 74 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e ut,.$this->baseUrl...$resource..
3f180 20 24 72 65 76 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 .$rev);..if.(empty($composer['ti
3f1a0 6d 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 me'])).{.$output.=.$this->execut
3f1c0 65 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 e('svn.info',.$this->baseUrl...$
3f1e0 70 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 path...$rev);.foreach.($this->pr
3f200 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c ocess->splitLines($output).as.$l
3f220 69 6e 65 29 20 7b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 ine).{.if.($line.&&.preg_match('
3f240 7b 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 74 65 3a 20 28 5b 5e 28 5d 2b 29 7d 27 2c 20 {^Last.Changed.Date:.([^(]+)}',.
3f260 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 $line,.$match)).{.$date.=.new.\D
3f280 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 ateTime($match[1],.new.\DateTime
3f2a0 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 Zone('UTC'));.$composer['time'].
3f2c0 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a =.$date->format('Y-m-d.H:i:s');.
3f2e0 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 break;.}.}.}..$this->cache->writ
3f300 65 28 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f e($identifier.'.json',.json_enco
3f320 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 de($composer));.$this->infoCache
3f340 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
3f360 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
3f380 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
3f3a0 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).
3f3c0 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 74 {.$this->tags.=.array();..if.($t
3f3e0 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6f 75 74 70 his->tagsPath.!==.false).{.$outp
3f400 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 2d 76 65 ut.=.$this->execute('svn.ls.--ve
3f420 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 rbose',.$this->baseUrl...'/'...$
3f440 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a this->tagsPath);.if.($output).{.
3f460 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 69 foreach.($this->process->splitLi
3f480 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d nes($output).as.$line).{.$line.=
3f4a0 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_
3f4c0 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*$}',
3f4e0 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
3f500 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]).&&.$
3f520 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 74 61 67 73 match[2].!==.'./').{.$this->tags
3f540 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 68 69 73 2d [rtrim($match[2],.'/')].=.$this-
3f560 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 73 2d 3e 74 >buildIdentifier(.'/'...$this->t
3f580 61 67 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 24 6d 61 74 63 agsPath...'/'...$match[2],.$matc
3f5a0 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 h[1].);.}.}.}.}.}.}..return.$thi
3f5c0 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 20 67 s->tags;.}.....public.function.g
3f5e0 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 68 69 etBranches().{.if.(null.===.$thi
3f600 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d s->branches).{.$this->branches.=
3f620 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e .array();..if.(false.===.$this->
3f640 74 72 75 6e 6b 50 61 74 68 29 20 7b 0a 24 74 72 75 6e 6b 50 61 72 65 6e 74 20 3d 20 24 74 68 69 trunkPath).{.$trunkParent.=.$thi
3f660 73 2d 3e 62 61 73 65 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 s->baseUrl...'/';.}.else.{.$trun
3f680 6b 50 61 72 65 6e 74 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 kParent.=.$this->baseUrl...'/'..
3f6a0 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 .$this->trunkPath;.}..$output.=.
3f6c0 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 $this->execute('svn.ls.--verbose
3f6e0 27 2c 20 24 74 72 75 6e 6b 50 61 72 65 6e 74 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b ',.$trunkParent);.if.($output).{
3f700 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
3f720 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 ines($output).as.$line).{.$line.
3f740 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 =.trim($line);.if.($line.&&.preg
3f760 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 _match('{^\s*(\S+).*?(\S+)\s*$}'
3f780 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d ,.$line,.$match)).{.if.(isset($m
3f7a0 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 atch[1]).&&.isset($match[2]).&&.
3f7c0 24 6d 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 $match[2].===.'./').{.$this->bra
3f7e0 6e 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 nches['trunk'].=.$this->buildIde
3f800 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 74 68 2c ntifier(.'/'...$this->trunkPath,
3f820 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 74 69 66 .$match[1].);.$this->rootIdentif
3f840 69 65 72 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 3b 0a ier.=.$this->branches['trunk'];.
3f860 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 6f 75 74 70 75 74 29 3b 0a 0a break;.}.}.}.}.unset($output);..
3f880 69 66 20 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 21 3d 3d 20 66 61 6c 73 if.($this->branchesPath.!==.fals
3f8a0 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 27 73 e).{.$output.=.$this->execute('s
3f8c0 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 72 6c vn.ls.--verbose',.$this->baseUrl
3f8e0 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 29 3b 0a 69 ...'/'...$this->branchesPath);.i
3f900 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 f.($output).{.foreach.($this->pr
3f920 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 ocess->splitLines(trim($output))
3f940 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 .as.$line).{.$line.=.trim($line)
3f960 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a ;.if.($line.&&.preg_match('{^\s*
3f980 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 (\S+).*?(\S+)\s*$}',.$line,.$mat
3f9a0 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 ch)).{.if.(isset($match[1]).&&.i
3f9c0 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d sset($match[2]).&&.$match[2].!==
3f9e0 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 72 74 72 69 6d 28 24 .'./').{.$this->branches[rtrim($
3fa00 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 match[2],.'/')].=.$this->buildId
3fa20 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 entifier(.'/'...$this->branchesP
3fa40 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 24 6d 61 74 63 68 5b 31 5d ath...'/'...$match[2],.$match[1]
3fa60 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 .);.}.}.}.}.}.}..return.$this->b
3fa80 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 75 6e ranches;.}.....public.static.fun
3faa0 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 2c 20 ction.supports(IOInterface.$io,.
3fac0 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 66 61 Config.$config,.$url,.$deep.=.fa
3fae0 6c 73 65 29 0a 7b 0a 24 75 72 6c 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c lse).{.$url.=.self::normalizeUrl
3fb00 28 24 75 72 6c 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 73 76 6e 3a 2f ($url);.if.(preg_match('#(^svn:/
3fb20 2f 7c 5e 73 76 6e 5c 2b 73 73 68 3a 2f 2f 7c 73 76 6e 5c 2e 29 23 69 27 2c 20 24 75 72 6c 29 29 /|^svn\+ssh://|svn\.)#i',.$url))
3fb40 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 64 65 65 70 20 .{.return.true;.}....if.(!$deep.
3fb60 26 26 20 21 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 75 72 6c &&.!Filesystem::isLocalPath($url
3fb80 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 6f 63 65 73 73 45 78 )).{.return.false;.}..$processEx
3fba0 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 74 6f 72 28 29 3b 0a ecutor.=.new.ProcessExecutor();.
3fbc0 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 .$exit.=.$processExecutor->execu
3fbe0 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 61 63 74 69 76 65 20 te(."svn.info.--non-interactive.
3fc00 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 3b 0a 0a 69 66 20 28 {$url}",.$ignoredOutput.);..if.(
3fc20 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 72 75 65 3b 0a 7d 0a $exit.===.0).{...return.true;.}.
3fc40 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 72 6f 63 65 73 73 45 .if.(false.!==.stripos($processE
3fc60 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 2c 20 27 61 75 74 68 xecutor->getErrorOutput(),.'auth
3fc80 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 0a 20 72 65 74 75 72 orization.failed:')).{.....retur
3fca0 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a n.true;.}..return.false;.}......
3fcc0 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 69 6f 6e 20 6e 6f 72 ...protected.static.function.nor
3fce0 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 65 77 20 46 69 6c 65 malizeUrl($url).{.$fs.=.new.File
3fd00 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 6c 75 74 65 50 61 74 system();.if.($fs->isAbsolutePat
3fd20 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 2f 27 20 2e 20 73 74 h($url)).{.return.'file://'...st
3fd40 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 72 65 74 75 72 6e 20 rtr($url,.'\\',.'/');.}..return.
3fd60 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 65 64 20 66 75 6e 63 $url;.}...........protected.func
3fd80 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 29 0a 7b 0a 69 tion.execute($command,.$url).{.i
3fda0 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 7b 0a 24 74 68 69 73 f.(null.===.$this->util).{.$this
3fdc0 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 73 2d 3e 62 61 73 65 ->util.=.new.SvnUtil($this->base
3fde0 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 Url,.$this->io,.$this->config,.$
3fe00 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 68 69 73 2d 3e 75 74 69 6c 2d 3e 73 65 74 this->process);.$this->util->set
3fe20 43 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 28 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 CacheCredentials($this->cacheCre
3fe40 64 65 6e 74 69 61 6c 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 dentials);.}..try.{.return.$this
3fe60 2d 3e 75 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 ->util->execute($command,.$url);
3fe80 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 20 .}.catch.(\RuntimeException.$e).
3fea0 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
3fec0 75 74 65 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 ute('svn.--version',.$ignoredOut
3fee0 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 put)).{.throw.new.\RuntimeExcept
3ff00 69 6f 6e 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 ion('Failed.to.load.'.$this->url
3ff20 2e 27 2c 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 .',.svn.was.not.found,.check.tha
3ff40 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 t.it.is.installed.and.in.your.PA
3ff60 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 TH.env.'..."\n\n"...$this->proce
3ff80 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 ss->getErrorOutput());.}..throw.
3ffa0 6e 65 77 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 new.\RuntimeException(.'Reposito
3ffc0 72 79 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 70 ry.'.$this->url.'.could.not.be.p
3ffe0 72 6f 63 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 rocessed,.'.$e->getMessage().);.
40000 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 }.}..........protected.function.
40020 62 75 69 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 buildIdentifier($baseDir,.$revis
40040 69 6f 6e 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 ion).{.return.rtrim($baseDir,.'/
40060 27 29 20 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 ')...$this->packagePath...'/@'..
40080 20 24 72 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 .$revision;.}.}.<?php...........
400a0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 .namespace.Composer\Repository\V
400c0 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 65 20 43 6f cs;..use.Composer\Config;.use.Co
400e0 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 69 6e 74 65 72 mposer\IO\IOInterface;.....inter
40100 66 61 63 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 face.VcsDriverInterface.{....pub
40120 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 3b 0a 0a 0a 0a 0a 0a lic.function.initialize();......
40140 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 ..public.function.getComposerInf
40160 6f 72 6d 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 ormation($identifier);.......pub
40180 6c 69 63 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 lic.function.getRootIdentifier()
401a0 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 42 72 61 6e 63 ;.......public.function.getBranc
401c0 68 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 6f 6e 20 67 65 74 hes();.......public.function.get
401e0 54 61 67 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 Tags();......public.function.get
40200 44 69 73 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 Dist($identifier);......public.f
40220 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 3b 0a unction.getSource($identifier);.
40240 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 72 6c 28 29 3b 0a ......public.function.getUrl();.
40260 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 43 6f 6d 70 6f ........public.function.hasCompo
40280 73 65 72 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 serFile($identifier);......publi
402a0 63 20 66 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 c.function.cleanup();...........
402c0 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 public.static.function.supports(
402e0 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 67 2c IOInterface.$io,.Config.$config,
40300 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a .$url,.$deep.=.false);.}.<?php..
40320 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
40340 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 6f 6e 66 69 ository\Vcs;..use.Composer\Confi
40360 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 g;.use.Composer\Json\JsonFile;.u
40380 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 se.Composer\Util\ProcessExecutor
403a0 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;.
403c0 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 0a 0a 0a use.Composer\IO\IOInterface;....
403e0 0a 63 6c 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 .class.HgDriver.extends.VcsDrive
40400 72 0a 7b 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 r.{.protected.$tags;.protected.$
40420 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 branches;.protected.$rootIdentif
40440 69 65 72 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 ier;.protected.$repoDir;.protect
40460 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 ed.$infoCache.=.array();.....pub
40480 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 69 66 20 28 lic.function.initialize().{.if.(
404a0 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 74 68 69 73 2d 3e 75 Filesystem::isLocalPath($this->u
404c0 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 75 rl)).{.$this->repoDir.=.$this->u
404e0 72 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 74 68 69 73 2d 3e rl;.}.else.{.$cacheDir.=.$this->
40500 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 3b 0a 24 74 config->get('cache-vcs-dir');.$t
40520 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 63 61 63 68 65 44 69 72 20 2e 20 27 2f 27 20 2e his->repoDir.=.$cacheDir...'/'..
40540 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 5d 7d 69 27 2c 20 27 2d .preg_replace('{[^a-z0-9]}i',.'-
40560 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 ',.$this->url)...'/';..$fs.=.new
40580 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 74 .Filesystem();.$fs->ensureDirect
405a0 6f 72 79 45 78 69 73 74 73 28 24 63 61 63 68 65 44 69 72 29 3b 0a 0a 69 66 20 28 21 69 73 5f 77 oryExists($cacheDir);..if.(!is_w
405c0 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 ritable(dirname($this->repoDir))
405e0 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(
40600 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 'Can.not.clone.'.$this->url.'.to
40620 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 .access.package.information..The
40640 20 22 27 2e 24 63 61 63 68 65 44 69 72 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f ."'.$cacheDir.'".directory.is.no
40660 74 20 77 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 t.writable.by.the.current.user.'
40680 29 3b 0a 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 );.}....if.(is_dir($this->repoDi
406a0 72 29 20 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 r).&&.0.===.$this->process->exec
406c0 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 ute('hg.summary',.$output,.$this
406e0 2d 3e 72 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 ->repoDir)).{.if.(0.!==.$this->p
40700 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 70 75 6c 6c 27 2c 20 24 6f 75 74 70 rocess->execute('hg.pull',.$outp
40720 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f ut,.$this->repoDir)).{.$this->io
40740 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 ->writeError('<error>Failed.to.u
40760 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e pdate.'.$this->url.',.package.in
40780 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d formation.from.this.repository.m
407a0 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ay.be.outdated.('.$this->process
407c0 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b ->getErrorOutput().')</error>');
407e0 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f .}.}.else.{...$fs->removeDirecto
40800 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 ry($this->repoDir);..if.(0.!==.$
40820 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 this->process->execute(sprintf('
40840 68 67 20 63 6c 6f 6e 65 20 2d 2d 6e 6f 75 70 64 61 74 65 20 25 73 20 25 73 27 2c 20 50 72 6f 63 hg.clone.--noupdate.%s.%s',.Proc
40860 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c essExecutor::escape($this->url),
40880 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e .ProcessExecutor::escape($this->
408a0 72 65 70 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 repoDir)),.$output,.$cacheDir)).
408c0 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 {.$output.=.$this->process->getE
408e0 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e rrorOutput();..if.(0.!==.$this->
40900 70 72 6f 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 process->execute('hg.--version',
40920 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 .$ignoredOutput)).{.throw.new.\R
40940 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 untimeException('Failed.to.clone
40960 20 27 2e 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 .'.$this->url.',.hg.was.not.foun
40980 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e d,.check.that.it.is.installed.an
409a0 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 d.in.your.PATH.env.'..."\n\n"...
409c0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 $this->process->getErrorOutput()
409e0 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f );.}..throw.new.\RuntimeExceptio
40a00 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e n('Failed.to.clone.'.$this->url.
40a20 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 ',.could.not.read.packages.from.
40a40 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 it'..."\n\n"..$output);.}.}.}..$
40a60 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 this->getTags();.$this->getBranc
40a80 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 hes();.}.....public.function.get
40aa0 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 RootIdentifier().{.if.(null.===.
40ac0 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e $this->rootIdentifier).{.$this->
40ae0 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 20 74 69 70 process->execute(sprintf('hg.tip
40b00 20 2d 2d 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 .--template."{node}"'),.$output,
40b20 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 .$this->repoDir);.$output.=.$thi
40b40 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b s->process->splitLines($output);
40b60 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 6f 75 74 70 75 74 .$this->rootIdentifier.=.$output
40b80 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 [0];.}..return.$this->rootIdenti
40ba0 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 fier;.}.....public.function.getU
40bc0 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a rl().{.return.$this->url;.}.....
40be0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 public.function.getSource($ident
40c00 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 ifier).{.return.array('type'.=>.
40c20 27 68 67 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 'hg',.'url'.=>.$this->getUrl(),.
40c40 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 'reference'.=>.$identifier);.}..
40c60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e ...public.function.getDist($iden
40c80 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 tifier).{.return.null;.}.....pub
40ca0 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 74 lic.function.getComposerInformat
40cc0 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 ion($identifier).{.if.(!isset($t
40ce0 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 0a his->infoCache[$identifier])).{.
40d00 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 $this->process->execute(sprintf(
40d20 27 68 67 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 50 72 'hg.cat.-r.%s.composer.json',.Pr
40d40 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 69 64 65 6e 74 69 66 69 65 ocessExecutor::escape($identifie
40d60 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b r)),.$composer,.$this->repoDir);
40d80 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e ..if.(!trim($composer)).{.return
40da0 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 65 ;.}..$composer.=.JsonFile::parse
40dc0 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 69 Json($composer,.$identifier);..i
40de0 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 f.(empty($composer['time'])).{.$
40e00 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 this->process->execute(sprintf('
40e20 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 72 66 63 33 33 33 39 hg.log.--template."{date|rfc3339
40e40 64 61 74 65 7d 22 20 2d 72 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a date}".-r.%s',.ProcessExecutor::
40e60 65 73 63 61 70 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 escape($identifier)),.$output,.$
40e80 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 this->repoDir);.$date.=.new.\Dat
40ea0 65 54 69 6d 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 eTime(trim($output),.new.\DateTi
40ec0 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 meZone('UTC'));.$composer['time'
40ee0 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 ].=.$date->format('Y-m-d.H:i:s')
40f00 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 ;.}.$this->infoCache[$identifier
40f20 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ].=.$composer;.}..return.$this->
40f40 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 infoCache[$identifier];.}.....pu
40f60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 blic.function.getTags().{.if.(nu
40f80 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 61 67 73 20 3d 20 61 72 ll.===.$this->tags).{.$tags.=.ar
40fa0 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 ray();..$this->process->execute(
40fc0 27 68 67 20 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 'hg.tags',.$output,.$this->repoD
40fe0 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 ir);.foreach.($this->process->sp
41000 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 20 litLines($output).as.$tag).{.if.
41020 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c ($tag.&&.preg_match('(^([^\s]+)\
41040 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 74 61 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a s+\d+:(.*)$)',.$tag,.$match)).{.
41060 24 74 61 67 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a $tags[$match[1]].=.$match[2];.}.
41080 7d 0a 75 6e 73 65 74 28 24 74 61 67 73 5b 27 74 69 70 27 5d 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 }.unset($tags['tip']);..$this->t
410a0 61 67 73 20 3d 20 24 74 61 67 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 ags.=.$tags;.}..return.$this->ta
410c0 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 72 61 gs;.}.....public.function.getBra
410e0 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 62 72 nches().{.if.(null.===.$this->br
41100 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 anches).{.$branches.=.array();.$
41120 62 6f 6f 6b 6d 61 72 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f bookmarks.=.array();..$this->pro
41140 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 65 73 27 2c 20 24 6f 75 cess->execute('hg.branches',.$ou
41160 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 tput,.$this->repoDir);.foreach.(
41180 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 $this->process->splitLines($outp
411a0 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 ut).as.$branch).{.if.($branch.&&
411c0 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 5b .preg_match('(^([^\s]+)\s+\d+:([
411e0 61 2d 66 30 2d 39 5d 2b 29 29 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b a-f0-9]+))',.$branch,.$match)).{
41200 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
41220 5d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 ];.}.}..$this->process->execute(
41240 27 68 67 20 62 6f 6f 6b 6d 61 72 6b 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 'hg.bookmarks',.$output,.$this->
41260 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 repoDir);.foreach.($this->proces
41280 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 s->splitLines($output).as.$branc
412a0 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 h).{.if.($branch.&&.preg_match('
412c0 28 5e 28 3f 3a 5b 5c 73 2a 5d 2a 29 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 (^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$
412e0 29 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 6f 6f 6b 6d 61 72 )',.$branch,.$match)).{.$bookmar
41300 6b 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a ks[$match[1]].=.$match[2];.}.}..
41320 0a 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 ..$this->branches.=.array_merge(
41340 24 62 6f 6f 6b 6d 61 72 6b 73 2c 20 24 62 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 $bookmarks,.$branches);.}..retur
41360 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.$this->branches;.}.....public.
41380 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 static.function.supports(IOInter
413a0 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 2c 20 face.$io,.Config.$config,.$url,.
413c0 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 $deep.=.false).{.if.(preg_match(
413e0 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 29 3a 2f 2f 28 3f 3a 5b 5e 40 5d 40 29 3f 62 '#(^(?:https?|ssh)://(?:[^@]@)?b
41400 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 73 3a 2f 2f 28 3f 3a 2e 2a 3f 29 5c 2e 6b 69 itbucket.org|https://(?:.*?)\.ki
41420 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 lnhg.com)#i',.$url)).{.return.tr
41440 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c ue;.}....if.(Filesystem::isLocal
41460 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 24 75 72 6c 20 3d 20 46 69 6c 65 73 79 73 74 65 6d 3a Path($url)).{.$url.=.Filesystem:
41480 3a 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 24 75 72 6c 29 3b 0a 69 66 20 28 21 69 73 5f :getPlatformPath($url);.if.(!is_
414a0 64 69 72 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 dir($url)).{.return.false;.}..$p
414c0 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();.
414e0 0a 20 69 66 20 28 24 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 ..if.($process->execute('hg.summ
41500 61 72 79 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 ary',.$output,.$url).===.0).{.re
41520 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 turn.true;.}.}..if.(!$deep).{.re
41540 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 turn.false;.}..$processExecutor.
41560 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d =.new.ProcessExecutor();.$exit.=
41580 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e .$processExecutor->execute(sprin
415a0 74 66 28 27 68 67 20 69 64 65 6e 74 69 66 79 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 tf('hg.identify.%s',.ProcessExec
415c0 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 29 2c 20 24 69 67 6e 6f 72 65 64 29 3b 0a utor::escape($url)),.$ignored);.
415e0 0a 72 65 74 75 72 6e 20 24 65 78 69 74 20 3d 3d 3d 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .return.$exit.===.0;.}.}.<?php..
41600 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
41620 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 44 6f 77 6e 6c ository\Vcs;..use.Composer\Downl
41640 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 75 73 65 20 43 6f oader\TransportException;.use.Co
41660 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 mposer\Config;.use.Composer\IO\I
41680 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 50 72 OInterface;.use.Composer\Util\Pr
416a0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c ocessExecutor;.use.Composer\Util
416c0 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \RemoteFilesystem;.use.Composer\
416e0 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 Util\Filesystem;.......abstract.
41700 63 6c 61 73 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 73 44 72 class.VcsDriver.implements.VcsDr
41720 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 75 72 6c 3b 0a iverInterface.{.protected.$url;.
41740 70 72 6f 74 65 63 74 65 64 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 protected.$originUrl;.protected.
41760 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 $repoConfig;.protected.$io;.prot
41780 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 ected.$config;.protected.$proces
417a0 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a s;.protected.$remoteFilesystem;.
417c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ..........final.public.function.
417e0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 __construct(array.$repoConfig,.I
41800 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,.
41820 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 2c ProcessExecutor.$process.=.null,
41840 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 .RemoteFilesystem.$remoteFilesys
41860 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 tem.=.null).{.if.(Filesystem::is
41880 4c 6f 63 61 6c 50 61 74 68 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b LocalPath($repoConfig['url'])).{
418a0 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 46 69 6c 65 73 79 73 74 65 6d .$repoConfig['url'].=.Filesystem
418c0 3a 3a 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 ::getPlatformPath($repoConfig['u
418e0 72 6c 27 5d 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 rl']);.}..$this->url.=.$repoConf
41900 69 67 5b 27 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 ig['url'];.$this->originUrl.=.$r
41920 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e epoConfig['url'];.$this->repoCon
41940 66 69 67 20 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 fig.=.$repoConfig;.$this->io.=.$
41960 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 io;.$this->config.=.$config;.$th
41980 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 65 77 20 50 72 is->process.=.$process.?:.new.Pr
419a0 6f 63 65 73 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 ocessExecutor($io);.$this->remot
419c0 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 eFilesystem.=.$remoteFilesystem.
419e0 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 2c 20 24 63 6f ?:.new.RemoteFilesystem($io,.$co
41a00 6e 66 69 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 68 61 73 nfig);.}.....public.function.has
41a20 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 74 72 79 20 ComposerFile($identifier).{.try.
41a40 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 {.return.(bool).$this->getCompos
41a60 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 20 63 61 erInformation($identifier);.}.ca
41a80 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 7d 0a tch.(TransportException.$e).{.}.
41aa0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 .return.false;.}.........protect
41ac0 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 68 65 6d 65 28 29 0a 7b 0a 69 66 20 28 65 78 ed.function.getScheme().{.if.(ex
41ae0 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 72 65 74 tension_loaded('openssl')).{.ret
41b00 75 72 6e 20 27 68 74 74 70 73 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 27 3b 0a 7d urn.'https';.}..return.'http';.}
41b20 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 65 74 43 .........protected.function.getC
41b40 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 ontents($url).{.return.$this->re
41b60 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 moteFilesystem->getContents($thi
41b80 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a s->originUrl,.$url,.false);.}...
41ba0 0a 0a 70 75 62 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 72 65 ..public.function.cleanup().{.re
41bc0 74 75 72 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 6d 65 73 turn;.}.}.<?php............names
41be0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 pace.Composer\Repository\Vcs;..u
41c00 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
41c20 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 5c \Json\JsonFile;.use.Composer\IO\
41c40 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 42 69 74 62 75 63 6b IOInterface;.....class.HgBitbuck
41c60 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f etDriver.extends.VcsDriver.{.pro
41c80 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 tected.$owner;.protected.$reposi
41ca0 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 tory;.protected.$tags;.protected
41cc0 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 .$branches;.protected.$rootIdent
41ce0 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 ifier;.protected.$infoCache.=.ar
41d00 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 69 6e 69 74 69 ray();.....public.function.initi
41d20 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f alize().{.preg_match('#^https?:/
41d40 2f 62 69 74 62 75 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 /bitbucket\.org/([^/]+)/([^/]+)/
41d60 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 ?$#',.$this->url,.$match);.$this
41d80 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f ->owner.=.$match[1];.$this->repo
41da0 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 sitory.=.$match[2];.$this->origi
41dc0 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 nUrl.=.'bitbucket.org';.}.....pu
41de0 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 74 69 66 69 65 72 28 blic.function.getRootIdentifier(
41e00 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e ).{.if.(null.===.$this->rootIden
41e20 74 69 66 69 65 72 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 tifier).{.$resource.=.$this->get
41e40 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 Scheme()...'://bitbucket.org/api
41e60 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 65 72 /1.0/repositories/'.$this->owner
41e80 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 74 61 67 73 27 3b 0a .'/'.$this->repository.'/tags';.
41ea0 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 $repoData.=.JsonFile::parseJson(
41ec0 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 $this->getContents($resource),.$
41ee0 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 72 65 70 6f resource);.if.(array().===.$repo
41f00 44 61 74 61 20 7c 7c 20 21 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 29 Data.||.!isset($repoData['tip'])
41f20 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(
41f40 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 $this->url.'.does.not.appear.to.
41f60 62 65 20 61 20 6d 65 72 63 75 72 69 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 75 73 65 20 27 be.a.mercurial.repository,.use.'
41f80 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2e 67 69 74 20 69 66 20 74 68 69 73 20 69 73 20 61 20 67 .$this->url.'.git.if.this.is.a.g
41fa0 69 74 20 62 69 74 62 75 63 6b 65 74 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 it.bitbucket.repository');.}.$th
41fc0 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 5b 27 is->rootIdentifier.=.$repoData['
41fe0 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 tip']['raw_node'];.}..return.$th
42000 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 is->rootIdentifier;.}.....public
42020 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .function.getUrl().{.return.$thi
42040 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 s->url;.}.....public.function.ge
42060 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 75 72 6e 20 61 72 tSource($identifier).{.return.ar
42080 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 ray('type'.=>.'hg',.'url'.=>.$th
420a0 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 is->getUrl(),.'reference'.=>.$id
420c0 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 75 6e 63 74 69 6f 6e entifier);.}.....public.function
420e0 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 75 72 6c 20 3d 20 24 .getDist($identifier).{.$url.=.$
42100 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
42120 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e t.org/'.$this->owner.'/'.$this->
42140 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 69 66 69 65 72 2e 27 repository.'/get/'.$identifier.'
42160 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 65 27 20 3d 3e 20 27 .zip';..return.array('type'.=>.'
42180 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 65 72 65 6e 63 65 27 zip',.'url'.=>.$url,.'reference'
421a0 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 20 3d 3e 20 27 27 29 .=>.$identifier,.'shasum'.=>.'')
421c0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f ;.}.....public.function.getCompo
421e0 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 serInformation($identifier).{.if
42200 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 .(!isset($this->infoCache[$ident
42220 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 ifier])).{.$resource.=.$this->ge
42240 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 tScheme()...'://bitbucket.org/ap
42260 69 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 65 i/1.0/repositories/'.$this->owne
42280 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 73 72 63 2f 27 2e r.'/'.$this->repository.'/src/'.
422a0 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 72 $identifier.'/composer.json';.$r
422c0 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 epoData.=.JsonFile::parseJson($t
422e0 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 65 his->getContents($resource),.$re
42300 73 6f 75 72 63 65 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 source);..........if.(!array_key
42320 5f 65 78 69 73 74 73 28 27 64 61 74 61 27 2c 20 24 72 65 70 6f 44 61 74 61 29 29 20 7b 0a 72 65 _exists('data',.$repoData)).{.re
42340 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 turn;.}..$composer.=.JsonFile::p
42360 61 72 73 65 4a 73 6f 6e 28 24 72 65 70 6f 44 61 74 61 5b 27 64 61 74 61 27 5d 2c 20 24 72 65 73 arseJson($repoData['data'],.$res
42380 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 ource);..if.(empty($composer['ti
423a0 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 me'])).{.$resource.=.$this->getS
423c0 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/
423e0 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.
42400 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 '/'.$this->repository.'/changese
42420 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a ts/'.$identifier;.$changeset.=.J
42440 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e sonFile::parseJson($this->getCon
42460 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 tents($resource),.$resource);.$c
42480 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 65 74 5b 27 74 69 omposer['time'].=.$changeset['ti
424a0 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 mestamp'];.}.$this->infoCache[$i
424c0 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 74 75 72 dentifier].=.$composer;.}..retur
424e0 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 72 5d 3b n.$this->infoCache[$identifier];
42500 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 73 28 29 .}.....public.function.getTags()
42520 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 7b 0a 24 .{.if.(null.===.$this->tags).{.$
42540 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 20 resource.=.$this->getScheme()...
42560 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 '://bitbucket.org/api/1.0/reposi
42580 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 2d tories/'.$this->owner.'/'.$this-
425a0 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 20 3d >repository.'/tags';.$tagsData.=
425c0 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 74 43 .JsonFile::parseJson($this->getC
425e0 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 3b 0a ontents($resource),.$resource);.
42600 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 20 28 $this->tags.=.array();.foreach.(
42620 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 $tagsData.as.$tag.=>.$data).{.$t
42640 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 his->tags[$tag].=.$data['raw_nod
42660 65 27 5d 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 74 61 67 73 5b 27 74 69 70 27 5d 29 e'];.}.unset($this->tags['tip'])
42680 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 ;.}..return.$this->tags;.}.....p
426a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 ublic.function.getBranches().{.i
426c0 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 f.(null.===.$this->branches).{.$
426e0 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 20 resource.=.$this->getScheme()...
42700 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 '://bitbucket.org/api/1.0/reposi
42720 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 2d tories/'.$this->owner.'/'.$this-
42740 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 >repository.'/branches';.$branch
42760 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 69 73 Data.=.JsonFile::parseJson($this
42780 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
427a0 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b rce);.$this->branches.=.array();
427c0 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 .foreach.($branchData.as.$branch
427e0 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 .=>.$data).{.$this->branches[$br
42800 61 6e 63 68 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a anch].=.$data['raw_node'];.}.}..
42820 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 return.$this->branches;.}.....pu
42840 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f blic.static.function.supports(IO
42860 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 24 Interface.$io,.Config.$config,.$
42880 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 28 21 70 72 65 67 5f url,.$deep.=.false).{.if.(!preg_
428a0 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 match('#^https?://bitbucket\.org
428c0 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a /([^/]+)/([^/]+)/?$#',.$url)).{.
428e0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f return.false;.}..if.(!extension_
42900 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 loaded('openssl')).{.if.($io->is
42920 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 53 6b Verbose()).{.$io->writeError('Sk
42940 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 68 67 20 64 72 69 76 65 72 20 66 6f 72 20 27 ipping.Bitbucket.hg.driver.for.'
42960 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 .$url.'.because.the.OpenSSL.PHP.
42980 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 extension.is.missing.');.}..retu
429a0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f rn.false;.}..return.true;.}.}.<?
429c0 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
429e0 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 r\Repository;.........class.Inst
42a00 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 alledArrayRepository.extends.Wri
42a20 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 6e 74 73 20 tableArrayRepository.implements.
42a40 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 0a 7b 0a 7d InstalledRepositoryInterface.{.}
42a60 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
42a80 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 20 52 65 70 oser\Repository;.......class.Rep
42aa0 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 65 6e 64 73 ositorySecurityException.extends
42ac0 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 0a 0a 0a 0a .\Exception.{.}.<?php...........
42ae0 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;.
42b00 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
42b20 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 rtException;.use.Composer\Reposi
42b40 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 tory\Vcs\VcsDriverInterface;.use
42b60 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f .Composer\Package\Version\Versio
42b80 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f nParser;.use.Composer\Package\Lo
42ba0 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ader\ArrayLoader;.use.Composer\P
42bc0 61 63 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 ackage\Loader\ValidatingArrayLoa
42be0 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 72 der;.use.Composer\Package\Loader
42c00 5c 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f \InvalidPackageException;.use.Co
42c20 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 4c 6f 61 64 65 72 49 6e 74 65 mposer\Package\Loader\LoaderInte
42c40 72 66 61 63 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 63 rface;.use.Composer\EventDispatc
42c60 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 65 her\EventDispatcher;.use.Compose
42c80 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 43 r\IO\IOInterface;.use.Composer\C
42ca0 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 63 73 52 65 70 6f 73 69 74 6f 72 79 20 65 onfig;.....class.VcsRepository.e
42cc0 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 6f 74 65 63 74 xtends.ArrayRepository.{.protect
42ce0 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b ed.$url;.protected.$packageName;
42d00 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 .protected.$verbose;.protected.$
42d20 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 64 io;.protected.$config;.protected
42d40 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 74 79 70 65 .$versionParser;.protected.$type
42d60 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ;.protected.$loader;.protected.$
42d80 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 45 72 72 repoConfig;.protected.$branchErr
42da0 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 orOccurred.=.false;..public.func
42dc0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 tion.__construct(array.$repoConf
42de0 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e ig,.IOInterface.$io,.Config.$con
42e00 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 68 65 72 fig,.EventDispatcher.$dispatcher
42e20 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 64 72 69 76 65 72 73 20 3d 20 6e 75 6c 6c 29 0a .=.null,.array.$drivers.=.null).
42e40 7b 0a 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 3d 20 24 64 72 69 76 65 72 73 20 3f 3a 20 61 {.$this->drivers.=.$drivers.?:.a
42e60 72 72 61 79 28 0a 27 67 69 74 68 75 62 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f rray(.'github'.=>.'Composer\Repo
42e80 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 48 75 62 44 72 69 76 65 72 27 2c 0a 27 67 69 74 2d 62 sitory\Vcs\GitHubDriver',.'git-b
42ea0 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 itbucket'.=>.'Composer\Repositor
42ec0 79 5c 56 63 73 5c 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 67 69 74 27 y\Vcs\GitBitbucketDriver',.'git'
42ee0 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 .=>.'Composer\Repository\Vcs\Git
42f00 44 72 69 76 65 72 27 2c 0a 27 68 67 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 Driver',.'hg-bitbucket'.=>.'Comp
42f20 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 42 69 74 62 75 63 6b 65 74 44 oser\Repository\Vcs\HgBitbucketD
42f40 72 69 76 65 72 27 2c 0a 27 68 67 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 river',.'hg'.=>.'Composer\Reposi
42f60 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 27 2c 0a 27 70 65 72 66 6f 72 63 65 27 20 3d tory\Vcs\HgDriver',.'perforce'.=
42f80 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 50 65 72 66 6f >.'Composer\Repository\Vcs\Perfo
42fa0 72 63 65 44 72 69 76 65 72 27 2c 0a 0a 20 27 73 76 6e 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 rceDriver',...'svn'.=>.'Composer
42fc0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 53 76 6e 44 72 69 76 65 72 27 2c 0a 29 3b 0a 0a \Repository\Vcs\SvnDriver',.);..
42fe0 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b $this->url.=.$repoConfig['url'];
43000 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 20 .$this->io.=.$io;.$this->type.=.
43020 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 72 65 isset($repoConfig['type']).?.$re
43040 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 20 3a 20 27 76 63 73 27 3b 0a 24 74 68 69 73 2d poConfig['type'].:.'vcs';.$this-
43060 3e 76 65 72 62 6f 73 65 20 3d 20 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 3b 0a 24 74 68 >verbose.=.$io->isVerbose();.$th
43080 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 72 65 70 is->config.=.$config;.$this->rep
430a0 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 oConfig.=.$repoConfig;.}..public
430c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 .function.getRepoConfig().{.retu
430e0 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 rn.$this->repoConfig;.}..public.
43100 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 61 64 65 72 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 function.setLoader(LoaderInterfa
43120 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c ce.$loader).{.$this->loader.=.$l
43140 6f 61 64 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 72 69 oader;.}..public.function.getDri
43160 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 ver().{.if.(isset($this->drivers
43180 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 29 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 [$this->type])).{.$class.=.$this
431a0 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 3b 0a 24 64 72 69 76 65 72 20 ->drivers[$this->type];.$driver.
431c0 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 =.new.$class($this->repoConfig,.
431e0 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 $this->io,.$this->config);.$driv
43200 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 er->initialize();..return.$drive
43220 72 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 61 73 r;.}..foreach.($this->drivers.as
43240 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 3a 3a 73 75 70 70 6f 72 74 .$driver).{.if.($driver::support
43260 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 s($this->io,.$this->config,.$thi
43280 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 69 76 65 72 s->url)).{.$driver.=.new.$driver
432a0 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 ($this->repoConfig,.$this->io,.$
432c0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 this->config);.$driver->initiali
432e0 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 0a 66 6f 72 65 ze();..return.$driver;.}.}..fore
43300 61 63 68 20 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 ach.($this->drivers.as.$driver).
43320 7b 0a 69 66 20 28 24 64 72 69 76 65 72 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 {.if.($driver::supports($this->i
43340 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 75 72 6c 2c 20 74 72 o,.$this->config,.$this->url,.tr
43360 75 65 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 69 76 65 72 28 24 74 68 ue)).{.$driver.=.new.$driver($th
43380 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 is->repoConfig,.$this->io,.$this
433a0 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 ->config);.$driver->initialize()
433c0 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 ;..return.$driver;.}.}.}..public
433e0 20 66 75 6e 63 74 69 6f 6e 20 68 61 64 49 6e 76 61 6c 69 64 42 72 61 6e 63 68 65 73 28 29 0a 7b .function.hadInvalidBranches().{
43400 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 .return.$this->branchErrorOccurr
43420 65 64 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 ed;.}..protected.function.initia
43440 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 3b 0a 0a lize().{.parent::initialize();..
43460 24 76 65 72 62 6f 73 65 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 3b 0a 0a 24 64 72 69 $verbose.=.$this->verbose;..$dri
43480 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 72 69 76 65 72 28 29 3b 0a 69 66 20 28 21 24 ver.=.$this->getDriver();.if.(!$
434a0 64 72 69 76 65 72 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 driver).{.throw.new.\InvalidArgu
434c0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 64 72 69 76 65 72 20 66 6f 75 6e 64 20 74 mentException('No.driver.found.t
434e0 6f 20 68 61 6e 64 6c 65 20 56 43 53 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d o.handle.VCS.repository.'.$this-
43500 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d >url);.}..$this->versionParser.=
43520 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e .new.VersionParser;.if.(!$this->
43540 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 loader).{.$this->loader.=.new.Ar
43560 72 61 79 4c 6f 61 64 65 72 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b rayLoader($this->versionParser);
43580 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 2d 3e 68 61 73 43 6f 6d 70 6f 73 .}..try.{.if.($driver->hasCompos
435a0 65 72 46 69 6c 65 28 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 erFile($driver->getRootIdentifie
435c0 72 28 29 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 r())).{.$data.=.$driver->getComp
435e0 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 oserInformation($driver->getRoot
43600 49 64 65 6e 74 69 66 69 65 72 28 29 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d Identifier());.$this->packageNam
43620 65 20 3d 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 64 61 74 e.=.!empty($data['name']).?.$dat
43640 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 a['name'].:.null;.}.}.catch.(\Ex
43660 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 74 ception.$e).{.if.($verbose).{.$t
43680 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 53 6b 69 70 his->io->writeError('<error>Skip
436a0 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 74 49 64 ped.parsing.'.$driver->getRootId
436c0 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 65 28 29 entifier().',.'.$e->getMessage()
436e0 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 64 72 69 .'</error>');.}.}..foreach.($dri
43700 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 65 6e 74 ver->getTags().as.$tag.=>.$ident
43720 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 ifier).{.$msg.=.'Reading.compose
43740 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 61 63 6b r.json.of.<info>'...($this->pack
43760 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 6e 66 6f ageName.?:.$this->url)...'</info
43780 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 6d 65 6e >.(<comment>'...$tag...'</commen
437a0 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 69 6f 2d t>)';.if.($verbose).{.$this->io-
437c0 3e 77 72 69 74 65 45 72 72 6f 72 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 >writeError($msg);.}.else.{.$thi
437e0 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 6d 73 67 2c 20 66 61 6c 73 s->io->overwriteError($msg,.fals
43800 65 29 3b 0a 7d 0a 0a 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 e);.}....$tag.=.str_replace('rel
43820 65 61 73 65 2d 27 2c 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 ease-',.'',.$tag);..if.(!$parsed
43840 54 61 67 20 3d 20 24 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 Tag.=.$this->validateTag($tag)).
43860 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 {.if.($verbose).{.$this->io->wri
43880 74 65 45 72 72 6f 72 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 teError('<warning>Skipped.tag.'.
438a0 24 74 61 67 2e 27 2c 20 69 6e 76 61 6c 69 64 20 74 61 67 20 6e 61 6d 65 3c 2f 77 61 72 6e 69 6e $tag.',.invalid.tag.name</warnin
438c0 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 28 21 g>');.}.continue;.}..try.{.if.(!
438e0 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f $data.=.$driver->getComposerInfo
43900 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 rmation($identifier)).{.if.($ver
43920 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c bose).{.$this->io->writeError('<
43940 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 20 6e 6f warning>Skipped.tag.'.$tag.',.no
43960 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 0a 63 6f .composer.file</warning>');.}.co
43980 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 76 65 ntinue;.}....if.(isset($data['ve
439a0 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 rsion'])).{.$data['version_norma
439c0 6c 69 7a 65 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e lized'].=.$this->versionParser->
439e0 6e 6f 72 6d 61 6c 69 7a 65 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 65 normalize($data['version']);.}.e
43a00 6c 73 65 20 7b 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 74 61 67 3b lse.{...$data['version'].=.$tag;
43a20 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 3d 20 24 .$data['version_normalized'].=.$
43a40 70 61 72 73 65 64 54 61 67 3b 0a 7d 0a 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d parsedTag;.}....$data['version']
43a60 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 .=.preg_replace('{[.-]?dev$}i',.
43a80 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 64 61 74 61 5b 27 76 65 '',.$data['version']);.$data['ve
43aa0 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 rsion_normalized'].=.preg_replac
43ac0 65 28 27 7b 28 5e 64 65 76 2d 7c 5b 2e 2d 5d 3f 64 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 64 e('{(^dev-|[.-]?dev$)}i',.'',.$d
43ae0 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 69 ata['version_normalized']);....i
43b00 66 20 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 21 f.($data['version_normalized'].!
43b20 3d 3d 20 24 70 61 72 73 65 64 54 61 67 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b ==.$parsedTag).{.if.($verbose).{
43b40 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 .$this->io->writeError('<warning
43b60 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 74 61 67 20 28 27 2e 24 70 >Skipped.tag.'.$tag.',.tag.('.$p
43b80 61 72 73 65 64 54 61 67 2e 27 29 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 76 65 72 73 69 arsedTag.').does.not.match.versi
43ba0 6f 6e 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 on.('.$data['version_normalized'
43bc0 5d 2e 27 29 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3c 2f 77 61 72 6e 69 6e 67 3e 27 ].').in.composer.json</warning>'
43be0 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 );.}.continue;.}..if.($verbose).
43c00 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 49 6d 70 6f 72 74 69 {.$this->io->writeError('Importi
43c20 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 65 72 73 69 6f ng.tag.'.$tag.'.('.$data['versio
43c40 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 69 73 2d 3e 61 n_normalized'].')');.}..$this->a
43c60 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 ddPackage($this->loader->load($t
43c80 68 69 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 his->preProcess($driver,.$data,.
43ca0 24 69 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 $identifier)));.}.catch.(\Except
43cc0 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d ion.$e).{.if.($verbose).{.$this-
43ce0 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 >io->writeError('<warning>Skippe
43d00 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
43d20 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
43d40 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
43d60 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
43d80 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
43da0 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a o->overwriteError('',.false);.}.
43dc0 0a 66 6f 72 65 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 .foreach.($driver->getBranches()
43de0 20 61 73 20 24 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 .as.$branch.=>.$identifier).{.$m
43e00 73 67 20 3d 20 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 sg.=.'Reading.composer.json.of.<
43e20 69 6e 66 6f 3e 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 info>'...($this->packageName.?:.
43e40 24 74 68 69 73 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 $this->url)...'</info>.(<comment
43e60 3e 27 20 2e 20 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 >'...$branch...'</comment>)';.if
43e80 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 45 72 .($verbose).{.$this->io->writeEr
43ea0 72 6f 72 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f ror($msg);.}.else.{.$this->io->o
43ec0 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 verwriteError($msg,.false);.}..i
43ee0 66 20 28 21 24 70 61 72 73 65 64 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 f.(!$parsedBranch.=.$this->valid
43f00 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f ateBranch($branch)).{.if.($verbo
43f20 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 se).{.$this->io->writeError('<wa
43f40 72 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 rning>Skipped.branch.'.$branch.'
43f60 2c 20 69 6e 76 61 6c 69 64 20 6e 61 6d 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f ,.invalid.name</warning>');.}.co
43f80 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 64 61 74 61 20 3d 20 24 64 ntinue;.}..try.{.if.(!$data.=.$d
43fa0 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 river->getComposerInformation($i
43fc0 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 dentifier)).{.if.($verbose).{.$t
43fe0 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b his->io->writeError('<warning>Sk
44000 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 20 63 6f 6d ipped.branch.'.$branch.',.no.com
44020 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 0a 63 6f 6e 74 69 6e poser.file</warning>');.}.contin
44040 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 20 3d 20 24 62 72 61 ue;.}....$data['version'].=.$bra
44060 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 6c 69 7a 65 64 27 5d nch;.$data['version_normalized']
44080 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 27 64 65 76 2d 27 20 .=.$parsedBranch;....if.('dev-'.
440a0 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 20 30 2c 20 34 29 20 ===.substr($parsedBranch,.0,.4).
440c0 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 73 65 64 42 72 61 6e ||.'9999999-dev'.===.$parsedBran
440e0 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 27 64 65 76 2d 27 20 ch).{.$data['version'].=.'dev-'.
44100 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 65 20 7b 0a 24 64 61 ..$data['version'];.}.else.{.$da
44120 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 7b 28 ta['version'].=.preg_replace('{(
44140 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 42 72 61 6e 63 68 29 \.9{7})+}',.'.x',.$parsedBranch)
44160 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 73 2d 3e 69 6f 2d 3e ;.}..if.($verbose).{.$this->io->
44180 77 72 69 74 65 45 72 72 6f 72 28 27 49 6d 70 6f 72 74 69 6e 67 20 62 72 61 6e 63 68 20 27 2e 24 writeError('Importing.branch.'.$
441a0 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 29 27 branch.'.('.$data['version'].')'
441c0 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 65 50 );.}..$packageData.=.$this->preP
441e0 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 rocess($driver,.$data,.$identifi
44200 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 3e 6c er);.$package.=.$this->loader->l
44220 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 6c 6f oad($packageData);.if.($this->lo
44240 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 79 4c ader.instanceof.ValidatingArrayL
44260 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 6e 69 oader.&&.$this->loader->getWarni
44280 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 61 67 ngs()).{.throw.new.InvalidPackag
442a0 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 72 72 eException($this->loader->getErr
442c0 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 6e 67 ors(),.$this->loader->getWarning
442e0 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 64 64 s(),.$packageData);.}.$this->add
44300 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 61 6e Package($package);.}.catch.(Tran
44320 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 6f 73 sportException.$e).{.if.($verbos
44340 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 e).{.$this->io->writeError('<war
44360 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.',
44380 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 3c 2f 77 61 72 .no.composer.file.was.found</war
443a0 6e 69 6e 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 ning>');.}.continue;.}.catch.(\E
443c0 78 63 65 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 xception.$e).{.if.(!$verbose).{.
443e0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 24 74 68 $this->io->writeError('');.}.$th
44400 69 73 2d 3e 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 74 72 75 65 3b 0a is->branchErrorOccurred.=.true;.
44420 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 53 6b $this->io->writeError('<error>Sk
44440 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 27 2e 24 65 2d 3e ipped.branch.'.$branch.',.'.$e->
44460 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 24 74 68 69 73 2d getMessage().'</error>');.$this-
44480 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d >io->writeError('');.continue;.}
444a0 0a 7d 0a 24 64 72 69 76 65 72 2d 3e 63 6c 65 61 6e 75 70 28 29 3b 0a 0a 69 66 20 28 21 24 76 65 .}.$driver->cleanup();..if.(!$ve
444c0 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 rbose).{.$this->io->overwriteErr
444e0 6f 72 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 67 65 or('',.false);.}..if.(!$this->ge
44500 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 tPackages()).{.throw.new.Invalid
44520 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 76 61 6c 69 64 20 63 6f RepositoryException('No.valid.co
44540 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 77 61 73 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 62 72 61 mposer.json.was.found.in.any.bra
44560 6e 63 68 20 6f 72 20 74 61 67 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f nch.or.tag.of.'.$this->url.',.co
44580 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 69 74 2e 27 uld.not.load.a.package.from.it.'
445a0 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 70 72 65 50 72 );.}.}..protected.function.prePr
445c0 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 24 64 72 69 76 65 72 ocess(VcsDriverInterface.$driver
445e0 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 72 29 0a 7b 0a 0a 20 ,.array.$data,.$identifier).{...
44600 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 63 6b 61 67 65 4e 61 $data['name'].=.$this->packageNa
44620 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 28 21 69 73 73 65 74 me.?:.$data['name'];..if.(!isset
44640 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 27 64 69 73 74 27 5d ($data['dist'])).{.$data['dist']
44660 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 74 69 66 69 65 72 29 .=.$driver->getDist($identifier)
44680 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 72 63 65 27 5d 29 29 ;.}.if.(!isset($data['source']))
446a0 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 76 65 72 2d 3e 67 65 .{.$data['source'].=.$driver->ge
446c0 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 72 65 74 75 72 6e 20 tSource($identifier);.}..return.
446e0 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 6e 20 76 61 6c 69 64 $data;.}..private.function.valid
44700 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 7b 0a 72 65 74 75 72 ateBranch($branch).{.try.{.retur
44720 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 6f 72 6d 61 6c 69 7a n.$this->versionParser->normaliz
44740 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 20 28 5c 45 78 63 65 eBranch($branch);.}.catch.(\Exce
44760 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 3b 0a 7d 0a 0a ption.$e).{.}..return.false;.}..
44780 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 61 67 28 24 76 65 private.function.validateTag($ve
447a0 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 69 73 2d 3e 76 65 72 rsion).{.try.{.return.$this->ver
447c0 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 73 69 6f 6e 29 3b sionParser->normalize($version);
447e0 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 7d 0a 0a 72 65 .}.catch.(\Exception.$e).{.}..re
44800 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.false;.}.}.<?php...........
44820 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;.
44840 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 70 6c 65 74 65 50 61 .use.Composer\Package\CompletePa
44860 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 56 65 72 73 ckage;.use.Composer\Package\Vers
44880 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ion\VersionParser;.use.Composer\
448a0 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 0a 0a 0a 63 6c 61 73 Plugin\PluginInterface;.....clas
448c0 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 6e 64 73 20 41 72 72 s.PlatformRepository.extends.Arr
448e0 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 46 4f 52 4d 5f 50 41 ayRepository.{.const.PLATFORM_PA
44900 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 3a 2d 36 34 62 69 74 CKAGE_REGEX.=.'{^(?:php(?:-64bit
44920 29 3f 7c 68 68 76 6d 7c 28 3f 3a 65 78 74 7c 6c 69 62 29 2d 5b 5e 2f 5d 2b 29 24 7d 69 27 3b 0a )?|hhvm|(?:ext|lib)-[^/]+)$}i';.
44940 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 .protected.function.initialize()
44960 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 73 69 .{.parent::initialize();..$versi
44980 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 3b 0a onParser.=.new.VersionParser();.
449a0 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 61 63 .$prettyVersion.=.PluginInterfac
449c0 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 6e 20 e::PLUGIN_API_VERSION;.$version.
449e0 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 72 65 =.$versionParser->normalize($pre
44a00 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 69 20 ttyVersion);.$composerPluginApi.
44a20 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 72 2d =.new.CompletePackage('composer-
44a40 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 56 65 plugin-api',.$version,.$prettyVe
44a60 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 74 44 rsion);.$composerPluginApi->setD
44a80 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 6e 20 escription('The.Composer.Plugin.
44aa0 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 70 6f API');.parent::addPackage($compo
44ac0 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 65 72 serPluginApi);..try.{.$prettyVer
44ae0 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 20 24 sion.=.PHP_VERSION;.$version.=.$
44b00 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 versionParser->normalize($pretty
44b20 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 Version);.}.catch.(\UnexpectedVa
44b40 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f lueException.$e).{.$prettyVersio
44b60 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 2a 24 n.=.preg_replace('#^([^~+-]+).*$
44b80 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 6f 6e #',.'$1',.PHP_VERSION);.$version
44ba0 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 72 .=.$versionParser->normalize($pr
44bc0 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 6d 70 ettyVersion);.}..$php.=.new.Comp
44be0 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 70 72 letePackage('php',.$version,.$pr
44c00 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 74 69 ettyVersion);.$php->setDescripti
44c20 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 65 6e on('The.PHP.interpreter');.paren
44c40 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 49 4e t::addPackage($php);..if.(PHP_IN
44c60 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 6f 6d T_SIZE.===.8).{.$php64.=.new.Com
44c80 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 73 69 pletePackage('php-64bit',.$versi
44ca0 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 65 74 on,.$prettyVersion);.$php64->set
44cc0 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 65 72 Description('The.PHP.interpreter
44ce0 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 28 24 .(64bit)');.parent::addPackage($
44d00 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 20 67 php64);.}..$loadedExtensions.=.g
44d20 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 65 61 et_loaded_extensions();....forea
44d40 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 29 20 ch.($loadedExtensions.as.$name).
44d60 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 74 61 {.if.(in_array($name,.array('sta
44d80 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 7d 0a ndard',.'Core'))).{.continue;.}.
44da0 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 65 6e .$reflExt.=.new.\ReflectionExten
44dc0 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 69 6f sion($name);.try.{.$prettyVersio
44de0 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 65 72 n.=.$reflExt->getVersion();.$ver
44e00 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 sion.=.$versionParser->normalize
44e20 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 65 78 ($prettyVersion);.}.catch.(\Unex
44e40 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 65 74 pectedValueException.$e).{.$pret
44e60 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 65 72 tyVersion.=.'0';.$version.=.$ver
44e80 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 65 72 sionParser->normalize($prettyVer
44ea0 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 2d 3e sion);.}..$packageName.=.$this->
44ec0 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 3d 20 buildPackageName($name);.$ext.=.
44ee0 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 6d 65 new.CompletePackage($packageName
44f00 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 65 78 ,.$version,.$prettyVersion);.$ex
44f20 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 2e 27 t->setDescription('The.'.$name.'
44f40 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 61 63 .PHP.extension');.parent::addPac
44f60 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 24 6c kage($ext);.}........foreach.($l
44f80 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 72 65 oadedExtensions.as.$name).{.$pre
44fa0 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 6d 65 ttyVersion.=.null;.switch.($name
44fc0 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 3d 20 ).{.case.'curl':.$curlVersion.=.
44fe0 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 20 3d curl_version();.$prettyVersion.=
45000 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 6b 3b .$curlVersion['version'];.break;
45020 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 20 3d ..case.'iconv':.$prettyVersion.=
45040 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 69 6e .ICONV_VERSION;.break;..case.'in
45060 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 64 28 tl':.$name.=.'ICU';.if.(defined(
45080 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 56 65 'INTL_ICU_VERSION')).{.$prettyVe
450a0 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 73 65 rsion.=.INTL_ICU_VERSION;.}.else
450c0 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 6e 45 .{.$reflector.=.new.\ReflectionE
450e0 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 0a 24 xtension('intl');..ob_start();.$
45100 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 62 5f reflector->info();.$output.=.ob_
45120 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 55 20 get_clean();..preg_match('/^ICU.
45140 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 24 6d version.=>.(.*)$/m',.$output,.$m
45160 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 63 68 atches);.$prettyVersion.=.$match
45180 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 27 3a es[1];.}..break;..case.'libxml':
451a0 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 44 5f .$prettyVersion.=.LIBXML_DOTTED_
451c0 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 27 3a VERSION;.break;..case.'openssl':
451e0 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 5f 63 .$prettyVersion.=.preg_replace_c
45200 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 39 2e allback('{^(?:OpenSSL\s*)?([0-9.
45220 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 74 63 ]+)([a-z]?).*}',.function.($matc
45240 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 28 24 h).{.return.$match[1]...(empty($
45260 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 63 68 match[2]).?.''.:.'.'.(ord($match
45280 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 4e 5f [2]).-.96));.},.OPENSSL_VERSION_
452a0 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 72 65 TEXT);.break;..case.'pcre':.$pre
452c0 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 5c 53 ttyVersion.=.preg_replace('{^(\S
452e0 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 72 65 +).*}',.'$1',.PCRE_VERSION);.bre
45300 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 6f 6e ak;..case.'uuid':.$prettyVersion
45320 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 0a 63 .=.phpversion('uuid');.break;..c
45340 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 42 58 ase.'xsl':.$prettyVersion.=.LIBX
45360 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 66 61 SLT_DOTTED_VERSION;.break;..defa
45380 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 65 72 ult:...continue.2;.}..try.{.$ver
453a0 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 sion.=.$versionParser->normalize
453c0 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 65 78 ($prettyVersion);.}.catch.(\Unex
453e0 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 74 69 pectedValueException.$e).{.conti
45400 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 6b 61 nue;.}..$lib.=.new.CompletePacka
45420 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 65 74 ge('lib-'.$name,.$version,.$pret
45440 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 6f 6e tyVersion);.$lib->setDescription
45460 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 0a 70 ('The.'.$name.'.PHP.library');.p
45480 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 20 28 arent::addPackage($lib);.}..if.(
454a0 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 74 72 79 20 7b defined('HHVM_VERSION')).{.try.{
454c0 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 48 48 56 4d 5f 56 45 52 53 49 4f 4e 3b 0a .$prettyVersion.=.HHVM_VERSION;.
454e0 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 6d 61 $version.=.$versionParser->norma
45500 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 28 5c lize($prettyVersion);.}.catch.(\
45520 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 0a 24 UnexpectedValueException.$e).{.$
45540 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 23 5e prettyVersion.=.preg_replace('#^
45560 28 5b 5e 7e 2b 2d 5d 2b 29 2e 2a 24 23 27 2c 20 27 24 31 27 2c 20 48 48 56 4d 5f 56 45 52 53 49 ([^~+-]+).*$#',.'$1',.HHVM_VERSI
45580 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 2d 3e ON);.$version.=.$versionParser->
455a0 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 24 68 normalize($prettyVersion);.}..$h
455c0 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 6d 27 hvm.=.new.CompletePackage('hhvm'
455e0 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 68 68 ,.$version,.$prettyVersion);.$hh
45600 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 75 6e vm->setDescription('The.HHVM.Run
45620 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 6b 61 time.(64bit)');.parent::addPacka
45640 67 65 28 24 68 68 76 6d 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e ge($hhvm);.}.}..private.function
45660 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 74 75 72 .buildPackageName($name).{.retur
45680 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 2d 27 2c n.'ext-'...str_replace('.',.'-',
456a0 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 0a 6e 61 .$name);.}.}.<?php............na
456c0 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 0a 0a mespace.Composer\Repository;....
456e0 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 65 70 6f ...class.InstalledFilesystemRepo
45700 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 73 69 74 sitory.extends.FilesystemReposit
45720 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 69 74 6f ory.implements.InstalledReposito
45740 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 0a 0a 0a ryInterface.{.}.<?php...........
45760 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;.
45780 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
457a0 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 52 65 70 erface;.......class.CompositeRep
457c0 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 ository.implements.RepositoryInt
457e0 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 6f 72 69 erface.{.....private.$repositori
45800 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 6e 73 74 es;......public.function.__const
45820 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 74 68 69 ruct(array.$repositories).{.$thi
45840 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 72 65 61 s->repositories.=.array();.forea
45860 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 0a 24 74 ch.($repositories.as.$repo).{.$t
45880 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 7d 0a 0a his->addRepository($repo);.}.}..
458a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f .....public.function.getReposito
458c0 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 ries().{.return.$this->repositor
458e0 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 73 50 61 ies;.}.....public.function.hasPa
45900 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)
45920 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.
45940 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 69 74 6f as.$repository).{..if.($reposito
45960 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 65 74 75 ry->hasPackage($package)).{.retu
45980 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 0a 0a 0a rn.true;.}.}..return.false;.}...
459a0 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
459c0 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-
459e0 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).{.
45a00 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 50 61 63 .$package.=.$repository->findPac
45a20 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 6c 6c 20 kage($name,.$version);.if.(null.
45a40 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 67 65 3b !==.$package).{.return.$package;
45a60 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 69 63 20 .}.}..return.null;.}.....public.
45a80 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 24 76 65 function.findPackages($name,.$ve
45aa0 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 72 72 61 rsion.=.null).{.$packages.=.arra
45ac0 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 72 69 65 y();.foreach.($this->repositorie
45ae0 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 73 5b 5d s.as.$repository).{..$packages[]
45b00 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 24 6e 61 .=.$repository->findPackages($na
45b20 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 6b 61 67 me,.$version);.}..return.$packag
45b40 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 72 61 79 es.?.call_user_func_array('array
45b60 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 3b 0a 7d _merge',.$packages).:.array();.}
45b80 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 71 75 65 .....public.function.search($que
45ba0 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 72 72 61 ry,.$mode.=.0).{.$matches.=.arra
45bc0 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 72 69 65 y();.foreach.($this->repositorie
45be0 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 5b 5d 20 s.as.$repository).{..$matches[].
45c00 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 20 24 6d =.$repository->search($query,.$m
45c20 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 6c 6c 5f ode);.}..return.$matches.?.call_
45c40 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 2c 20 24 user_func_array('array_merge',.$
45c60 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 6c 69 63 matches).:.array();.}.....public
45c80 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 6c 62 61 .function.filterPackages($callba
45ca0 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 65 5c 50 ck,.$class.=.'Composer\Package\P
45cc0 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 70 6f 73 ackage').{.foreach.($this->repos
45ce0 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 28 66 61 itories.as.$repository).{.if.(fa
45d00 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 63 6b 61 lse.===.$repository->filterPacka
45d20 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 75 72 6e ges($callback,.$class)).{.return
45d40 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 0a 0a 0a .false;.}.}..return.true;.}.....
45d60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a public.function.getPackages().{.
45d80 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 $packages.=.array();.foreach.($t
45da0 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 his->repositories.as.$repository
45dc0 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e ).{..$packages[].=.$repository->
45de0 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 6b 61 67 getPackages();.}..return.$packag
45e00 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 72 61 79 es.?.call_user_func_array('array
45e20 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 3b 0a 7d _merge',.$packages).:.array();.}
45e40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 .....public.function.removePacka
45e60 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a ge(PackageInterface.$package).{.
45e80 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 foreach.($this->repositories.as.
45ea0 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 72 65 6d $repository).{..$repository->rem
45ec0 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 0a 70 75 ovePackage($package);.}.}.....pu
45ee0 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 6c 20 3d blic.function.count().{.$total.=
45f00 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 69 65 73 .0;.foreach.($this->repositories
45f20 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 20 24 72 .as.$repository).{..$total.+=.$r
45f40 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 20 24 74 epository->count();.}..return.$t
45f60 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 61 64 64 otal;.}......public.function.add
45f80 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 Repository(RepositoryInterface.$
45fa0 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 20 69 6e repository).{.if.($repository.in
45fc0 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 70 6f 73 stanceof.self).{.foreach.($repos
45fe0 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 72 65 70 itory->getRepositories().as.$rep
46000 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 70 6f 29 o).{.$this->addRepository($repo)
46020 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 69 65 73 ;.}.}.else.{.$this->repositories
46040 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 0a 0a 0a [].=.$repository;.}.}.}.<?php...
46060 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
46080 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 74 61 6c sitory;.........interface.Instal
460a0 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 73 20 57 ledRepositoryInterface.extends.W
460c0 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 7d 0a 3c ritableRepositoryInterface.{.}.<
460e0 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
46100 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 63 er\Repository;..use.Composer\Pac
46120 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 6d kage\Loader\ArrayLoader;.use.Com
46140 70 6f 73 65 72 5c 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 poser\Package\Package;.use.Compo
46160 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 73 ser\Package\PackageInterface;.us
46180 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;
461a0 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
461c0 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 65 70 65 6e 64 rsionParser;.use.Composer\Depend
461e0 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 6f 73 65 72 5c encyResolver\Pool;.use.Composer\
46200 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 43 61 63 68 Json\JsonFile;.use.Composer\Cach
46220 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 6f 6d 70 e;.use.Composer\Config;.use.Comp
46240 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 oser\IO\IOInterface;.use.Compose
46260 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 6f 6d r\Util\RemoteFilesystem;.use.Com
46280 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 75 73 65 20 43 poser\Plugin\PluginEvents;.use.C
462a0 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 6f 61 64 45 76 omposer\Plugin\PreFileDownloadEv
462c0 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 61 74 63 68 65 ent;.use.Composer\EventDispatche
462e0 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 73 20 43 6f 6d r\EventDispatcher;.....class.Com
46300 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 61 79 52 65 70 poserRepository.extends.ArrayRep
46320 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f ository.{.protected.$config;.pro
46340 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b tected.$options;.protected.$url;
46360 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 .protected.$baseUrl;.protected.$
46380 69 6f 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 24 63 io;.protected.$rfs;.protected.$c
463a0 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 79 55 72 6c 3b 0a 70 72 6f 74 ache;.protected.$notifyUrl;.prot
463c0 65 63 74 65 64 20 24 73 65 61 72 63 68 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 ected.$searchUrl;.protected.$has
463e0 50 72 6f 76 69 64 65 72 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 Providers.=.false;.protected.$pr
46400 6f 76 69 64 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 61 7a 79 50 72 6f 76 69 ovidersUrl;.protected.$lazyProvi
46420 64 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 4c 69 73 74 dersUrl;.protected.$providerList
46440 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 ing;.protected.$providers.=.arra
46460 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 3d y();.protected.$providersByUid.=
46480 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f .array();.protected.$loader;.pro
464a0 74 65 63 74 65 64 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 tected.$rootAliases;.protected.$
464c0 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 allowSslDowngrade.=.false;.prote
464e0 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 cted.$eventDispatcher;.protected
46500 20 24 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 .$sourceMirrors;.protected.$dist
46520 4d 69 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d Mirrors;.private.$degradedMode.=
46540 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 44 61 74 61 3b 0a 0a 70 75 62 6c .false;.private.$rootData;..publ
46560 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 ic.function.__construct(array.$r
46580 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 epoConfig,.IOInterface.$io,.Conf
465a0 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
465c0 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 ntDispatcher.=.null).{.if.(!preg
465e0 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2e 5d 2b 5c 3f 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 _match('{^[\w.]+\??://}',.$repoC
46600 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 0a 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 onfig['url'])).{...$repoConfig['
46620 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f 2f 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 url'].=.'http://'.$repoConfig['u
46640 72 6c 27 5d 3b 0a 7d 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 72 74 72 rl'];.}.$repoConfig['url'].=.rtr
46660 69 6d 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 0a 69 66 im($repoConfig['url'],.'/');..if
46680 20 28 27 68 74 74 70 73 3f 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 .('https?'.===.substr($repoConfi
466a0 67 5b 27 75 72 6c 27 5d 2c 20 30 2c 20 36 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 g['url'],.0,.6)).{.$repoConfig['
466c0 75 72 6c 27 5d 20 3d 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 url'].=.(extension_loaded('opens
466e0 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 29 20 2e 20 73 75 62 73 74 sl').?.'https'.:.'http')...subst
46700 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 36 29 3b 0a 7d 0a 0a 24 75 72 r($repoConfig['url'],.6);.}..$ur
46720 6c 42 69 74 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 lBits.=.parse_url($repoConfig['u
46740 72 6c 27 5d 29 3b 0a 69 66 20 28 24 75 72 6c 42 69 74 73 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c rl']);.if.($urlBits.===.false.||
46760 20 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 29 20 7b 0a 74 68 .empty($urlBits['scheme'])).{.th
46780 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
467a0 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 43 6f 6d 70 6f 73 65 n('Invalid.url.given.for.Compose
467c0 72 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c r.repository:.'.$repoConfig['url
467e0 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 ']);.}..if.(!isset($repoConfig['
46800 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f options'])).{.$repoConfig['optio
46820 6e 73 27 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 ns'].=.array();.}.if.(isset($rep
46840 6f 43 6f 6e 66 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 oConfig['allow_ssl_downgrade']).
46860 26 26 20 74 72 75 65 20 3d 3d 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 61 6c 6c 6f 77 5f 73 &&.true.===.$repoConfig['allow_s
46880 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 53 73 sl_downgrade']).{.$this->allowSs
468a0 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e lDowngrade.=.true;.}..$this->con
468c0 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 fig.=.$config;.$this->options.=.
468e0 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 75 $repoConfig['options'];.$this->u
46900 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e rl.=.$repoConfig['url'];.$this->
46920 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e baseUrl.=.rtrim(preg_replace('{^
46940 28 2e 2a 29 28 3f 3a 2f 5b 5e 2f 5c 5c 5d 2b 2e 6a 73 6f 6e 29 3f 28 3f 3a 5b 3f 23 5d 2e 2a 29 (.*)(?:/[^/\\]+.json)?(?:[?#].*)
46960 3f 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 24 ?$}',.'$1',.$this->url),.'/');.$
46980 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e this->io.=.$io;.$this->cache.=.n
469a0 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 74 28 27 63 61 63 68 ew.Cache($io,.$config->get('cach
469c0 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b e-repo-dir').'/'.preg_replace('{
469e0 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 2d 3e 75 72 6c 29 2c [^a-z0-9.]}i',.'-',.$this->url),
46a00 20 27 61 2d 7a 30 2d 39 2e 24 27 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 .'a-z0-9.$');.$this->loader.=.ne
46a20 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 6e 65 w.ArrayLoader();.$this->rfs.=.ne
46a40 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 w.RemoteFilesystem($this->io,.$t
46a60 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 his->config,.$this->options);.$t
46a80 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 his->eventDispatcher.=.$eventDis
46aa0 70 61 74 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 patcher;.}..public.function.setR
46ac0 6f 6f 74 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 ootAliases(array.$rootAliases).{
46ae0 0a 24 74 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 .$this->rootAliases.=.$rootAlias
46b00 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 66 69 6e 64 50 61 es;.}.....public.function.findPa
46b20 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 24 74 ckage($name,.$version).{.if.(!$t
46b40 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 his->hasProviders()).{.return.pa
46b60 72 65 6e 74 3a 3a 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f rent::findPackage($name,.$versio
46b80 6e 29 3b 0a 7d 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 n);.}...$versionParser.=.new.Ver
46ba0 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
46bc0 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
46be0 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
46c00 68 20 28 24 74 68 69 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 h.($this->getProviderNames().as.
46c20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 $providerName).{.if.($name.===.$
46c40 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 providerName).{.$packages.=.$thi
46c60 73 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 2c s->whatProvides(new.Pool('dev'),
46c80 20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 .$providerName);.foreach.($packa
46ca0 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 20 ges.as.$package).{.if.($name.==.
46cc0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 24 76 65 72 73 69 6f 6e 20 $package->getName().&&.$version.
46ce0 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 72 65 ===.$package->getVersion()).{.re
46d00 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 turn.$package;.}.}.}.}.}.....pub
46d20 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 6d 65 2c lic.function.findPackages($name,
46d40 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e .$version.=.null).{.if.(!$this->
46d60 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a hasProviders()).{.return.parent:
46d80 3a 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a :findPackages($name,.$version);.
46da0 7d 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 3b 0a 0a }...$name.=.strtolower($name);..
46dc0 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 65 72 73 ..if.(null.!==.$version).{.$vers
46de0 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 3b ionParser.=.new.VersionParser();
46e00 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 6d .$version.=.$versionParser->norm
46e20 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 20 3d 20 alize($version);.}..$packages.=.
46e40 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 50 72 6f array();..foreach.($this->getPro
46e60 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b viderNames().as.$providerName).{
46e80 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b 0a .if.($name.===.$providerName).{.
46ea0 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 $packages.=.$this->whatProvides(
46ec0 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 2c 20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 3b new.Pool('dev'),.$providerName);
46ee0 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 29 .foreach.($packages.as.$package)
46f00 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d .{.if.($name.==.$package->getNam
46f20 65 28 29 20 26 26 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 20 7c 7c 20 24 76 65 e().&&.(null.===.$version.||.$ve
46f40 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 rsion.===.$package->getVersion()
46f60 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d )).{.$packages[].=.$package;.}.}
46f80 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 70 75 62 6c 69 .}.}..return.$packages;.}..publi
46fa0 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 28 24 c.function.getPackages().{.if.($
46fc0 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 this->hasProviders()).{.throw.ne
46fe0 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 72 65 70 6f w.\LogicException('Composer.repo
47000 73 69 74 6f 72 69 65 73 20 74 68 61 74 20 68 61 76 65 20 70 72 6f 76 69 64 65 72 73 20 63 61 6e sitories.that.have.providers.can
47020 20 6e 6f 74 20 6c 6f 61 64 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 6c 69 73 74 20 6f 66 20 70 .not.load.the.complete.list.of.p
47040 61 63 6b 61 67 65 73 2c 20 75 73 65 20 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 20 69 6e ackages,.use.getProviderNames.in
47060 73 74 65 61 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 50 stead.');.}..return.parent::getP
47080 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ackages();.}.....public.function
470a0 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 74 68 .search($query,.$mode.=.0).{.$th
470c0 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 is->loadRootServerFile();..if.($
470e0 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 26 26 20 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c this->searchUrl.&&.$mode.===.sel
47100 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 f::SEARCH_FULLTEXT).{.$url.=.str
47120 5f 72 65 70 6c 61 63 65 28 27 25 71 75 65 72 79 25 27 2c 20 24 71 75 65 72 79 2c 20 24 74 68 69 _replace('%query%',.$query,.$thi
47140 73 2d 3e 73 65 61 72 63 68 55 72 6c 29 3b 0a 0a 24 68 6f 73 74 6e 61 6d 65 20 3d 20 70 61 72 73 s->searchUrl);..$hostname.=.pars
47160 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 20 3f 3a 20 24 75 72 e_url($url,.PHP_URL_HOST).?:.$ur
47180 6c 3b 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 6e 74 65 6e l;.$json.=.$this->rfs->getConten
471a0 74 73 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 73 ts($hostname,.$url,.false);.$res
471c0 75 6c 74 73 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e ults.=.JsonFile::parseJson($json
471e0 2c 20 24 75 72 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 5b 27 72 65 73 75 6c ,.$url);..return.$results['resul
47200 74 73 27 5d 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 ts'];.}..if.($this->hasProviders
47220 28 29 29 20 7b 0a 24 72 65 73 75 6c 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 67 65 78 ()).{.$results.=.array();.$regex
47240 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 73 70 6c 69 .=.'{(?:'.implode('|',.preg_spli
47260 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 66 6f 72 65 t('{\s+}',.$query)).')}i';..fore
47280 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 ach.($this->getProviderNames().a
472a0 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 s.$name).{.if.(preg_match($regex
472c0 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 72 65 73 75 6c 74 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 ,.$name)).{.$results[].=.array('
472e0 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 name'.=>.$name);.}.}..return.$re
47300 73 75 6c 74 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 73 65 61 72 63 68 28 sults;.}..return.parent::search(
47320 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $query,.$mode);.}..public.functi
47340 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c on.getProviderNames().{.$this->l
47360 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d oadRootServerFile();..if.(null.=
47380 3d 3d 20 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 ==.$this->providerListing).{.$th
473a0 69 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 74 68 69 73 2d 3e is->loadProviderListings($this->
473c0 6c 6f 61 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 loadRootServerFile());.}..if.($t
473e0 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 0a 20 72 65 74 75 72 his->lazyProvidersUrl).{...retur
47400 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 n.array();.}..if.($this->provide
47420 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 68 69 73 rsUrl).{.return.array_keys($this
47440 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 76 69 64 ->providerListing);.}....$provid
47460 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 5f 6b 65 ers.=.array();.foreach.(array_ke
47480 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 20 24 70 ys($this->providerListing).as.$p
474a0 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 73 74 72 rovider).{.$providers[].=.substr
474c0 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 20 24 70 ($provider,.2,.-5);.}..return.$p
474e0 72 6f 76 69 64 65 72 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 roviders;.}..protected.function.
47500 63 6f 6e 66 69 67 75 72 65 50 61 63 6b 61 67 65 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 configurePackageTransportOptions
47520 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 66 6f (PackageInterface.$package).{.fo
47540 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 73 28 29 20 61 reach.($package->getDistUrls().a
47560 73 20 24 75 72 6c 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 24 74 68 69 73 s.$url).{.if.(strpos($url,.$this
47580 2d 3e 62 61 73 65 55 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 ->baseUrl).===.0).{.$package->se
475a0 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 tTransportOptions($this->options
475c0 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 );..return;.}.}.}..public.functi
475e0 6f 6e 20 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 on.hasProviders().{.$this->loadR
47600 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ootServerFile();..return.$this->
47620 68 61 73 50 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e hasProviders;.}..public.function
47640 20 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 .resetPackageIds().{.foreach.($t
47660 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 61 73 20 24 70 61 63 6b 61 67 65 29 his->providersByUid.as.$package)
47680 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 41 6c 69 61 73 .{.if.($package.instanceof.Alias
476a0 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 Package).{.$package->getAliasOf(
476c0 29 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 )->setId(-1);.}.$package->setId(
476e0 2d 31 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 -1);.}.}..public.function.whatPr
47700 6f 76 69 64 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 ovides(Pool.$pool,.$name).{.if.(
47720 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 isset($this->providers[$name])).
47740 7b 0a 72 65 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 {.return.$this->providers[$name]
47760 3b 0a 7d 0a 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 ;.}....if.(preg_match(PlatformRe
47780 70 6f 73 69 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 pository::PLATFORM_PACKAGE_REGEX
477a0 2c 20 24 6e 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 ,.$name).||.'__root__'.===.$name
477c0 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 ).{.return.array();.}..if.(null.
477e0 3d 3d 3d 20 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 ===.$this->providerListing).{.$t
47800 68 69 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 74 68 69 73 2d his->loadProviderListings($this-
47820 3e 6c 6f 61 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 >loadRootServerFile());.}..if.($
47840 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 20 26 26 20 21 69 73 73 65 74 this->lazyProvidersUrl.&&.!isset
47860 28 24 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 ($this->providerListing[$name]))
47880 20 7b 0a 24 68 61 73 68 20 3d 20 6e 75 6c 6c 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c .{.$hash.=.null;.$url.=.str_repl
478a0 61 63 65 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 6c ace('%package%',.$name,.$this->l
478c0 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 66 61 azyProvidersUrl);.$cacheKey.=.fa
478e0 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 lse;.}.elseif.($this->providersU
47900 72 6c 29 20 7b 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 rl).{...if.(!isset($this->provid
47920 65 72 4c 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 erListing[$name])).{.return.arra
47940 79 28 29 3b 0a 7d 0a 0a 24 68 61 73 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c y();.}..$hash.=.$this->providerL
47960 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 75 72 6c 20 3d 20 isting[$name]['sha256'];.$url.=.
47980 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 str_replace(array('%package%',.'
479a0 25 68 61 73 68 25 27 29 2c 20 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 68 61 73 68 29 2c 20 24 %hash%'),.array($name,.$hash),.$
479c0 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d this->providersUrl);.$cacheKey.=
479e0 20 27 70 72 6f 76 69 64 65 72 2d 27 2e 73 74 72 74 72 28 24 6e 61 6d 65 2c 20 27 2f 27 2c 20 27 .'provider-'.strtr($name,.'/',.'
47a00 24 27 29 2e 27 2e 6a 73 6f 6e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 $').'.json';.}.else.{...$url.=.'
47a20 70 2f 27 2e 24 6e 61 6d 65 2e 27 2e 6a 73 6f 6e 27 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 p/'.$name.'.json';....if.(!isset
47a40 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 75 72 6c 5d 29 29 20 ($this->providerListing[$url])).
47a60 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 68 61 73 68 20 3d 20 24 74 68 69 {.return.array();.}.$hash.=.$thi
47a80 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 75 72 6c 5d 5b 27 73 68 61 32 35 36 s->providerListing[$url]['sha256
47aa0 27 5d 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 '];.$cacheKey.=.null;.}..if.($ca
47ac0 63 68 65 4b 65 79 20 26 26 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 cheKey.&&.$this->cache->sha256($
47ae0 63 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 cacheKey).===.$hash).{.$packages
47b00 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 .=.json_decode($this->cache->rea
47b20 64 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 d($cacheKey),.true);.}.else.{.$p
47b40 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c ackages.=.$this->fetchFile($url,
47b60 20 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 .$cacheKey,.$hash);.}..$this->pr
47b80 6f 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 oviders[$name].=.array();.foreac
47ba0 68 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 h.($packages['packages'].as.$ver
47bc0 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 sions).{.foreach.($versions.as.$
47be0 76 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 version).{...if.(isset($this->pr
47c00 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 29 29 20 ovidersByUid[$version['uid']])).
47c20 7b 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 {...if.(!isset($this->providers[
47c40 24 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 $name][$version['uid']])).{...if
47c60 20 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 .($this->providersByUid[$version
47c80 5b 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 ['uid']].instanceof.AliasPackage
47ca0 29 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 ).{.$this->providers[$name][$ver
47cc0 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 sion['uid']].=.$this->providersB
47ce0 79 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 yUid[$version['uid']]->getAliasO
47d00 66 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 f();.$this->providers[$name][$ve
47d20 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e rsion['uid'].'-alias'].=.$this->
47d40 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b providersByUid[$version['uid']];
47d60 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 5b 24 6e 61 6d 65 .}.else.{.$this->providers[$name
47d80 5d 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 ][$version['uid']].=.$this->prov
47da0 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 0a 0a idersByUid[$version['uid']];.}..
47dc0 20 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 .if.(isset($this->providersByUid
47de0 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 29 29 20 7b 0a 24 74 [$version['uid'].'-root'])).{.$t
47e00 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['
47e20 75 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 uid'].'-root'].=.$this->provider
47e40 73 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 sByUid[$version['uid'].'-root'];
47e60 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b .}.}.}.else.{.if.(!$pool->isPack
47e80 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f ageAcceptable(strtolower($versio
47ea0 6e 5b 27 6e 61 6d 65 27 5d 29 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 n['name']),.VersionParser::parse
47ec0 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 29 Stability($version['version'])))
47ee0 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 .{.continue;.}....$package.=.$th
47f00 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 76 65 72 73 69 6f 6e 2c 20 27 43 6f 6d is->createPackage($version,.'Com
47f20 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b 0a 24 70 61 63 6b 61 67 poser\Package\Package');.$packag
47f40 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 24 70 e->setRepository($this);..if.($p
47f60 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 ackage.instanceof.AliasPackage).
47f80 7b 0a 24 61 6c 69 61 73 65 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f {.$aliased.=.$package->getAliasO
47fa0 66 28 29 3b 0a 24 61 6c 69 61 73 65 64 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 f();.$aliased->setRepository($th
47fc0 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 is);..$this->providers[$name][$v
47fe0 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 61 6c 69 61 73 65 64 3b 0a 24 74 68 69 73 ersion['uid']].=.$aliased;.$this
48000 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 69 64 ->providers[$name][$version['uid
48020 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 20 24 74 68 69 '].'-alias'].=.$package;....$thi
48040 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 s->providersByUid[$version['uid'
48060 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 ]].=.$package;.}.else.{.$this->p
48080 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d roviders[$name][$version['uid']]
480a0 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 .=.$package;.$this->providersByU
480c0 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 63 6b 61 67 65 3b 0a id[$version['uid']].=.$package;.
480e0 7d 0a 0a 0a 20 75 6e 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 3b 0a 0a 69 66 20 }....unset($rootAliasData);..if.
48100 28 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 24 70 61 63 6b 61 (isset($this->rootAliases[$packa
48120 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 ge->getName()][$package->getVers
48140 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 3d 20 24 74 68 69 ion()])).{.$rootAliasData.=.$thi
48160 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 s->rootAliases[$package->getName
48180 28 29 5d 5b 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 ()][$package->getVersion()];.}.e
481a0 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 lseif.($package.instanceof.Alias
481c0 50 61 63 6b 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 Package.&&.isset($this->rootAlia
481e0 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 70 61 63 6b 61 67 ses[$package->getName()][$packag
48200 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 5d 29 29 e->getAliasOf()->getVersion()]))
48220 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 .{.$rootAliasData.=.$this->rootA
48240 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 70 61 63 liases[$package->getName()][$pac
48260 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()
48280 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))
482a0 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
482c0 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['
482e0 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
48300 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
48320 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
48340 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'].=.
48360 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
48380 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;
483a0 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
483c0 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
483e0 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
48400 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
48420 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
48440 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
48460 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
48480 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
484a0 50 61 63 6b 61 67 65 27 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e Package'));.}.}.......public.fun
484c0 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 ction.addPackage(PackageInterfac
484e0 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 e.$package).{.parent::addPackage
48500 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 50 61 63 6b ($package);.$this->configurePack
48520 61 67 65 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d ageTransportOptions($package);.}
48540 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 52 6f 6f 74 53 65 72 ..protected.function.loadRootSer
48560 76 65 72 46 69 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 verFile().{.if.(null.!==.$this->
48580 72 6f 6f 74 44 61 74 61 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 rootData).{.return.$this->rootDa
485a0 74 61 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 ta;.}..if.(!extension_loaded('op
485c0 65 6e 73 73 6c 27 29 20 26 26 20 27 68 74 74 70 73 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 enssl').&&.'https'.===.substr($t
485e0 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 35 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 his->url,.0,.5)).{.throw.new.\Ru
48600 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 ntimeException('You.must.enable.
48620 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 6e 20 79 6f 75 72 20 70 68 the.openssl.extension.in.your.ph
48640 70 2e 69 6e 69 20 74 6f 20 6c 6f 61 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 27 p.ini.to.load.information.from.'
48660 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 20 3d .$this->url);.}..$jsonUrlParts.=
48680 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 69 66 20 28 69 73 73 .parse_url($this->url);..if.(iss
486a0 65 74 28 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d 29 20 26 26 20 66 61 6c et($jsonUrlParts['path']).&&.fal
486c0 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 se.!==.strpos($jsonUrlParts['pat
486e0 68 27 5d 2c 20 27 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 h'],.'.json')).{.$jsonUrl.=.$thi
48700 73 2d 3e 75 72 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 s->url;.}.else.{.$jsonUrl.=.$thi
48720 73 2d 3e 75 72 6c 20 2e 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 24 64 s->url...'/packages.json';.}..$d
48740 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 6a 73 6f 6e 55 72 6c 2c ata.=.$this->fetchFile($jsonUrl,
48760 20 27 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 .'packages.json');..if.(!empty($
48780 64 61 74 61 5b 27 6e 6f 74 69 66 79 2d 62 61 74 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e data['notify-batch'])).{.$this->
487a0 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 63 61 6c 69 7a 65 55 notifyUrl.=.$this->canonicalizeU
487c0 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 2d 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 rl($data['notify-batch']);.}.els
487e0 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 5f 62 61 74 63 68 27 eif.(!empty($data['notify_batch'
48800 5d 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 ])).{...$this->notifyUrl.=.$this
48820 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 6e 6f 74 69 66 79 5f ->canonicalizeUrl($data['notify_
48840 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 batch']);.}.elseif.(!empty($data
48860 5b 27 6e 6f 74 69 66 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 ['notify'])).{.$this->notifyUrl.
48880 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 5b 27 =.$this->canonicalizeUrl($data['
488a0 6e 6f 74 69 66 79 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 notify']);.}..if.(!empty($data['
488c0 73 65 61 72 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 3d 20 search'])).{.$this->searchUrl.=.
488e0 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 73 65 $this->canonicalizeUrl($data['se
48900 61 72 63 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6d 69 arch']);.}..if.(!empty($data['mi
48920 72 72 6f 72 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 6d 69 72 72 rrors'])).{.foreach.($data['mirr
48940 6f 72 73 27 5d 20 61 73 20 24 6d 69 72 72 6f 72 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 ors'].as.$mirror).{.if.(!empty($
48960 6d 69 72 72 6f 72 5b 27 67 69 74 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 mirror['git-url'])).{.$this->sou
48980 72 63 65 4d 69 72 72 6f 72 73 5b 27 67 69 74 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 27 75 72 6c rceMirrors['git'][].=.array('url
489a0 27 20 3d 3e 20 24 6d 69 72 72 6f 72 5b 27 67 69 74 2d 75 72 6c 27 5d 2c 20 27 70 72 65 66 65 72 '.=>.$mirror['git-url'],.'prefer
489c0 72 65 64 27 20 3d 3e 20 21 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 70 72 65 66 65 72 72 65 red'.=>.!empty($mirror['preferre
489e0 64 27 5d 29 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 68 67 2d d']));.}.if.(!empty($mirror['hg-
48a00 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 5b 27 url'])).{.$this->sourceMirrors['
48a20 68 67 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 6d 69 72 72 6f 72 5b hg'][].=.array('url'.=>.$mirror[
48a40 27 68 67 2d 75 72 6c 27 5d 2c 20 27 70 72 65 66 65 72 72 65 64 27 20 3d 3e 20 21 65 6d 70 74 79 'hg-url'],.'preferred'.=>.!empty
48a60 28 24 6d 69 72 72 6f 72 5b 27 70 72 65 66 65 72 72 65 64 27 5d 29 29 3b 0a 7d 0a 69 66 20 28 21 ($mirror['preferred']));.}.if.(!
48a80 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 64 69 73 74 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 empty($mirror['dist-url'])).{.$t
48aa0 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 75 72 6c 27 his->distMirrors[].=.array('url'
48ac0 20 3d 3e 20 24 6d 69 72 72 6f 72 5b 27 64 69 73 74 2d 75 72 6c 27 5d 2c 20 27 70 72 65 66 65 72 .=>.$mirror['dist-url'],.'prefer
48ae0 72 65 64 27 20 3d 3e 20 21 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 70 72 65 66 65 72 72 65 red'.=>.!empty($mirror['preferre
48b00 64 27 5d 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 d']));.}.}.}..if.(!empty($data['
48b20 77 61 72 6e 69 6e 67 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 warning'])).{.$this->io->writeEr
48b40 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 20 66 72 6f 6d 20 27 2e 24 74 68 ror('<warning>Warning.from.'.$th
48b60 69 73 2d 3e 75 72 6c 2e 27 3a 20 27 2e 24 64 61 74 61 5b 27 77 61 72 6e 69 6e 67 27 5d 2e 27 3c is->url.':.'.$data['warning'].'<
48b80 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 /warning>');.}..if.(!empty($data
48ba0 5b 27 70 72 6f 76 69 64 65 72 73 2d 6c 61 7a 79 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 ['providers-lazy-url'])).{.$this
48bc0 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f ->lazyProvidersUrl.=.$this->cano
48be0 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 6c 61 7a nicalizeUrl($data['providers-laz
48c00 79 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 65 72 73 20 3d 20 y-url']);.$this->hasProviders.=.
48c20 74 72 75 65 3b 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 true;.}..if.($this->allowSslDown
48c40 67 72 61 64 65 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 grade).{.$this->url.=.str_replac
48c60 65 28 27 68 74 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 e('https://',.'http://',.$this->
48c80 75 72 6c 29 3b 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 url);.}..if.(!empty($data['provi
48ca0 64 65 72 73 2d 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 ders-url'])).{.$this->providersU
48cc0 72 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 rl.=.$this->canonicalizeUrl($dat
48ce0 61 5b 27 70 72 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 a['providers-url']);.$this->hasP
48d00 72 6f 76 69 64 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 roviders.=.true;.}..if.(!empty($
48d20 64 61 74 61 5b 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 data['providers']).||.!empty($da
48d40 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 74 68 ta['providers-includes'])).{.$th
48d60 69 73 2d 3e 68 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 is->hasProviders.=.true;.}..retu
48d80 72 6e 20 24 74 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 rn.$this->rootData.=.$data;.}..p
48da0 72 6f 74 65 63 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 rotected.function.canonicalizeUr
48dc0 6c 28 24 75 72 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 l($url).{.if.('/'.===.$url[0]).{
48de0 0a 72 65 74 75 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 .return.preg_replace('{(https?:/
48e00 2f 5b 5e 2f 5d 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 /[^/]+).*}i',.'$1'...$url,.$this
48e20 2d 3e 75 72 6c 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 ->url);.}..return.$url;.}..prote
48e40 63 74 65 64 20 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 cted.function.loadDataFromServer
48e60 28 29 0a 7b 0a 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 ().{.$data.=.$this->loadRootServ
48e80 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 6c 6f 61 64 49 6e 63 erFile();..return.$this->loadInc
48ea0 6c 75 64 65 73 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 ludes($data);.}..protected.funct
48ec0 69 6f 6e 20 6c 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 ion.loadProviderListings($data).
48ee0 7b 0a 69 66 20 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 {.if.(isset($data['providers']))
48f00 20 7b 0a 69 66 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 .{.if.(!is_array($this->provider
48f20 4c 69 73 74 69 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 Listing)).{.$this->providerListi
48f40 6e 67 20 3d 20 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 ng.=.array();.}.$this->providerL
48f60 69 73 74 69 6e 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 isting.=.array_merge($this->prov
48f80 69 64 65 72 4c 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 iderListing,.$data['providers'])
48fa0 3b 0a 7d 0a 0a 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 ;.}..if.($this->providersUrl.&&.
48fc0 69 73 73 65 74 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 isset($data['provider-includes']
48fe0 29 29 20 7b 0a 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 )).{.$includes.=.$data['provider
49000 2d 69 6e 63 6c 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 -includes'];.foreach.($includes.
49020 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 75 72 6c as.$include.=>.$metadata).{.$url
49040 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 73 74 72 5f 72 65 .=.$this->baseUrl...'/'...str_re
49060 70 6c 61 63 65 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 place('%hash%',.$metadata['sha25
49080 36 27 5d 2c 20 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 6'],.$include);.$cacheKey.=.str_
490a0 72 65 70 6c 61 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 replace(array('%hash%','$'),.'',
490c0 20 24 69 6e 63 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 .$include);.if.($this->cache->sh
490e0 61 32 35 36 28 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 a256($cacheKey).===.$metadata['s
49100 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 3d 20 6a 73 6f 6e 5f ha256']).{.$includedData.=.json_
49120 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 decode($this->cache->read($cache
49140 4b 65 79 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 Key),.true);.}.else.{.$includedD
49160 61 74 61 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 24 63 61 ata.=.$this->fetchFile($url,.$ca
49180 63 68 65 4b 65 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 cheKey,.$metadata['sha256']);.}.
491a0 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 73 28 24 69 6e .$this->loadProviderListings($in
491c0 63 6c 75 64 65 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 cludedData);.}.}.elseif.(isset($
491e0 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 0a data['providers-includes'])).{..
49200 20 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 73 2d 69 6e .$includes.=.$data['providers-in
49220 63 6c 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 cludes'];.foreach.($includes.as.
49240 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 $include.=>.$metadata).{.if.($th
49260 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 is->cache->sha256($include).===.
49280 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 $metadata['sha256']).{.$included
492a0 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d Data.=.json_decode($this->cache-
492c0 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b >read($include),.true);.}.else.{
492e0 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c .$includedData.=.$this->fetchFil
49300 65 28 24 69 6e 63 6c 75 64 65 2c 20 6e 75 6c 6c 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 e($include,.null,.$metadata['sha
49320 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 256']);.}..$this->loadProviderLi
49340 73 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 stings($includedData);.}.}.}..pr
49360 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 otected.function.loadIncludes($d
49380 61 74 61 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 ata).{.$packages.=.array();....i
493a0 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 f.(!isset($data['packages']).&&.
493c0 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 !isset($data['includes'])).{.for
493e0 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 70 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 each.($data.as.$pkg).{.foreach.(
49400 24 70 6b 67 5b 27 76 65 72 73 69 6f 6e 73 27 5d 20 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b $pkg['versions'].as.$metadata).{
49420 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 72 .$packages[].=.$metadata;.}.}..r
49440 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 eturn.$packages;.}..if.(isset($d
49460 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 ata['packages'])).{.foreach.($da
49480 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 ta['packages'].as.$package.=>.$v
494a0 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 ersions).{.foreach.($versions.as
494c0 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 .$version.=>.$metadata).{.$packa
494e0 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 ges[].=.$metadata;.}.}.}..if.(is
49500 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 set($data['includes'])).{.foreac
49520 68 20 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 20 61 73 20 24 69 6e 63 6c 75 64 65 h.($data['includes'].as.$include
49540 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 61 63 68 .=>.$metadata).{.if.($this->cach
49560 65 2d 3e 73 68 61 31 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b e->sha1($include).===.$metadata[
49580 27 73 68 61 31 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 'sha1']).{.$includedData.=.json_
495a0 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 decode($this->cache->read($inclu
495c0 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 de),.true);.}.else.{.$includedDa
495e0 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 29 3b ta.=.$this->fetchFile($include);
49600 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b .}.$packages.=.array_merge($pack
49620 61 67 65 73 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 69 6e 63 6c 75 ages,.$this->loadIncludes($inclu
49640 64 65 64 44 61 74 61 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 dedData));.}.}..return.$packages
49660 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 61 ;.}..protected.function.createPa
49680 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 74 72 79 ckage(array.$data,.$class).{.try
496a0 20 7b 0a 69 66 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 .{.if.(!isset($data['notificatio
496c0 6e 2d 75 72 6c 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 n-url'])).{.$data['notification-
496e0 75 72 6c 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 3b 0a 7d 0a 0a 24 70 61 url'].=.$this->notifyUrl;.}..$pa
49700 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 64 61 74 ckage.=.$this->loader->load($dat
49720 61 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 a,.'Composer\Package\CompletePac
49740 6b 61 67 65 27 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d kage');.if.(isset($this->sourceM
49760 69 72 72 6f 72 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 irrors[$package->getSourceType()
49780 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 ])).{.$package->setSourceMirrors
497a0 28 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 5b 24 70 61 63 6b 61 67 65 2d 3e ($this->sourceMirrors[$package->
497c0 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 5d 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 getSourceType()]);.}.$package->s
497e0 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 etDistMirrors($this->distMirrors
49800 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 50 61 63 6b 61 67 65 54 72 61 6e 73 70 );.$this->configurePackageTransp
49820 6f 72 74 4f 70 74 69 6f 6e 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 ortOptions($package);..return.$p
49840 61 63 6b 61 67 65 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 ackage;.}.catch.(\Exception.$e).
49860 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 43 {.throw.new.\RuntimeException('C
49880 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 70 61 63 6b 61 67 65 20 27 2e 28 69 73 73 65 74 28 24 ould.not.load.package.'.(isset($
498a0 64 61 74 61 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 data['name']).?.$data['name'].:.
498c0 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 29 2e 27 20 69 6e 20 27 2e 24 74 68 69 73 json_encode($data)).'.in.'.$this
498e0 2d 3e 75 72 6c 2e 27 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 ->url.':.['.get_class($e).'].'.$
49900 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 e->getMessage(),.0,.$e);.}.}..pr
49920 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 46 69 6c 65 28 24 66 69 6c 65 otected.function.fetchFile($file
49940 6e 61 6d 65 2c 20 24 63 61 63 68 65 4b 65 79 20 3d 20 6e 75 6c 6c 2c 20 24 73 68 61 32 35 36 20 name,.$cacheKey.=.null,.$sha256.
49960 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 61 63 68 65 4b 65 79 =.null).{.if.(null.===.$cacheKey
49980 29 20 7b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 66 69 6c 65 6e 61 6d 65 3b 0a 24 66 69 6c 65 ).{.$cacheKey.=.$filename;.$file
499a0 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2e 27 2f 27 2e 24 66 69 6c 65 6e name.=.$this->baseUrl.'/'.$filen
499c0 61 6d 65 3b 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 ame;.}..$retries.=.3;.while.($re
499e0 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 tries--).{.try.{.$preFileDownloa
49a00 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 61 64 45 76 65 6e dEvent.=.new.PreFileDownloadEven
49a20 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 4f 57 4e 4c 4f 41 t(PluginEvents::PRE_FILE_DOWNLOA
49a40 44 2c 20 24 74 68 69 73 2d 3e 72 66 73 2c 20 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 24 D,.$this->rfs,.$filename);.if.($
49a60 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e this->eventDispatcher).{.$this->
49a80 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 24 70 72 65 46 69 eventDispatcher->dispatch($preFi
49aa0 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 72 65 leDownloadEvent->getName(),.$pre
49ac0 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 29 3b 0a 7d 0a 0a 24 68 6f 73 74 6e 61 6d 65 FileDownloadEvent);.}..$hostname
49ae0 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 66 69 6c 65 6e 61 6d 65 2c 20 50 48 50 5f 55 52 4c 5f .=.parse_url($filename,.PHP_URL_
49b00 48 4f 53 54 29 20 3f 3a 20 24 66 69 6c 65 6e 61 6d 65 3b 0a 24 6a 73 6f 6e 20 3d 20 24 70 72 65 HOST).?:.$filename;.$json.=.$pre
49b20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e 67 65 74 52 65 6d 6f 74 65 46 69 6c 65 FileDownloadEvent->getRemoteFile
49b40 73 79 73 74 65 6d 28 29 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 68 6f 73 74 6e 61 6d 65 2c system()->getContents($hostname,
49b60 20 24 66 69 6c 65 6e 61 6d 65 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 73 68 61 32 35 36 20 .$filename,.false);.if.($sha256.
49b80 26 26 20 24 73 68 61 32 35 36 20 21 3d 3d 20 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 6a &&.$sha256.!==.hash('sha256',.$j
49ba0 73 6f 6e 29 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 28 31 son)).{.if.($retries).{.usleep(1
49bc0 30 30 30 30 30 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 74 68 72 6f 77 20 6e 65 00000);..continue;.}....throw.ne
49be0 77 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 28 27 54 w.RepositorySecurityException('T
49c00 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 27 2e 24 66 69 6c 65 6e 61 6d 65 2e 27 20 64 6f 20 he.contents.of.'.$filename.'.do.
49c20 6e 6f 74 20 6d 61 74 63 68 20 69 74 73 20 73 69 67 6e 61 74 75 72 65 2e 20 54 68 69 73 20 73 68 not.match.its.signature..This.sh
49c40 6f 75 6c 64 20 69 6e 64 69 63 61 74 65 20 61 20 6d 61 6e 2d 69 6e 2d 74 68 65 2d 6d 69 64 64 6c ould.indicate.a.man-in-the-middl
49c60 65 20 61 74 74 61 63 6b 2e 20 54 72 79 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 61 e.attack..Try.running.composer.a
49c80 67 61 69 6e 20 61 6e 64 20 72 65 70 6f 72 74 20 74 68 69 73 20 69 66 20 79 6f 75 20 74 68 69 6e gain.and.report.this.if.you.thin
49ca0 6b 20 69 74 20 69 73 20 61 20 6d 69 73 74 61 6b 65 2e 27 29 3b 0a 7d 0a 24 64 61 74 61 20 3d 20 k.it.is.a.mistake.');.}.$data.=.
49cc0 4a 73 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 66 69 6c 65 JsonFile::parseJson($json,.$file
49ce0 6e 61 6d 65 29 3b 0a 69 66 20 28 24 63 61 63 68 65 4b 65 79 29 20 7b 0a 24 74 68 69 73 2d 3e 63 name);.if.($cacheKey).{.$this->c
49d00 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 7d ache->write($cacheKey,.$json);.}
49d20 0a 0a 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 ..break;.}.catch.(\Exception.$e)
49d40 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 28 31 30 30 30 30 30 .{.if.($retries).{.usleep(100000
49d60 29 3b 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 );.continue;.}..if.($e.instanceo
49d80 66 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 29 20 7b f.RepositorySecurityException).{
49da0 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 63 68 65 4b 65 79 20 26 26 20 28 .throw.$e;.}..if.($cacheKey.&&.(
49dc0 24 63 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 $contents.=.$this->cache->read($
49de0 63 61 63 68 65 4b 65 79 29 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 67 72 61 64 cacheKey))).{.if.(!$this->degrad
49e00 65 64 4d 6f 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 edMode).{.$this->io->writeError(
49e20 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f '<warning>'.$e->getMessage().'</
49e40 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f warning>');.$this->io->writeErro
49e60 72 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 r('<warning>'.$this->url.'.could
49e80 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 67 65 20 69 6e .not.be.fully.loaded,.package.in
49ea0 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 68 65 20 6c 6f formation.was.loaded.from.the.lo
49ec0 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 20 64 61 74 65 cal.cache.and.may.be.out.of.date
49ee0 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 61 64 65 64 4d </warning>');.}.$this->degradedM
49f00 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 65 3a 3a 70 61 ode.=.true;.$data.=.JsonFile::pa
49f20 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 61 63 68 65 2d rseJson($contents,.$this->cache-
49f40 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 61 6b 3b 0a 7d >getRoot().$cacheKey);..break;.}
49f60 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 74 61 3b 0a 7d ..throw.$e;.}.}..return.$data;.}
49f80 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
49fa0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c mposer\Repository\Pear;.......cl
49fc0 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 72 65 ass.DependencyInfo.{.private.$re
49fe0 71 75 69 72 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 0a 0a 0a 0a quires;.private.$optionals;.....
4a000 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 .public.function.__construct($re
4a020 71 75 69 72 65 73 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 quires,.$optionals).{.$this->req
4a040 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e uires.=.$requires;.$this->option
4a060 61 6c 73 20 3d 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 als.=.$optionals;.}.....public.f
4a080 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 unction.getRequires().{.return.$
4a0a0 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e this->requires;.}.....public.fun
4a0c0 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ction.getOptionals().{.return.$t
4a0e0 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a his->optionals;.}.}.<?php.......
4a100 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
4a120 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 44 65 70 65 ry\Pear;.......class.PackageDepe
4a140 6e 64 65 6e 63 79 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ndencyParser.{.......public.func
4a160 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 41 72 72 tion.buildDependencyInfo($depArr
4a180 61 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 41 72 72 61 79 29 29 20 ay).{.if.(!is_array($depArray)).
4a1a0 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 {.return.new.DependencyInfo(arra
4a1c0 79 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 48 y(),.array());.}.if.(!$this->isH
4a1e0 61 73 68 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 ash($depArray)).{.return.new.Dep
4a200 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e endencyInfo($this->buildDependen
4a220 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d cy10Info($depArray),.array());.}
4a240 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 ..return.$this->buildDependency2
4a260 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0Info($depArray);.}.............
4a280 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 .private.function.buildDependenc
4a2a0 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 y10Info($depArray).{.static.$dep
4a2c0 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 73 27 20 3d 3e 10toOperatorMap.=.array('has'.=>
4a2e0 20 27 3d 3d 27 2c 20 27 65 71 27 20 3d 3e 20 27 3d 3d 27 2c 20 27 67 65 27 20 3d 3e 20 27 3e 3d .'==',.'eq'.=>.'==',.'ge'.=>.'>=
4a300 27 2c 20 27 67 74 27 20 3d 3e 20 27 3e 27 2c 20 27 6c 65 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 6c ',.'gt'.=>.'>',.'le'.=>.'<=',.'l
4a320 74 27 20 3d 3e 20 27 3c 27 2c 20 27 6e 6f 74 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 72 65 73 t'.=>.'<',.'not'.=>.'!=');..$res
4a340 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 ult.=.array();..foreach.($depArr
4a360 61 79 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 64 65 70 ay.as.$depItem).{.if.(empty($dep
4a380 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 7c 7c 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 Item['rel']).||.!array_key_exist
4a3a0 73 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 2c 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 s($depItem['rel'],.$dep10toOpera
4a3c0 74 6f 72 4d 61 70 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 70 54 79 torMap)).{...continue;.}..$depTy
4a3e0 70 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c 27 5d pe.=.!empty($depItem['optional']
4a400 29 20 26 26 20 27 79 65 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c ).&&.'yes'.==.$depItem['optional
4a420 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e 61 6c 27 0a 3a 20 27 72 65 71 75 69 72 65 64 27 3b 0a 24 64 '].?.'optional'.:.'required';.$d
4a440 65 70 54 79 70 65 20 3d 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 epType.=.'not'.==.$depItem['rel'
4a460 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 74 73 27 0a 3a 20 24 64 65 70 54 79 70 65 3b 0a 0a 24 64 65 ].?.'conflicts'.:.$depType;..$de
4a480 70 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 pVersion.=.!empty($depItem['vers
4a4a0 69 6f 6e 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 64 65 ion']).?.$this->parseVersion($de
4a4c0 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3a 20 27 2a 27 3b 0a 0a 0a 20 24 64 65 70 pItem['version']).:.'*';....$dep
4a4e0 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 27 68 61 73 27 20 3d 3d 20 24 64 VersionConstraint.=.('has'.==.$d
4a500 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 20 7c 7c 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 epItem['rel'].||.'not'.==.$depIt
4a520 65 6d 5b 27 72 65 6c 27 5d 29 20 26 26 20 27 2a 27 20 3d 3d 20 24 64 65 70 56 65 72 73 69 6f 6e em['rel']).&&.'*'.==.$depVersion
4a540 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 64 65 .?.'*'.:.$dep10toOperatorMap[$de
4a560 70 49 74 65 6d 5b 27 72 65 6c 27 5d 5d 20 2e 20 24 64 65 70 56 65 72 73 69 6f 6e 3b 0a 0a 73 77 pItem['rel']]...$depVersion;..sw
4a580 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 5b 27 74 79 70 65 27 5d 29 20 7b 0a 63 61 73 65 20 27 itch.($depItem['type']).{.case.'
4a5a0 70 68 70 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 70 68 70 27 3b 0a 24 php':.$depChannelName.=.'php';.$
4a5c0 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 depPackageName.=.'';.break;.case
4a5e0 20 27 70 6b 67 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 21 65 6d 70 74 79 .'pkg':.$depChannelName.=.!empty
4a600 28 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 29 20 3f 20 24 64 65 70 49 74 65 6d ($depItem['channel']).?.$depItem
4a620 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 27 70 65 61 72 2e 70 68 70 2e 6e 65 74 27 3b 0a 24 64 ['channel'].:.'pear.php.net';.$d
4a640 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d epPackageName.=.$depItem['name']
4a660 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c ;.break;.case.'ext':.$depChannel
4a680 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 Name.=.'ext';.$depPackageName.=.
4a6a0 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f $depItem['name'];.break;.case.'o
4a6c0 73 27 3a 0a 63 61 73 65 20 27 73 61 70 69 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 s':.case.'sapi':.$depChannelName
4a6e0 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 .=.'';.$depPackageName.=.'';.bre
4a700 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 ak;.default:.$depChannelName.=.'
4a720 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a ';.$depPackageName.=.'';.break;.
4a740 7d 0a 0a 69 66 20 28 27 27 20 21 3d 20 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a }..if.(''.!=.$depChannelName).{.
4a760 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 $result[].=.new.DependencyConstr
4a780 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 aint(.$depType,.$depVersionConst
4a7a0 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b raint,.$depChannelName,.$depPack
4a7c0 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a ageName.);.}.}..return.$result;.
4a7e0 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 }........private.function.buildD
4a800 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 24 72 65 ependency20Info($depArray).{.$re
4a820 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 sult.=.array();.$optionals.=.arr
4a840 61 79 28 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 61 79 28 ay();.$defaultOptionals.=.array(
4a860 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 54 79 70 );.foreach.($depArray.as.$depTyp
4a880 65 20 3d 3e 20 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 e.=>.$depTypeGroup).{.if.(!is_ar
4a8a0 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a ray($depTypeGroup)).{.continue;.
4a8c0 7d 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 27 20 3d 3d 20 24 64 65 70 54 79 70 65 20 7c 7c 20 }.if.('required'.==.$depType.||.
4a8e0 27 6f 70 74 69 6f 6e 61 6c 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 66 6f 72 65 61 63 'optional'.==.$depType).{.foreac
4a900 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 54 79 70 65 h.($depTypeGroup.as.$depItemType
4a920 20 3d 3e 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d .=>.$depItem).{.switch.($depItem
4a940 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 Type).{.case.'php':.$result[].=.
4a960 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 new.DependencyConstraint(.$depTy
4a980 70 65 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 pe,.$this->parse20VersionConstra
4a9a0 69 6e 74 28 24 64 65 70 49 74 65 6d 29 2c 0a 27 70 68 70 27 2c 0a 27 27 0a 29 3b 0a 62 72 65 61 int($depItem),.'php',.''.);.brea
4a9c0 6b 3b 0a 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 k;.case.'package':.$deps.=.$this
4a9e0 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 ->buildDepPackageConstraints($de
4aa00 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 pItem,.$depType);.$result.=.arra
4aa20 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 6b 3b 0a y_merge($result,.$deps);.break;.
4aa40 63 61 73 65 20 27 65 78 74 65 6e 73 69 6f 6e 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d case.'extension':.$deps.=.$this-
4aa60 3e 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 >buildDepExtensionConstraints($d
4aa80 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 epItem,.$depType);.$result.=.arr
4aaa0 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 6b 3b ay_merge($result,.$deps);.break;
4aac0 0a 63 61 73 65 20 27 73 75 62 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 .case.'subpackage':.$deps.=.$thi
4aae0 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 s->buildDepPackageConstraints($d
4ab00 65 70 49 74 65 6d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 epItem,.'replaces');.$defaultOpt
4ab20 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 65 70 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 73 ionals.+=.$deps;.break;.case.'os
4ab40 27 3a 0a 63 61 73 65 20 27 70 65 61 72 69 6e 73 74 61 6c 6c 65 72 27 3a 0a 62 72 65 61 6b 3b 0a ':.case.'pearinstaller':.break;.
4ab60 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 67 default:.break;.}.}.}.elseif.('g
4ab80 72 6f 75 70 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e roup'.==.$depType).{.if.($this->
4aba0 69 73 48 61 73 68 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 24 64 65 70 54 79 70 isHash($depTypeGroup)).{.$depTyp
4abc0 65 47 72 6f 75 70 20 3d 20 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 3b 0a 7d eGroup.=.array($depTypeGroup);.}
4abe0 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 ..foreach.($depTypeGroup.as.$dep
4ac00 49 74 65 6d 29 20 7b 0a 24 67 72 6f 75 70 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 61 Item).{.$groupName.=.$depItem['a
4ac20 74 74 72 69 62 73 27 5d 5b 27 6e 61 6d 65 27 5d 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 70 ttribs']['name'];.if.(!isset($op
4ac40 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 tionals[$groupName])).{.$optiona
4ac60 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 ls[$groupName].=.array();.}..if.
4ac80 28 69 73 73 65 74 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 29 29 20 (isset($depItem['subpackage'])).
4aca0 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 2b 3d 20 24 74 68 69 {.$optionals[$groupName].+=.$thi
4acc0 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 s->buildDepPackageConstraints($d
4ace0 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 2c 20 27 72 65 70 6c 61 63 65 73 27 epItem['subpackage'],.'replaces'
4ad00 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 20 2b 3d 20 24 74 68 69 73 2d 3e 62 75 );.}.else.{.$result.+=.$this->bu
4ad20 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 ildDepPackageConstraints($depIte
4ad40 6d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 27 6f 70 74 69 6f 6e 61 6c 27 29 3b 0a 7d 0a 7d 0a 7d m['package'],.'optional');.}.}.}
4ad60 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 29 .}..if.(count($defaultOptionals)
4ad80 20 3e 20 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 27 2a 27 5d 20 3d 20 24 64 65 66 61 75 .>.0).{.$optionals['*'].=.$defau
4ada0 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e ltOptionals;.}..return.new.Depen
4adc0 64 65 6e 63 79 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 3b 0a dencyInfo($result,.$optionals);.
4ade0 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 64 }.........private.function.build
4ae00 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d DepExtensionConstraints($depItem
4ae20 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 ,.$depType).{.if.($this->isHash(
4ae40 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 72 61 79 28 24 64 $depItem)).{.$depItem.=.array($d
4ae60 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 epItem);.}..$result.=.array();.f
4ae80 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 70 49 74 65 6d 29 oreach.($depItem.as.$subDepItem)
4aea0 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 .{.$depChannelName.=.'ext';.$dep
4aec0 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 PackageName.=.$subDepItem['name'
4aee0 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 ];.$depVersionConstraint.=.$this
4af00 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 44 ->parse20VersionConstraint($subD
4af20 65 70 49 74 65 6d 29 3b 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 epItem);..$result[].=.new.Depend
4af40 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 encyConstraint(.$depType,.$depVe
4af60 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 rsionConstraint,.$depChannelName
4af80 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ,.$depPackageName.);.}..return.$
4afa0 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 result;.}.........private.functi
4afc0 6f 6e 20 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 on.buildDepPackageConstraints($d
4afe0 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 epItem,.$depType).{.if.($this->i
4b000 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 sHash($depItem)).{.$depItem.=.ar
4b020 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 ray($depItem);.}..$result.=.arra
4b040 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 y();.foreach.($depItem.as.$subDe
4b060 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 73 75 62 44 pItem).{.$depChannelName.=.$subD
4b080 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 epItem['channel'];.$depPackageNa
4b0a0 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 56 65 me.=.$subDepItem['name'];.$depVe
4b0c0 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 rsionConstraint.=.$this->parse20
4b0e0 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 44 65 70 49 74 65 6d 29 3b 0a VersionConstraint($subDepItem);.
4b100 69 66 20 28 69 73 73 65 74 28 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 6f 6e 66 6c 69 63 74 73 if.(isset($subDepItem['conflicts
4b120 27 5d 29 29 20 7b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 63 6f 6e 66 6c 69 63 74 73 27 3b 0a 7d '])).{.$depType.=.'conflicts';.}
4b140 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 ..$result[].=.new.DependencyCons
4b160 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 6e traint(.$depType,.$depVersionCon
4b180 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 61 straint,.$depChannelName,.$depPa
4b1a0 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a ckageName.);.}..return.$result;.
4b1c0 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 32 }........private.function.parse2
4b1e0 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 61 72 72 61 79 20 24 64 61 74 61 29 0a 0VersionConstraint(array.$data).
4b200 7b 0a 73 74 61 74 69 63 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 {.static.$dep20toOperatorMap.=.a
4b220 72 72 61 79 28 27 68 61 73 27 20 3d 3e 20 27 3d 3d 27 2c 20 27 6d 69 6e 27 20 3d 3e 20 27 3e 3d rray('has'.=>.'==',.'min'.=>.'>=
4b240 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 27 ',.'max'.=>.'<=',.'exclude'.=>.'
4b260 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 6c !=');..$versions.=.array();.$val
4b280 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 2c ues.=.array_intersect_key($data,
4b2a0 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 20 .$dep20toOperatorMap);.if.(0.==.
4b2c0 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 0a count($values)).{.return.'*';.}.
4b2e0 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 73 if.(isset($values['min']).&&.iss
4b300 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 5b et($values['exclude']).&&.$data[
4b320 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 76 'min'].==.$data['exclude']).{.$v
4b340 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 65 ersions[].=.'>'...$this->parseVe
4b360 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 20 rsion($values['min']);.}.elseif.
4b380 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 28 (isset($values['max']).&&.isset(
4b3a0 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 61 $values['exclude']).&&.$data['ma
4b3c0 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 73 x'].==.$data['exclude']).{.$vers
4b3e0 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 69 ions[].=.'<'...$this->parseVersi
4b400 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 72 on($values['max']);.}.else.{.for
4b420 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 6e each.($values.as.$op.=>.$version
4b440 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 61 ).{.if.('exclude'.==.$op.&&.is_a
4b460 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 73 rray($version)).{.foreach.($vers
4b480 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 73 ion.as.$versionPart).{.$versions
4b4a0 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 20 [].=.$dep20toOperatorMap[$op]...
4b4c0 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 74 $this->parseVersion($versionPart
4b4e0 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 70 );.}.}.else.{.$versions[].=.$dep
4b500 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 61 20toOperatorMap[$op]...$this->pa
4b520 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 74 rseVersion($version);.}.}.}..ret
4b540 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 0a urn.implode(',',.$versions);.}..
4b560 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 73 ......private.function.parseVers
4b580 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 27 ion($version).{.if.(preg_match('
4b5a0 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 2e {^v?(\d{1,3})(\.\d+)?(\.\d+)?(\.
4b5c0 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 7b \d+)?}i',.$version,.$matches)).{
4b5e0 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 79 .$version.=.$matches[1]..(!empty
4b600 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 2e ($matches[2]).?.$matches[2].:.'.
4b620 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 74 0')..(!empty($matches[3]).?.$mat
4b640 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 65 ches[3].:.'.0')..(!empty($matche
4b660 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 65 s[4]).?.$matches[4].:.'.0');..re
4b680 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 7d turn.$version;.}..return.null;.}
4b6a0 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 28 ........private.function.isHash(
4b6c0 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 65 array.$array).{.return.!array_ke
4b6e0 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 65 y_exists(1,.$array).&&.!array_ke
4b700 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 0a y_exists(0,.$array);.}.}.<?php..
4b720 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
4b740 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 65 ository\Pear;.......class.Channe
4b760 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 24 lInfo.{.private.$name;.private.$
4b780 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 0a alias;.private.$packages;.......
4b7a0 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 6d public.function.__construct($nam
4b7c0 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 74 e,.$alias,.array.$packages).{.$t
4b7e0 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 20 his->name.=.$name;.$this->alias.
4b800 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 63 =.$alias;.$this->packages.=.$pac
4b820 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 67 kages;.}.......public.function.g
4b840 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 7d etName().{.return.$this->name;.}
4b860 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 28 .......public.function.getAlias(
4b880 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 0a ).{.return.$this->alias;.}......
4b8a0 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 7b .public.function.getPackages().{
4b8c0 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 70 .return.$this->packages;.}.}.<?p
4b8e0 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
4b900 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 5c \Repository\Pear;..use.Composer\
4b920 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 63 Util\RemoteFilesystem;.........c
4b940 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 43 lass.ChannelReader.extends.BaseC
4b960 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 4d hannelReader.{..private.$readerM
4b980 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 74 ap;..public.function.__construct
4b9a0 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 74 (RemoteFilesystem.$rfs).{.parent
4b9c0 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 61 ::__construct($rfs);..$rest10rea
4b9e0 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 72 der.=.new.ChannelRest10Reader($r
4ba00 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 6c fs);.$rest11reader.=.new.Channel
4ba20 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 64 Rest11Reader($rfs);..$this->read
4ba40 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 73 erMap.=.array(.'REST1.3'.=>.$res
4ba60 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 72 t11reader,.'REST1.2'.=>.$rest11r
4ba80 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 65 eader,.'REST1.1'.=>.$rest11reade
4baa0 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 29 r,.'REST1.0'.=>.$rest10reader,.)
4bac0 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 64 ;.}.........public.function.read
4bae0 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 6d ($url).{.$xml.=.$this->requestXm
4bb00 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 6e l($url,."/channel.xml");..$chann
4bb20 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 63 elName.=.(string).$xml->name;.$c
4bb40 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 73 hannelSummary.=.(string).$xml->s
4bb60 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 29 ummary;.$channelAlias.=.(string)
4bb80 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 74 .$xml->suggestedalias;..$support
4bba0 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 72 edVersions.=.array_keys($this->r
4bbc0 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 20 eaderMap);.$selectedRestVersion.
4bbe0 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 2c =.$this->selectRestVersion($xml,
4bc00 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 65 .$supportedVersions);.if.(!$sele
4bc20 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 6e ctedRestVersion).{.throw.new.\Un
4bc40 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 27 expectedValueException(sprintf('
4bc60 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 70 PEAR.repository.%s.does.not.supp
4bc80 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 6c orts.any.of.%s.protocols.',.$url
4bca0 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 6f ,.implode(',.',.$supportedVersio
4bcc0 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 65 ns)));.}..$reader.=.$this->reade
4bce0 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 69 rMap[$selectedRestVersion['versi
4bd00 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 65 on']];.$packageDefinitions.=.$re
4bd20 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 5b ader->read($selectedRestVersion[
4bd40 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 6c 'baseUrl']);..return.new.Channel
4bd60 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 73 Info($channelName,.$channelAlias
4bd80 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 0a ,.$packageDefinitions);.}.......
4bda0 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 72 ..private.function.selectRestVer
4bdc0 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 73 sion($channelXml,.$supportedVers
4bde0 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 61 ions).{.$channelXml->registerXPa
4be00 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 5f thNamespace('ns',.self::CHANNEL_
4be20 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 6e NS);..foreach.($supportedVersion
4be40 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 6e s.as.$version).{.$xpathTest.=."n
4be60 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 3a s:servers/ns:primary/ns:rest/ns:
4be80 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 74 baseurl[@type='{$version}']";.$t
4bea0 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 24 estResult.=.$channelXml->xpath($
4bec0 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 6c xpathTest);.if.(count($testResul
4bee0 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 27 t).>.0).{.return.array('version'
4bf00 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 69 .=>.$version,.'baseUrl'.=>.(stri
4bf20 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 6e ng).$testResult[0]);.}.}..return
4bf40 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 65 .null;.}.}.<?php............name
4bf60 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a space.Composer\Repository\Pear;.
4bf80 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 74 ......class.PackageInfo.{.privat
4bfa0 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 e.$channelName;.private.$package
4bfc0 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 20 Name;.private.$license;.private.
4bfe0 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 63 $shortDescription;.private.$desc
4c000 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 0a ription;.private.$releases;.....
4c020 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
4c040 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 69 ($channelName,.$packageName,.$li
4c060 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 72 cense,.$shortDescription,.$descr
4c080 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 6e iption,.$releases).{.$this->chan
4c0a0 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 70 nelName.=.$channelName;.$this->p
4c0c0 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 73 ackageName.=.$packageName;.$this
4c0e0 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 6f ->license.=.$license;.$this->sho
4c100 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 6f rtDescription.=.$shortDescriptio
4c120 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 70 n;.$this->description.=.$descrip
4c140 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 65 tion;.$this->releases.=.$release
4c160 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 6e s;.}.....public.function.getChan
4c180 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 65 nelName().{.return.$this->channe
4c1a0 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 74 lName;.}.....public.function.get
4c1c0 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 61 PackageName().{.return.$this->pa
4c1e0 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 6e ckageName;.}.....public.function
4c200 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 73 .getDescription().{.return.$this
4c220 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 63 ->description;.}.....public.func
4c240 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 74 tion.getShortDescription().{.ret
4c260 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 0a urn.$this->shortDescription;.}..
4c280 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 0a ...public.function.getLicense().
4c2a0 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 70 {.return.$this->license;.}.....p
4c2c0 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 72 ublic.function.getReleases().{.r
4c2e0 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 70 eturn.$this->releases;.}.}.<?php
4c300 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
4c320 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 65 epository\Pear;.......class.Depe
4c340 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 65 ndencyConstraint.{.private.$type
4c360 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 24 ;.private.$constraint;.private.$
4c380 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 6d channelName;.private.$packageNam
4c3a0 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
4c3c0 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 6e truct($type,.$constraint,.$chann
4c3e0 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 74 elName,.$packageName).{.$this->t
4c400 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 3d ype.=.$type;.$this->constraint.=
4c420 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 65 .$constraint;.$this->channelName
4c440 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 4e .=.$channelName;.$this->packageN
4c460 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 75 ame.=.$packageName;.}..public.fu
4c480 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 6e nction.getChannelName().{.return
4c4a0 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 66 .$this->channelName;.}..public.f
4c4c0 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 6e unction.getConstraint().{.return
4c4e0 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 75 .$this->constraint;.}..public.fu
4c500 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 6e nction.getPackageName().{.return
4c520 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 66 .$this->packageName;.}..public.f
4c540 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 73 unction.getType().{.return.$this
4c560 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 6d ->type;.}.}.<?php............nam
4c580 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;
4c5a0 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 65 ...........class.ChannelRest11Re
4c5c0 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 7b ader.extends.BaseChannelReader.{
4c5e0 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 62 .private.$dependencyReader;..pub
4c600 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 7b lic.function.__construct($rfs).{
4c620 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 68 .parent::__construct($rfs);..$th
4c640 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 61 is->dependencyReader.=.new.Packa
4c660 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 0a geDependencyParser();.}.........
4c680 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 7b public.function.read($baseUrl).{
4c6a0 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 67 .return.$this->readChannelPackag
4c6c0 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 20 es($baseUrl);.}.........private.
4c6e0 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 61 function.readChannelPackages($ba
4c700 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 6d seUrl).{.$result.=.array();..$xm
4c720 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 20 l.=.$this->requestXml($baseUrl,.
4c740 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 69 "/c/categories.xml");.$xml->regi
4c760 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 41 sterXPathNamespace('ns',.self::A
4c780 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 6c LL_CATEGORIES_NS);.foreach.($xml
4c7a0 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 74 ->xpath('ns:c').as.$node).{.$cat
4c7c0 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 74 egoryName.=.(string).$node;.$cat
4c7e0 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 67 egoryPackages.=.$this->readCateg
4c800 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 4e oryPackages($baseUrl,.$categoryN
4c820 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 73 ame);.$result.=.array_merge($res
4c840 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 75 ult,.$categoryPackages);.}..retu
4c860 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 66 rn.$result;.}..........private.f
4c880 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 61 unction.readCategoryPackages($ba
4c8a0 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 20 seUrl,.$categoryName).{.$result.
4c8c0 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 2f =.array();..$categoryPath.=.'/c/
4c8e0 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 63 '.urlencode($categoryName).'/pac
4c900 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 65 kagesinfo.xml';.$xml.=.$this->re
4c920 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 68 questXml($baseUrl,.$categoryPath
4c940 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 28 );.$xml->registerXPathNamespace(
4c960 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 4e 'ns',.self::CATEGORY_PACKAGES_IN
4c980 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 73 FO_NS);.foreach.($xml->xpath('ns
4c9a0 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 3d :pi').as.$node).{.$packageInfo.=
4c9c0 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 65 .$this->parsePackage($node);.$re
4c9e0 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 6e sult[].=.$packageInfo;.}..return
4ca00 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 74 .$result;.}........private.funct
4ca20 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 7b ion.parsePackage($packageInfo).{
4ca40 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 65 .$packageInfo->registerXPathName
4ca60 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 41 space('ns',.self::CATEGORY_PACKA
4ca80 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 74 GES_INFO_NS);.$channelName.=.(st
4caa0 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 61 ring).$packageInfo->p->c;.$packa
4cac0 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 3e geName.=.(string).$packageInfo->
4cae0 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 61 p->n;.$license.=.(string).$packa
4cb00 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 20 geInfo->p->l;.$shortDescription.
4cb20 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 24 =.(string).$packageInfo->p->s;.$
4cb40 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 49 description.=.(string).$packageI
4cb60 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 61 nfo->p->d;..$dependencies.=.arra
4cb80 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 74 y();.foreach.($packageInfo->xpat
4cba0 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 64 h('ns:deps').as.$node).{.$depend
4cbc0 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 3b encyVersion.=.(string).$node->v;
4cbe0 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 28 .$dependencyArray.=.unserialize(
4cc00 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 79 (string).$node->d);..$dependency
4cc20 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 3e Info.=.$this->dependencyReader->
4cc40 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
4cc60 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 63 rray);..$dependencies[$dependenc
4cc80 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 0a yVersion].=.$dependencyInfo;.}..
4cca0 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 6e $releases.=.array();.$releasesIn
4ccc0 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 6e fo.=.$packageInfo->xpath('ns:a/n
4cce0 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 65 s:r');.if.($releasesInfo).{.fore
4cd00 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 24 ach.($releasesInfo.as.$node).{.$
4cd20 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d releaseVersion.=.(string).$node-
4cd40 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 >v;.$releaseStability.=.(string)
4cd60 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 72 .$node->s;.$releases[$releaseVer
4cd80 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 73 sion].=.new.ReleaseInfo(.$releas
4cda0 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 5b eStability,.isset($dependencies[
4cdc0 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 65 $releaseVersion]).?.$dependencie
4cde0 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 65 s[$releaseVersion].:.new.Depende
4ce00 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 7d ncyInfo(array(),.array()).);.}.}
4ce20 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 6e ..return.new.PackageInfo(.$chann
4ce40 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 0a elName,.$packageName,.$license,.
4ce60 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 2c $shortDescription,.$description,
4ce80 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 0a .$releases.);.}.}.<?php.........
4cea0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ...namespace.Composer\Repository
4cec0 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 7b \Pear;.......class.ReleaseInfo.{
4cee0 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 65 .private.$stability;.private.$de
4cf00 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 69 pendencyInfo;......public.functi
4cf20 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 65 on.__construct($stability,.$depe
4cf40 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 3d ndencyInfo).{.$this->stability.=
4cf60 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 6e .$stability;.$this->dependencyIn
4cf80 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 6c fo.=.$dependencyInfo;.}.....publ
4cfa0 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 0a ic.function.getDependencyInfo().
4cfc0 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 0a {.return.$this->dependencyInfo;.
4cfe0 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 69 }.....public.function.getStabili
4d000 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 0a ty().{.return.$this->stability;.
4d020 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
4d040 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 6f omposer\Repository\Pear;..use.Co
4d060 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a mposer\Util\RemoteFilesystem;...
4d080 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 6c ......abstract.class.BaseChannel
4d0a0 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 27 Reader.{....const.CHANNEL_NS.=.'
4d0c0 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 27 http://pear.php.net/channel-1.0'
4d0e0 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 74 ;.const.ALL_CATEGORIES_NS.=.'htt
4d100 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 74 p://pear.php.net/dtd/rest.allcat
4d120 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 45 egories';.const.CATEGORY_PACKAGE
4d140 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 74 S_INFO_NS.=.'http://pear.php.net
4d160 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 0a /dtd/rest.categorypackageinfo';.
4d180 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 2f const.ALL_PACKAGES_NS.=.'http://
4d1a0 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 65 pear.php.net/dtd/rest.allpackage
4d1c0 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 74 s';.const.ALL_RELEASES_NS.=.'htt
4d1e0 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 6c p://pear.php.net/dtd/rest.allrel
4d200 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 20 eases';.const.PACKAGE_INFO_NS.=.
4d220 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 61 'http://pear.php.net/dtd/rest.pa
4d240 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 74 ckage';...private.$rfs;..protect
4d260 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 69 ed.function.__construct(RemoteFi
4d280 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 72 lesystem.$rfs).{.$this->rfs.=.$r
4d2a0 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 6f fs;.}..........protected.functio
4d2c0 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 29 n.requestContent($origin,.$path)
4d2e0 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 20 .{.$url.=.rtrim($origin,.'/')...
4d300 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 6e '/'...ltrim($path,.'/');.$conten
4d320 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 69 t.=.$this->rfs->getContents($ori
4d340 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 74 gin,.$url,.false);.if.(!$content
4d360 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
4d380 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 2e ception('The.PEAR.channel.at.'..
4d3a0 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 0a .$url...'.did.not.respond.');.}.
4d3c0 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 6f .return.$content;.}..........pro
4d3e0 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 67 tected.function.requestXml($orig
4d400 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 5f in,.$path).{...$xml.=.simplexml_
4d420 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 6e load_string($this->requestConten
4d440 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 65 t($origin,.$path),."SimpleXMLEle
4d460 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 6c ment",.LIBXML_NOERROR);..if.(fal
4d480 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 67 se.==.$xml).{.$url.=.rtrim($orig
4d4a0 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 2f in,.'/')...'/'...ltrim($path,.'/
4d4c0 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 78 ');.throw.new.\UnexpectedValueEx
4d4e0 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 65 ception(sprintf('The.PEAR.channe
4d500 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 20 l.at.'...$origin...'.is.broken..
4d520 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 61 (Invalid.XML.at.file.`%s`)',.$pa
4d540 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 0a th));.}..return.$xml;.}.}.<?php.
4d560 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
4d580 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 77 pository\Pear;..use.Composer\Dow
4d5a0 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;.....
4d5c0 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 65 ........class.ChannelRest10Reade
4d5e0 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 72 r.extends.BaseChannelReader.{.pr
4d600 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 63 ivate.$dependencyReader;..public
4d620 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 61 .function.__construct($rfs).{.pa
4d640 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 2d rent::__construct($rfs);..$this-
4d660 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 44 >dependencyReader.=.new.PackageD
4d680 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 62 ependencyParser();.}.........pub
4d6a0 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 65 lic.function.read($baseUrl).{.re
4d6c0 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 72 turn.$this->readPackages($baseUr
4d6e0 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 72 l);.}.........private.function.r
4d700 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 20 eadPackages($baseUrl).{.$result.
4d720 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 61 =.array();..$xmlPath.=.'/p/packa
4d740 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 58 ges.xml';.$xml.=.$this->requestX
4d760 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 65 ml($baseUrl,.$xmlPath);.$xml->re
4d780 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 3a gisterXPathNamespace('ns',.self:
4d7a0 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 6c :ALL_PACKAGES_NS);.foreach.($xml
4d7c0 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 63 ->xpath('ns:p').as.$node).{.$pac
4d7e0 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 6b kageName.=.(string).$node;.$pack
4d800 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 61 ageInfo.=.$this->readPackage($ba
4d820 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 20 seUrl,.$packageName);.$result[].
4d840 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 6c =.$packageInfo;.}..return.$resul
4d860 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 72 t;.}..........private.function.r
4d880 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 6d eadPackage($baseUrl,.$packageNam
4d8a0 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 77 e).{.$xmlPath.=.'/p/'...strtolow
4d8c0 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 0a er($packageName)...'/info.xml';.
4d8e0 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 $xml.=.$this->requestXml($baseUr
4d900 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 74 l,.$xmlPath);.$xml->registerXPat
4d920 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 49 hNamespace('ns',.self::PACKAGE_I
4d940 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 67 NFO_NS);..$channelName.=.(string
4d960 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 6e ).$xml->c;.$packageName.=.(strin
4d980 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 20 g).$xml->n;.$license.=.(string).
4d9a0 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 74 $xml->l;.$shortDescription.=.(st
4d9c0 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 73 ring).$xml->s;.$description.=.(s
4d9e0 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 6b tring).$xml->d;..return.new.Pack
4da00 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 4e ageInfo(.$channelName,.$packageN
4da20 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 6e ame,.$license,.$shortDescription
4da40 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 61 ,.$description,.$this->readPacka
4da60 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 6d geReleases($baseUrl,.$packageNam
4da80 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 69 e).);.}...........private.functi
4daa0 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c on.readPackageReleases($baseUrl,
4dac0 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 .$packageName).{.$result.=.array
4dae0 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 ();..try.{.$xmlPath.=.'/r/'...st
4db00 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 61 6c 6c 72 65 rtolower($packageName)...'/allre
4db20 6c 65 61 73 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 leases.xml';.$xml.=.$this->reque
4db40 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d stXml($baseUrl,.$xmlPath);.$xml-
4db60 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 >registerXPathNamespace('ns',.se
4db80 6c 66 3a 3a 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 lf::ALL_RELEASES_NS);.foreach.($
4dba0 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 72 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 xml->xpath('ns:r').as.$node).{.$
4dbc0 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d releaseVersion.=.(string).$node-
4dbe0 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 >v;.$releaseStability.=.(string)
4dc00 20 24 6e 6f 64 65 2d 3e 73 3b 0a 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c 74 5b 24 72 65 6c 65 61 .$node->s;..try.{.$result[$relea
4dc20 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 seVersion].=.new.ReleaseInfo(.$r
4dc40 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b eleaseStability,.$this->readPack
4dc60 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c ageReleaseDependencies($baseUrl,
4dc80 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 29 0a .$packageName,.$releaseVersion).
4dca0 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.$
4dcc0 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 exception).{.if.($exception->get
4dce0 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f Code().!=.404).{.throw.$exceptio
4dd00 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 n;.}.}.}.}.catch.(TransportExcep
4dd20 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f tion.$exception).{.if.($exceptio
4dd40 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 n->getCode().!=.404).{.throw.$ex
4dd60 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a ception;.}.}..return.$result;.}.
4dd80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 ..........private.function.readP
4dda0 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 ackageReleaseDependencies($baseU
4ddc0 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 64 rl,.$packageName,.$version).{.$d
4dde0 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 ependencyReader.=.new.PackageDep
4de00 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 0a 24 64 65 70 74 68 50 61 74 68 20 3d 20 27 endencyParser();..$depthPath.=.'
4de20 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 /r/'...strtolower($packageName).
4de40 2e 20 27 2f 64 65 70 73 2e 27 20 2e 20 24 76 65 72 73 69 6f 6e 20 2e 20 27 2e 74 78 74 27 3b 0a ..'/deps.'...$version...'.txt';.
4de60 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 $content.=.$this->requestContent
4de80 28 24 62 61 73 65 55 72 6c 2c 20 24 64 65 70 74 68 50 61 74 68 29 3b 0a 24 64 65 70 65 6e 64 65 ($baseUrl,.$depthPath);.$depende
4dea0 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 24 63 6f 6e 74 65 6e 74 29 ncyArray.=.unserialize($content)
4dec0 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 ;.$result.=.$dependencyReader->b
4dee0 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 uildDependencyInfo($dependencyAr
4df00 72 61 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ray);..return.$result;.}.}.<?php
4df20 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
4df40 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 epository;..use.Composer\Package
4df60 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 72 \PackageInterface;.........inter
4df80 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 73 face.RepositoryInterface.extends
4dfa0 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 54 .\Countable.{.const.SEARCH_FULLT
4dfc0 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 0a EXT.=.0;.const.SEARCH_NAME.=.1;.
4dfe0 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 61 ........public.function.hasPacka
4e000 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 0a ge(PackageInterface.$package);..
4e020 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 6b ........public.function.findPack
4e040 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 70 age($name,.$version);..........p
4e060 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 6d ublic.function.findPackages($nam
4e080 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 69 e,.$version.=.null);.......publi
4e0a0 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 0a c.function.getPackages();.......
4e0c0 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 2c ..public.function.search($query,
4e0e0 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 0a .$mode.=.0);.}.<?php............
4e100 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 0a namespace.Composer\Repository;..
4e120 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 65 use.Composer\IO\IOInterface;.use
4e140 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d .Composer\Json\JsonFile;.use.Com
4e160 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 poser\Package\Loader\ArrayLoader
4e180 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 65 ;.....class.ArtifactRepository.e
4e1a0 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 63 xtends.ArrayRepository.{..protec
4e1c0 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 3b ted.$loader;..protected.$lookup;
4e1e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 ..public.function.__construct(ar
4e200 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f ray.$repoConfig,.IOInterface.$io
4e220 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 29 ).{.if.(!extension_loaded('zip')
4e240 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(
4e260 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 65 'The.artifact.repository.require
4e280 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 68 s.PHP\'s.zip.extension');.}..$th
4e2a0 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 0a is->loader.=.new.ArrayLoader();.
4e2c0 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 6c $this->lookup.=.$repoConfig['url
4e2e0 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 65 '];.$this->io.=.$io;.}..protecte
4e300 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 74 d.function.initialize().{.parent
4e320 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 65 ::initialize();..$this->scanDire
4e340 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 65 ctory($this->lookup);.}..private
4e360 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 7b .function.scanDirectory($path).{
4e380 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 20 .$io.=.$this->io;..$directory.=.
4e3a0 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 28 new.\RecursiveDirectoryIterator(
4e3c0 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 69 $path);.$iterator.=.new.\Recursi
4e3e0 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 0a veIteratorIterator($directory);.
4e400 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 65 $regex.=.new.\RegexIterator($ite
4e420 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 66 rator,.'/^.+\.(zip|phar)$/i');.f
4e440 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 28 oreach.($regex.as.$file).{..if.(
4e460 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 0a !$file->isFile()).{.continue;.}.
4e480 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 6e .$package.=.$this->getComposerIn
4e4a0 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 29 formation($file);.if.(!$package)
4e4c0 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 3e .{.if.($io->isVerbose()).{.$io->
4e4e0 77 72 69 74 65 45 72 72 6f 72 28 22 46 69 6c 65 20 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 66 69 6c 65 writeError("File.<comment>{$file
4e500 2d 3e 67 65 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 ->getBasename()}</comment>.doesn
4e520 27 74 20 73 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 't.seem.to.hold.a.package");.}.c
4e540 6f 6e 74 69 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 ontinue;.}..if.($io->isVerbose()
4e560 29 20 7b 0a 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 ).{.$template.=.'Found.package.<
4e580 69 6e 66 6f 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 info>%s</info>.(<comment>%s</com
4e5a0 6d 65 6e 74 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 ment>).in.file.<info>%s</info>';
4e5c0 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 .$io->writeError(sprintf($templa
4e5e0 74 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 te,.$package->getName(),.$packag
4e600 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 66 69 6c 65 2d 3e 67 65 e->getPrettyVersion(),.$file->ge
4e620 74 42 61 73 65 6e 61 6d 65 28 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b tBasename()));.}..$this->addPack
4e640 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 age($package);.}.}.........priva
4e660 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 61 74 65 46 69 6c 65 28 5c 5a 69 70 41 72 63 68 69 te.function.locateFile(\ZipArchi
4e680 76 65 20 24 7a 69 70 2c 20 24 66 69 6c 65 6e 61 6d 65 29 0a 7b 0a 24 69 6e 64 65 78 4f 66 53 68 ve.$zip,.$filename).{.$indexOfSh
4e6a0 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 6c 65 6e 67 74 68 4f 66 53 68 ortestMatch.=.false;.$lengthOfSh
4e6c0 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 20 2d 31 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 ortestMatch.=.-1;..for.($i.=.0;.
4e6e0 24 69 20 3c 20 24 7a 69 70 2d 3e 6e 75 6d 46 69 6c 65 73 3b 20 24 69 2b 2b 29 20 7b 0a 24 73 74 $i.<.$zip->numFiles;.$i++).{.$st
4e700 61 74 20 3d 20 24 7a 69 70 2d 3e 73 74 61 74 49 6e 64 65 78 28 24 69 29 3b 0a 69 66 20 28 73 74 at.=.$zip->statIndex($i);.if.(st
4e720 72 63 6d 70 28 62 61 73 65 6e 61 6d 65 28 24 73 74 61 74 5b 27 6e 61 6d 65 27 5d 29 2c 20 24 66 rcmp(basename($stat['name']),.$f
4e740 69 6c 65 6e 61 6d 65 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 64 69 72 65 63 74 6f 72 79 4e 61 6d 65 ilename).===.0).{.$directoryName
4e760 20 3d 20 64 69 72 6e 61 6d 65 28 24 73 74 61 74 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 24 .=.dirname($stat['name']);.if.($
4e780 64 69 72 65 63 74 6f 72 79 4e 61 6d 65 20 3d 3d 20 27 2e 27 29 20 7b 0a 0a 20 0a 20 72 65 74 75 directoryName.==.'.').{.....retu
4e7a0 72 6e 20 24 69 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 64 69 72 65 63 74 6f 72 79 4e rn.$i;.}..if.(strpos($directoryN
4e7c0 61 6d 65 2c 20 27 5c 5c 27 29 20 21 3d 3d 20 66 61 6c 73 65 20 7c 7c 0a 73 74 72 70 6f 73 28 24 ame,.'\\').!==.false.||.strpos($
4e7e0 64 69 72 65 63 74 6f 72 79 4e 61 6d 65 2c 20 27 2f 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b directoryName,.'/').!==.false).{
4e800 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e ...continue;.}..$length.=.strlen
4e820 28 24 73 74 61 74 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 4f 66 53 68 6f ($stat['name']);.if.($indexOfSho
4e840 72 74 65 73 74 4d 61 74 63 68 20 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 24 6c 65 6e 67 74 68 20 3c rtestMatch.==.false.||.$length.<
4e860 20 24 6c 65 6e 67 74 68 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 29 20 7b 0a 0a 20 24 63 6f .$lengthOfShortestMatch).{...$co
4e880 6e 74 65 6e 74 73 20 3d 20 24 7a 69 70 2d 3e 67 65 74 46 72 6f 6d 49 6e 64 65 78 28 24 69 29 3b ntents.=.$zip->getFromIndex($i);
4e8a0 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 73 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 64 .if.($contents.!==.false).{.$ind
4e8c0 65 78 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 20 24 69 3b 0a 24 6c 65 6e 67 74 68 4f exOfShortestMatch.=.$i;.$lengthO
4e8e0 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 20 24 6c 65 6e 67 74 68 3b 0a 7d 0a 7d 0a 7d 0a fShortestMatch.=.$length;.}.}.}.
4e900 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 64 65 78 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 3b }..return.$indexOfShortestMatch;
4e920 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 6f 6d 70 6f 73 65 72 .}..private.function.getComposer
4e940 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 24 66 69 6c 65 29 0a Information(\SplFileInfo.$file).
4e960 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 29 3b 0a 24 7a 69 70 {.$zip.=.new.\ZipArchive();.$zip
4e980 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 28 29 29 3b 0a 0a 69 ->open($file->getPathname());..i
4e9a0 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 0a 72 65 74 75 72 6e f.(0.==.$zip->numFiles).{.return
4e9c0 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 78 20 3d 20 24 74 68 .false;.}..$foundFileIndex.=.$th
4e9e0 69 73 2d 3e 6c 6f 63 61 74 65 46 69 6c 65 28 24 7a 69 70 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a is->locateFile($zip,.'composer.j
4ea00 73 6f 6e 27 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 66 6f 75 6e 64 46 69 6c 65 49 son');.if.(false.===.$foundFileI
4ea20 6e 64 65 78 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 ndex).{.return.false;.}..$config
4ea40 75 72 61 74 69 6f 6e 46 69 6c 65 4e 61 6d 65 20 3d 20 24 7a 69 70 2d 3e 67 65 74 4e 61 6d 65 49 urationFileName.=.$zip->getNameI
4ea60 6e 64 65 78 28 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 65 78 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 ndex($foundFileIndex);..$compose
4ea80 72 46 69 6c 65 20 3d 20 22 7a 69 70 3a 2f 2f 7b 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 rFile.=."zip://{$file->getPathna
4eaa0 6d 65 28 29 7d 23 24 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 46 69 6c 65 4e 61 6d 65 22 3b 0a 24 me()}#$configurationFileName";.$
4eac0 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6f 6d 70 6f 73 json.=.file_get_contents($compos
4eae0 65 72 46 69 6c 65 29 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 erFile);..$package.=.JsonFile::p
4eb00 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a arseJson($json,.$composerFile);.
4eb20 24 70 61 63 6b 61 67 65 5b 27 64 69 73 74 27 5d 20 3d 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 $package['dist'].=.array(.'type'
4eb40 20 3d 3e 20 27 7a 69 70 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 74 50 61 .=>.'zip',.'url'.=>.$file->getPa
4eb60 74 68 6e 61 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 thname(),.'shasum'.=>.sha1_file(
4eb80 24 66 69 6c 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 $file->getRealPath()).);..$packa
4eba0 67 65 20 3d 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 ge.=.$this->loader->load($packag
4ebc0 65 29 3b 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 68 70 0a e);..return.$package;.}.}.<?php.
4ebe0 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
4ec00 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c pository;..use.Composer\Package\
4ec20 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 6d 70 6f 73 65 72 Loader\ArrayLoader;.use.Composer
4ec40 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 41 72 72 61 79 4c \Package\Loader\ValidatingArrayL
4ec60 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 52 65 70 6f 73 69 oader;.......class.PackageReposi
4ec80 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 tory.extends.ArrayRepository.{.p
4eca0 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rivate.$config;.......public.fun
4ecc0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 ction.__construct(array.$config)
4ece0 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 5b 27 70 61 63 6b .{.$this->config.=.$config['pack
4ed00 61 67 65 27 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 74 age'];....if.(!is_numeric(key($t
4ed20 68 69 73 2d 3e 63 6f 6e 66 69 67 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d his->config))).{.$this->config.=
4ed40 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 .array($this->config);.}.}.....p
4ed60 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b rotected.function.initialize().{
4ed80 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 6c 6f 61 64 65 72 20 .parent::initialize();..$loader.
4eda0 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 77 20 =.new.ValidatingArrayLoader(new.
4edc0 41 72 72 61 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 ArrayLoader,.false);.foreach.($t
4ede0 68 69 73 2d 3e 63 6f 6e 66 69 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 72 79 20 7b his->config.as.$package).{.try.{
4ee00 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 .$package.=.$loader->load($packa
4ee20 67 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 ge);.}.catch.(\Exception.$e).{.t
4ee40 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 45 78 63 65 70 74 hrow.new.InvalidRepositoryExcept
4ee60 69 6f 6e 28 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 ion('A.repository.of.type."packa
4ee80 67 65 22 20 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 ge".contains.an.invalid.package.
4eea0 64 65 66 69 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 definition:.'.$e->getMessage()."
4eec0 5c 6e 5c 6e 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 \n\nInvalid.package.definition:\
4eee0 6e 22 2e 6a 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 n".json_encode($package));.}..$t
4ef00 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d his->addPackage($package);.}.}.}
4ef20 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
4ef40 6f 73 65 72 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 oser\Package;.......class.Comple
4ef60 74 65 50 61 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 tePackage.extends.Package.implem
4ef80 65 6e 74 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a ents.CompletePackageInterface.{.
4efa0 70 72 6f 74 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 protected.$repositories;.protect
4efc0 65 64 20 24 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 ed.$license.=.array();.protected
4efe0 20 24 6b 65 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 73 3b 0a .$keywords;.protected.$authors;.
4f000 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 protected.$description;.protecte
4f020 64 20 24 68 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 d.$homepage;.protected.$scripts.
4f040 3d 20 61 72 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 =.array();.protected.$support.=.
4f060 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 62 61 6e 64 6f 6e 65 64 20 3d 20 array();.protected.$abandoned.=.
4f080 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 63 false;.....public.function.setSc
4f0a0 72 69 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 ripts(array.$scripts).{.$this->s
4f0c0 63 72 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 cripts.=.$scripts;.}.....public.
4f0e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.getScripts().{.return.$
4f100 74 68 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 this->scripts;.}.......public.fu
4f120 6e 63 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 nction.setRepositories($reposito
4f140 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 ries).{.$this->repositories.=.$r
4f160 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 epositories;.}.....public.functi
4f180 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 on.getRepositories().{.return.$t
4f1a0 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 his->repositories;.}.......publi
4f1c0 63 20 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 c.function.setLicense(array.$lic
4f1e0 65 6e 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 ense).{.$this->license.=.$licens
4f200 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 4c 69 63 65 e;.}.....public.function.getLice
4f220 6e 73 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 nse().{.return.$this->license;.}
4f240 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 4b 65 79 77 6f 72 .......public.function.setKeywor
4f260 64 73 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 ds(array.$keywords).{.$this->key
4f280 77 6f 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 words.=.$keywords;.}.....public.
4f2a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.getKeywords().{.return.
4f2c0 24 74 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 $this->keywords;.}.......public.
4f2e0 66 75 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 function.setAuthors(array.$autho
4f300 72 73 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 rs).{.$this->authors.=.$authors;
4f320 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 .}.....public.function.getAuthor
4f340 73 28 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 s().{.return.$this->authors;.}..
4f360 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 63 72 69 70 74 .....public.function.setDescript
4f380 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 64 65 73 63 72 ion($description).{.$this->descr
4f3a0 69 70 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 iption.=.$description;.}.....pub
4f3c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a lic.function.getDescription().{.
4f3e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a return.$this->description;.}....
4f400 0a 0a 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 ...public.function.setHomepage($
4f420 68 6f 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 homepage).{.$this->homepage.=.$h
4f440 6f 6d 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 omepage;.}.....public.function.g
4f460 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 6d etHomepage().{.return.$this->hom
4f480 65 70 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 epage;.}.......public.function.s
4f4a0 65 74 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 etSupport(array.$support).{.$thi
4f4c0 73 2d 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 s->support.=.$support;.}.....pub
4f4e0 6c 69 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 lic.function.getSupport().{.retu
4f500 72 6e 20 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$this->support;.}.....public.
4f520 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.isAbandoned().{.return.
4f540 28 62 6f 6f 6c 65 61 6e 29 20 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 3b 0a 7d 0a 0a 0a (boolean).$this->abandoned;.}...
4f560 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 62 61 6e 64 6f 6e 65 64 28 24 ..public.function.setAbandoned($
4f580 61 62 61 6e 64 6f 6e 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 20 3d 20 abandoned).{.$this->abandoned.=.
4f5a0 24 61 62 61 6e 64 6f 6e 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $abandoned;.}.......public.funct
4f5c0 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 ion.getReplacementPackage().{.re
4f5e0 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 29 turn.is_string($this->abandoned)
4f600 20 3f 20 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a .?.$this->abandoned.:.null;.}.}.
4f620 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
4f640 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ser\Package\Dumper;..use.Compose
4f660 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f r\Package\BasePackage;.use.Compo
4f680 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 73 ser\Package\PackageInterface;.us
4f6a0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 e.Composer\Package\CompletePacka
4f6c0 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
4f6e0 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 e\RootPackageInterface;......cla
4f700 73 73 20 41 72 72 61 79 44 75 6d 70 65 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ss.ArrayDumper.{.public.function
4f720 20 64 75 6d 70 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 .dump(PackageInterface.$package)
4f740 0a 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 62 69 6e 61 72 69 65 73 27 20 3d 3e 20 .{.$keys.=.array(.'binaries'.=>.
4f760 27 62 69 6e 27 2c 0a 27 74 79 70 65 27 2c 0a 27 65 78 74 72 61 27 2c 0a 27 69 6e 73 74 61 6c 6c 'bin',.'type',.'extra',.'install
4f780 61 74 69 6f 6e 53 6f 75 72 63 65 27 20 3d 3e 20 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f ationSource'.=>.'installation-so
4f7a0 75 72 63 65 27 2c 0a 27 61 75 74 6f 6c 6f 61 64 27 2c 0a 27 64 65 76 41 75 74 6f 6c 6f 61 64 27 urce',.'autoload',.'devAutoload'
4f7c0 20 3d 3e 20 27 61 75 74 6f 6c 6f 61 64 2d 64 65 76 27 2c 0a 27 6e 6f 74 69 66 69 63 61 74 69 6f .=>.'autoload-dev',.'notificatio
4f7e0 6e 55 72 6c 27 20 3d 3e 20 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 2c 0a 27 69 6e nUrl'.=>.'notification-url',.'in
4f800 63 6c 75 64 65 50 61 74 68 73 27 20 3d 3e 20 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a 29 cludePaths'.=>.'include-path',.)
4f820 3b 0a 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 61 74 61 5b 27 6e 61 6d 65 27 ;..$data.=.array();.$data['name'
4f840 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 ].=.$package->getPrettyName();.$
4f860 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 data['version'].=.$package->getP
4f880 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e rettyVersion();.$data['version_n
4f8a0 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 ormalized'].=.$package->getVersi
4f8c0 6f 6e 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 on();..if.($package->getTargetDi
4f8e0 72 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 20 3d 20 24 70 61 r()).{.$data['target-dir'].=.$pa
4f900 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 ckage->getTargetDir();.}..if.($p
4f920 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 ackage->getSourceType()).{.$data
4f940 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 ['source']['type'].=.$package->g
4f960 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b etSourceType();.$data['source'][
4f980 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 'url'].=.$package->getSourceUrl(
4f9a0 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 );.$data['source']['reference'].
4f9c0 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()
4f9e0 3b 0a 69 66 20 28 24 6d 69 72 72 6f 72 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f ;.if.($mirrors.=.$package->getSo
4fa00 75 72 63 65 4d 69 72 72 6f 72 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d urceMirrors()).{.$data['source']
4fa20 5b 27 6d 69 72 72 6f 72 73 27 5d 20 3d 20 24 6d 69 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 ['mirrors'].=.$mirrors;.}.}..if.
4fa40 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 ($package->getDistType()).{.$dat
4fa60 61 5b 27 64 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 a['dist']['type'].=.$package->ge
4fa80 74 44 69 73 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 tDistType();.$data['dist']['url'
4faa0 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 24 64 61 74 ].=.$package->getDistUrl();.$dat
4fac0 61 5b 27 64 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 a['dist']['reference'].=.$packag
4fae0 65 2d 3e 67 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 e->getDistReference();.$data['di
4fb00 73 74 27 5d 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 st']['shasum'].=.$package->getDi
4fb20 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 69 66 20 28 24 6d 69 72 72 6f 72 73 20 3d stSha1Checksum();.if.($mirrors.=
4fb40 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 29 20 7b 0a 24 .$package->getDistMirrors()).{.$
4fb60 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 20 3d 20 24 6d 69 72 72 6f data['dist']['mirrors'].=.$mirro
4fb80 72 73 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 72 63 68 69 76 rs;.}.}..if.($package->getArchiv
4fba0 65 45 78 63 6c 75 64 65 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 61 72 63 68 69 76 65 27 5d 5b eExcludes()).{.$data['archive'][
4fbc0 27 65 78 63 6c 75 64 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 72 63 68 69 76 'exclude'].=.$package->getArchiv
4fbe0 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 63 eExcludes();.}..foreach.(BasePac
4fc00 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 74 79 kage::$supportedLinkTypes.as.$ty
4fc20 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 pe.=>.$opts).{.if.($links.=.$pac
4fc40 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 kage->{'get'.ucfirst($opts['meth
4fc60 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 od'])}()).{.foreach.($links.as.$
4fc80 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 79 70 65 5d 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 link).{.$data[$type][$link->getT
4fca0 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 43 6f 6e 73 74 arget()].=.$link->getPrettyConst
4fcc0 72 61 69 6e 74 28 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 64 61 74 61 5b 24 74 79 70 65 5d 29 3b 0a raint();.}.ksort($data[$type]);.
4fce0 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 }.}..if.($packages.=.$package->g
4fd00 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 etSuggests()).{.ksort($packages)
4fd20 3b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a ;.$data['suggest'].=.$packages;.
4fd40 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 }..if.($package->getReleaseDate(
4fd60 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 )).{.$data['time'].=.$package->g
4fd80 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 etReleaseDate()->format('Y-m-d.H
4fda0 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 56 61 :i:s');.}..$data.=.$this->dumpVa
4fdc0 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 61 29 3b 0a 0a 69 lues($package,.$keys,.$data);..i
4fde0 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 f.($package.instanceof.CompleteP
4fe00 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 ackageInterface).{.$keys.=.array
4fe20 28 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 6c 69 63 65 6e 73 65 27 2c 0a 27 61 75 74 68 6f 72 73 (.'scripts',.'license',.'authors
4fe40 27 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 0a 27 68 6f 6d 65 70 61 67 65 27 2c 0a 27 6b ',.'description',.'homepage',.'k
4fe60 65 79 77 6f 72 64 73 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 0a 27 73 75 70 70 6f eywords',.'repositories',.'suppo
4fe80 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 56 61 6c 75 rt',.);..$data.=.$this->dumpValu
4fea0 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 24 64 61 74 61 29 3b 0a 0a 69 66 20 es($package,.$keys,.$data);..if.
4fec0 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 69 73 5f (isset($data['keywords']).&&.is_
4fee0 61 72 72 61 79 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 73 6f 72 74 array($data['keywords'])).{.sort
4ff00 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 ($data['keywords']);.}..if.($pac
4ff20 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 61 62 kage->isAbandoned()).{.$data['ab
4ff40 61 6e 64 6f 6e 65 64 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 andoned'].=.$package->getReplace
4ff60 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 20 3f 3a 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 mentPackage().?:.true;.}.}..if.(
4ff80 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 61 67 65 49 $package.instanceof.RootPackageI
4ffa0 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 69 74 79 20 3d 20 nterface).{.$minimumStability.=.
4ffc0 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 69 74 79 28 29 3b $package->getMinimumStability();
4ffe0 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 24 64 61 74 61 5b .if.($minimumStability).{.$data[
50000 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 6e 69 6d 75 6d 53 'minimum-stability'].=.$minimumS
50020 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 63 6b 61 67 tability;.}.}..if.(count($packag
50040 65 2d 3e 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 29 20 3e 20 30 29 20 7b e->getTransportOptions()).>.0).{
50060 0a 24 64 61 74 61 5b 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 5d 20 3d 20 24 70 .$data['transport-options'].=.$p
50080 61 63 6b 61 67 65 2d 3e 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 7d ackage->getTransportOptions();.}
500a0 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 ..return.$data;.}..private.funct
500c0 69 6f 6e 20 64 75 6d 70 56 61 6c 75 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ion.dumpValues(PackageInterface.
500e0 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 6b 65 79 73 2c 20 61 72 72 61 79 20 24 64 61 $package,.array.$keys,.array.$da
50100 74 61 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6b 65 79 73 20 61 73 20 24 6d 65 74 68 6f 64 20 ta).{.foreach.($keys.as.$method.
50120 3d 3e 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 6d 65 74 68 6f =>.$key).{.if.(is_numeric($metho
50140 64 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6b 65 79 3b 0a 7d 0a 0a 24 67 65 74 74 65 72 d)).{.$method.=.$key;.}..$getter
50160 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6d 65 74 68 6f 64 29 3b 0a 24 76 61 6c 75 .=.'get'.ucfirst($method);.$valu
50180 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 24 67 65 74 74 65 72 28 29 3b 0a 0a 69 66 20 28 6e 75 e.=.$package->$getter();..if.(nu
501a0 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 21 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c ll.!==.$value.&&.!(is_array($val
501c0 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 29 29 20 7b 0a 24 ue).&&.0.===.count($value))).{.$
501e0 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e data[$key].=.$value;.}.}..return
50200 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .$data;.}.}.<?php............nam
50220 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a espace.Composer\Package\Loader;.
50240 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f ....class.InvalidPackageExceptio
50260 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 n.extends.\Exception.{.private.$
50280 65 72 72 6f 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 errors;.private.$warnings;.priva
502a0 74 65 20 24 64 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 te.$data;..public.function.__con
502c0 73 74 72 75 63 74 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 2c 20 61 72 72 61 79 20 24 77 61 72 struct(array.$errors,.array.$war
502e0 6e 69 6e 67 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 nings,.array.$data).{.$this->err
50300 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d ors.=.$errors;.$this->warnings.=
50320 20 24 77 61 72 6e 69 6e 67 73 3b 0a 24 74 68 69 73 2d 3e 64 61 74 61 20 3d 20 24 64 61 74 61 3b .$warnings;.$this->data.=.$data;
50340 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 22 49 6e 76 61 6c 69 64 20 70 61 .parent::__construct("Invalid.pa
50360 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a 20 5c 6e 22 2e 69 6d 70 6c 6f 64 65 28 22 ckage.information:.\n".implode("
50380 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 \n",.array_merge($errors,.$warni
503a0 6e 67 73 29 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 44 61 ngs)));.}..public.function.getDa
503c0 74 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 61 74 61 3b 0a 7d 0a 0a 70 75 ta().{.return.$this->data;.}..pu
503e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 blic.function.getErrors().{.retu
50400 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rn.$this->errors;.}..public.func
50420 74 69 6f 6e 20 67 65 74 57 61 72 6e 69 6e 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getWarnings().{.return.$thi
50440 73 2d 3e 77 61 72 6e 69 6e 67 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->warnings;.}.}.<?php..........
50460 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 ..namespace.Composer\Package\Loa
50480 64 65 72 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 der;..use.Composer\Json\JsonFile
504a0 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 ;.....class.JsonLoader.{.private
504c0 20 24 6c 6f 61 64 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 .$loader;..public.function.__con
504e0 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a struct(LoaderInterface.$loader).
50500 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 7d 0a 0a 0a 0a {.$this->loader.=.$loader;.}....
50520 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 24 6a 73 6f 6e 29 0a 7b 0a ..public.function.load($json).{.
50540 69 66 20 28 24 6a 73 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 4a 73 6f 6e 46 69 6c 65 29 20 7b if.($json.instanceof.JsonFile).{
50560 0a 24 63 6f 6e 66 69 67 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 7d 20 65 6c 73 65 .$config.=.$json->read();.}.else
50580 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 if.(file_exists($json)).{.$confi
505a0 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 66 69 6c 65 5f 67 65 74 g.=.JsonFile::parseJson(file_get
505c0 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 29 2c 20 24 6a 73 6f 6e 29 3b 0a 7d 20 65 6c 73 65 _contents($json),.$json);.}.else
505e0 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 if.(is_string($json)).{.$config.
50600 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a =.JsonFile::parseJson($json);.}.
50620 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 63 6f 6e .return.$this->loader->load($con
50640 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 fig);.}.}.<?php............names
50660 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a pace.Composer\Package\Loader;...
50680 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a ....interface.LoaderInterface.{.
506a0 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 28 61 72 72 61 .......public.function.load(arra
506c0 79 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 y.$package,.$class.=.'Composer\P
506e0 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 0a 3c 3f 70 68 ackage\CompletePackage');.}.<?ph
50700 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\
50720 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 Package\Loader;..use.Composer\Pa
50740 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 ckage;.use.Composer\Package\Alia
50760 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 65 5c 52 sPackage;.use.Composer\Package\R
50780 6f 6f 74 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 ootAliasPackage;.use.Composer\Pa
507a0 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ckage\RootPackageInterface;.use.
507c0 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
507e0 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 4c 6f 61 64 65 72 20 69 Parser;......class.ArrayLoader.i
50800 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 mplements.LoaderInterface.{.prot
50820 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 65 64 20 ected.$versionParser;.protected.
50840 24 6c 6f 61 64 4f 70 74 69 6f 6e 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f $loadOptions;..public.function._
50860 5f 63 6f 6e 73 74 72 75 63 74 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 _construct(VersionParser.$parser
50880 20 3d 20 6e 75 6c 6c 2c 20 24 6c 6f 61 64 4f 70 74 69 6f 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b .=.null,.$loadOptions.=.false).{
508a0 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 6e 65 77 20 56 .if.(!$parser).{.$parser.=.new.V
508c0 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 69 6f 6e 50 61 ersionParser;.}.$this->versionPa
508e0 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 4f 70 74 69 6f rser.=.$parser;.$this->loadOptio
50900 6e 73 20 3d 20 24 6c 6f 61 64 4f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ns.=.$loadOptions;.}..public.fun
50920 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 73 ction.load(array.$config,.$class
50940 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 61 63 .=.'Composer\Package\CompletePac
50960 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 61 6d kage').{.if.(!isset($config['nam
50980 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 6c e'])).{.throw.new.\UnexpectedVal
509a0 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 61 73 ueException('Unknown.package.has
509c0 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 65 28 .no.name.defined.('.json_encode(
509e0 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 63 6f $config).').');.}.if.(!isset($co
50a00 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 5c 55 nfig['version'])).{.throw.new.\U
50a20 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 67 65 nexpectedValueException('Package
50a40 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 72 73 .'.$config['name'].'.has.no.vers
50a60 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 28 24 ion.defined.');.}....if.(isset($
50a80 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 20 7b config['version_normalized'])).{
50aa0 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 6f 72 .$version.=.$config['version_nor
50ac0 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 20 24 malized'];.}.else.{.$version.=.$
50ae0 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 28 24 this->versionParser->normalize($
50b00 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 20 3d config['version']);.}.$package.=
50b20 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 76 65 .new.$class($config['name'],.$ve
50b40 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 61 63 rsion,.$config['version']);.$pac
50b60 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 79 70 kage->setType(isset($config['typ
50b80 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 65 27 e']).?.strtolower($config['type'
50ba0 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 6f 6e ]).:.'library');..if.(isset($con
50bc0 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 2d 3e fig['target-dir'])).{.$package->
50be0 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 69 72 setTargetDir($config['target-dir
50c00 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 72 61 ']);.}..if.(isset($config['extra
50c20 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d ']).&&.is_array($config['extra']
50c40 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 67 5b )).{.$package->setExtra($config[
50c60 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 67 5b 'extra']);.}..if.(isset($config[
50c80 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 69 67 'bin'])).{.if.(!is_array($config
50ca0 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 74 65 ['bin'])).{.throw.new.\Unexpecte
50cc0 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 6e 66 dValueException('Package.'.$conf
50ce0 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 20 62 ig['name'].'\'s.bin.key.should.b
50d00 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 27 62 e.an.array,.'.gettype($config['b
50d20 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 63 6f in']).'.given.');.}.foreach.($co
50d40 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 0a 24 nfig['bin'].as.$key.=>.$bin).{.$
50d60 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 79 5d 20 3d 20 6c 74 72 69 6d 28 24 62 69 6e config['bin'][$key].=.ltrim($bin
50d80 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 28 ,.'/');.}.$package->setBinaries(
50da0 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 63 $config['bin']);.}..if.(isset($c
50dc0 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 7b onfig['installation-source'])).{
50de0 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 65 .$package->setInstallationSource
50e00 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 29 ($config['installation-source'])
50e20 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 5d ;.}..if.(isset($config['source']
50e40 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 27 )).{.if.(!isset($config['source'
50e60 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 6f ]['type']).||.!isset($config['so
50e80 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 67 urce']['url']).||.!isset($config
50ea0 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 6f ['source']['reference'])).{.thro
50ec0 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 w.new.\UnexpectedValueException(
50ee0 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 65 sprintf(."Package.%s's.source.ke
50f00 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 65 y.should.be.specified.as.{\"type
50f20 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 6e \":....,.\"url\":....,.\"referen
50f40 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 67 ce\":....},\n%s.given.",.$config
50f60 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 73 ['name'],.json_encode($config['s
50f80 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 72 ource']).));.}.$package->setSour
50fa0 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 5d ceType($config['source']['type']
50fc0 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 69 );.$package->setSourceUrl($confi
50fe0 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 73 g['source']['url']);.$package->s
51000 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 63 etSourceReference($config['sourc
51020 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f e']['reference']);.if.(isset($co
51040 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 29 29 20 7b 0a 24 70 nfig['source']['mirrors'])).{.$p
51060 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 24 63 6f 6e 66 69 67 ackage->setSourceMirrors($config
51080 5b 27 73 6f 75 72 63 65 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 ['source']['mirrors']);.}.}..if.
510a0 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 69 66 20 28 21 (isset($config['dist'])).{.if.(!
510c0 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 0a 7c isset($config['dist']['type']).|
510e0 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 |.!isset($config['dist']['url'])
51100 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
51120 63 65 70 74 69 6f 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 ception(sprintf(."Package.%s's.d
51140 69 73 74 20 6b 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 22 ist.key.should.be.specified.as."
51160 2e 0a 22 7b 5c 22 74 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c .."{\"type\":....,.\"url\":....,
51180 20 5c 22 72 65 66 65 72 65 6e 63 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 73 68 61 73 75 6d 5c 22 3a .\"reference\":....,.\"shasum\":
511a0 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 67 5b 27 6e 61 6d ....},\n%s.given.",.$config['nam
511c0 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 64 69 73 74 27 5d e'],.json_encode($config['dist']
511e0 29 0a 29 29 3b 0a 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 ).));.}.$package->setDistType($c
51200 6f 6e 66 69 67 5b 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 onfig['dist']['type']);.$package
51220 2d 3e 73 65 74 44 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 ->setDistUrl($config['dist']['ur
51240 6c 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 l']);.$package->setDistReference
51260 28 69 73 73 65 74 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 (isset($config['dist']['referenc
51280 65 27 5d 29 20 3f 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 e']).?.$config['dist']['referenc
512a0 65 27 5d 20 3a 20 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 e'].:.null);.$package->setDistSh
512c0 61 31 43 68 65 63 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 a1Checksum(isset($config['dist']
512e0 5b 27 73 68 61 73 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 ['shasum']).?.$config['dist']['s
51300 68 61 73 75 6d 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 hasum'].:.null);.if.(isset($conf
51320 69 67 5b 27 64 69 73 74 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 ig['dist']['mirrors'])).{.$packa
51340 67 65 2d 3e 73 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 ge->setDistMirrors($config['dist
51360 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 50 61 ']['mirrors']);.}.}..foreach.(Pa
51380 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e ckage\BasePackage::$supportedLin
513a0 6b 54 79 70 65 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 kTypes.as.$type.=>.$opts).{.if.(
513c0 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6d 65 74 68 6f 64 isset($config[$type])).{.$method
513e0 20 3d 20 27 73 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d .=.'set'.ucfirst($opts['method']
51400 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 7b 24 6d 65 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 76 );.$package->{$method}(.$this->v
51420 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 24 70 61 63 6b 61 ersionParser->parseLinks(.$packa
51440 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 ge->getName(),.$package->getPret
51460 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 tyVersion(),.$opts['description'
51480 5d 2c 0a 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 0a 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 ],.$config[$type].).);.}.}..if.(
514a0 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 20 26 26 20 69 73 5f isset($config['suggest']).&&.is_
514c0 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 array($config['suggest'])).{.for
514e0 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 74 61 72 each.($config['suggest'].as.$tar
51500 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 get.=>.$reason).{.if.('self.vers
51520 69 6f 6e 27 20 3d 3d 3d 20 74 72 69 6d 28 24 72 65 61 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 ion'.===.trim($reason)).{.$confi
51540 67 5b 27 73 75 67 67 65 73 74 27 5d 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 61 63 6b 61 67 65 g['suggest'][$target].=.$package
51560 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 ->getPrettyVersion();.}.}.$packa
51580 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 ge->setSuggests($config['suggest
515a0 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c ']);.}..if.(isset($config['autol
515c0 6f 61 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 oad'])).{.$package->setAutoload(
515e0 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 $config['autoload']);.}..if.(iss
51600 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 2d 64 65 76 27 5d 29 29 20 7b 0a 24 et($config['autoload-dev'])).{.$
51620 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 69 67 5b package->setDevAutoload($config[
51640 27 61 75 74 6f 6c 6f 61 64 2d 64 65 76 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 'autoload-dev']);.}..if.(isset($
51660 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 70 61 63 6b config['include-path'])).{.$pack
51680 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 24 63 6f 6e 66 69 67 5b 27 69 6e age->setIncludePaths($config['in
516a0 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f clude-path']);.}..if.(!empty($co
516c0 6e 66 69 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 nfig['time'])).{.$time.=.ctype_d
516e0 69 67 69 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 igit($config['time']).?.'@'.$con
51700 66 69 67 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 fig['time'].:.$config['time'];..
51720 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 74 69 6d try.{.$date.=.new.\DateTime($tim
51740 65 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 24 70 e,.new.\DateTimeZone('UTC'));.$p
51760 61 63 6b 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 ackage->setReleaseDate($date);.}
51780 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 7d 0a 7d 0a 0a 69 66 .catch.(\Exception.$e).{.}.}..if
517a0 20 28 21 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 .(!empty($config['notification-u
517c0 72 6c 27 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 rl'])).{.$package->setNotificati
517e0 6f 6e 55 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 onUrl($config['notification-url'
51800 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 61 72 63 68 69 ]);.}..if.(!empty($config['archi
51820 76 65 27 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 ve']['exclude'])).{.$package->se
51840 74 41 72 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 tArchiveExcludes($config['archiv
51860 65 27 5d 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 e']['exclude']);.}..if.($package
51880 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b .instanceof.Package\CompletePack
518a0 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 ageInterface).{.if.(isset($confi
518c0 67 5b 27 73 63 72 69 70 74 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 g['scripts']).&&.is_array($confi
518e0 67 5b 27 73 63 72 69 70 74 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 g['scripts'])).{.foreach.($confi
51900 67 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 20 24 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 g['scripts'].as.$event.=>.$liste
51920 6e 65 72 73 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e ners).{.$config['scripts'][$even
51940 74 5d 20 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 t].=.(array).$listeners;.}.$pack
51960 61 67 65 2d 3e 73 65 74 53 63 72 69 70 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 age->setScripts($config['scripts
51980 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 ']);.}..if.(!empty($config['desc
519a0 72 69 70 74 69 6f 6e 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b ription']).&&.is_string($config[
519c0 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 'description'])).{.$package->set
519e0 44 65 73 63 72 69 70 74 69 6f 6e 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e Description($config['description
51a00 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 ']);.}..if.(!empty($config['home
51a20 70 61 67 65 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f page']).&&.is_string($config['ho
51a40 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 mepage'])).{.$package->setHomepa
51a60 67 65 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 ge($config['homepage']);.}..if.(
51a80 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 69 !empty($config['keywords']).&&.i
51aa0 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a s_array($config['keywords'])).{.
51ac0 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4b 65 79 77 6f 72 64 73 28 24 63 6f 6e 66 69 67 5b 27 6b $package->setKeywords($config['k
51ae0 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 eywords']);.}..if.(!empty($confi
51b00 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 g['license'])).{.$package->setLi
51b20 63 65 6e 73 65 28 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 cense(is_array($config['license'
51b40 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 20 3a 20 61 72 72 61 79 28 ]).?.$config['license'].:.array(
51b60 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d $config['license']));.}..if.(!em
51b80 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 20 26 26 20 69 73 5f 61 72 pty($config['authors']).&&.is_ar
51ba0 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b ray($config['authors'])).{.$pack
51bc0 61 67 65 2d 3e 73 65 74 41 75 74 68 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 age->setAuthors($config['authors
51be0 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f ']);.}..if.(isset($config['suppo
51c00 72 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 rt'])).{.$package->setSupport($c
51c20 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 onfig['support']);.}..if.(isset(
51c40 24 63 6f 6e 66 69 67 5b 27 61 62 61 6e 64 6f 6e 65 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 $config['abandoned'])).{.$packag
51c60 65 2d 3e 73 65 74 41 62 61 6e 64 6f 6e 65 64 28 24 63 6f 6e 66 69 67 5b 27 61 62 61 6e 64 6f 6e e->setAbandoned($config['abandon
51c80 65 64 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 ed']);.}.}..if.($aliasNormalized
51ca0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 24 63 6f 6e 66 69 67 .=.$this->getBranchAlias($config
51cc0 29 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 52 6f 6f )).{.if.($package.instanceof.Roo
51ce0 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 tPackageInterface).{.$package.=.
51d00 6e 65 77 20 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 new.RootAliasPackage($package,.$
51d20 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('{
51d40 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
51d60 7a 65 64 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 zed));.}.else.{.$package.=.new.A
51d80 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 61 73 4e 6f 72 6d liasPackage($package,.$aliasNorm
51da0 61 6c 69 7a 65 64 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b alized,.preg_replace('{(\.9{7})+
51dc0 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 0a }',.'.x',.$aliasNormalized));.}.
51de0 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 61 64 4f 70 74 69 6f 6e 73 20 26 26 20 69 73 73 }..if.($this->loadOptions.&&.iss
51e00 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 5d 29 et($config['transport-options'])
51e20 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e ).{.$package->setTransportOption
51e40 73 28 24 63 6f 6e 66 69 67 5b 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 5d 29 3b s($config['transport-options']);
51e60 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .}..return.$package;.}........pu
51e80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 61 72 72 blic.function.getBranchAlias(arr
51ea0 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 28 27 64 65 76 2d 27 20 21 3d 3d 20 73 75 ay.$config).{.if.(('dev-'.!==.su
51ec0 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 30 2c 20 34 29 20 26 bstr($config['version'],.0,.4).&
51ee0 26 20 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 &.'-dev'.!==.substr($config['ver
51f00 73 69 6f 6e 27 5d 2c 20 2d 34 29 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 sion'],.-4)).||.!isset($config['
51f20 65 78 74 72 61 27 5d 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 extra']['branch-alias']).||.!is_
51f40 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 array($config['extra']['branch-a
51f60 6c 69 61 73 27 5d 29 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 lias']).).{.return;.}..foreach.(
51f80 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']
51fa0 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 72 67 65 74 42 72 61 6e .as.$sourceBranch.=>.$targetBran
51fc0 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 74 ch).{...if.('-dev'.!==.substr($t
51fe0 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a argetBranch,.-4)).{.continue;.}.
52000 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 ...$validatedTargetBranch.=.$thi
52020 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 6e 63 s->versionParser->normalizeBranc
52040 68 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b h(substr($targetBranch,.0,.-4));
52060 0a 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 .if.('-dev'.!==.substr($validate
52080 64 54 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a dTargetBranch,.-4)).{.continue;.
520a0 7d 0a 0a 0a 20 69 66 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 }....if.(strtolower($config['ver
520c0 73 69 6f 6e 27 5d 29 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 sion']).!==.strtolower($sourceBr
520e0 61 6e 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 28 24 73 6f anch)).{.continue;.}....if.(($so
52100 75 72 63 65 50 72 65 66 69 78 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 urcePrefix.=.$this->versionParse
52120 72 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 73 6f 75 72 r->parseNumericAliasPrefix($sour
52140 63 65 42 72 61 6e 63 68 29 29 0a 26 26 20 28 24 74 61 72 67 65 74 50 72 65 66 69 78 20 3d 20 24 ceBranch)).&&.($targetPrefix.=.$
52160 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 4e 75 6d 65 72 69 this->versionParser->parseNumeri
52180 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 29 0a 26 26 20 cAliasPrefix($targetBranch)).&&.
521a0 28 73 74 72 69 70 6f 73 28 24 74 61 72 67 65 74 50 72 65 66 69 78 2c 20 24 73 6f 75 72 63 65 50 (stripos($targetPrefix,.$sourceP
521c0 72 65 66 69 78 29 20 21 3d 3d 20 30 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 refix).!==.0).).{.continue;.}..r
521e0 65 74 75 72 6e 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 3b 0a 7d 0a eturn.$validatedTargetBranch;.}.
52200 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
52220 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
52240 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b poser\Package;.use.Composer\Pack
52260 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
52280 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 ckage\LinkConstraint\VersionCons
522a0 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 65 72 traint;.use.Composer\Package\Ver
522c0 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 sion\VersionParser;.use.Composer
522e0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a \Repository\PlatformRepository;.
52300 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 20 ....class.ValidatingArrayLoader.
52320 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e implements.LoaderInterface.{.con
52340 73 74 20 43 48 45 43 4b 5f 41 4c 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 55 4e st.CHECK_ALL.=.1;.const.CHECK_UN
52360 42 4f 55 4e 44 5f 43 4f 4e 53 54 52 41 49 4e 54 53 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 BOUND_CONSTRAINTS.=.1;..private.
52380 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b $loader;.private.$versionParser;
523a0 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 77 61 72 6e 69 .private.$errors;.private.$warni
523c0 6e 67 73 3b 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 73 ngs;.private.$config;.private.$s
523e0 74 72 69 63 74 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 66 6c 61 67 73 3b 0a 0a 70 75 62 6c trictName;.private.$flags;..publ
52400 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 49 6e ic.function.__construct(LoaderIn
52420 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 20 74 terface.$loader,.$strictName.=.t
52440 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 75 6c rue,.VersionParser.$parser.=.nul
52460 6c 2c 20 24 66 6c 61 67 73 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d l,.$flags.=.0).{.$this->loader.=
52480 20 24 6c 6f 61 64 65 72 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d .$loader;.$this->versionParser.=
524a0 20 24 70 61 72 73 65 72 20 3f 3a 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b .$parser.?:.new.VersionParser();
524c0 0a 24 74 68 69 73 2d 3e 73 74 72 69 63 74 4e 61 6d 65 20 3d 20 24 73 74 72 69 63 74 4e 61 6d 65 .$this->strictName.=.$strictName
524e0 3b 0a 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 7d 0a 0a 70 75 62 6c ;.$this->flags.=.$flags;.}..publ
52500 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 ic.function.load(array.$config,.
52520 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c $class.=.'Composer\Package\Compl
52540 65 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 etePackage').{.$this->errors.=.a
52560 72 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 rray();.$this->warnings.=.array(
52580 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 0a 69 66 20 );.$this->config.=.$config;..if.
525a0 28 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 ($this->strictName).{.$this->val
525c0 69 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 idateRegex('name',.'[A-Za-z0-9][
525e0 41 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 A-Za-z0-9_.-]*/[A-Za-z0-9][A-Za-
52600 7a 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 z0-9_.-]*',.true);.}.else.{.$thi
52620 73 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 s->validateString('name',.true);
52640 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 66 69 67 5b 27 76 65 .}..if.(!empty($this->config['ve
52660 72 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 rsion'])).{.try.{.$this->version
52680 50 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 Parser->normalize($this->config[
526a0 27 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 'version']);.}.catch.(\Exception
526c0 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 76 65 72 73 69 6f .$e).{.$this->errors[].=.'versio
526e0 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
52700 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
52720 67 65 28 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 ge();.unset($this->config['versi
52740 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 on']);.}.}..$this->validateRegex
52760 28 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 ('type',.'[A-Za-z0-9-]+');.$this
52780 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 61 72 67 65 74 2d 64 69 72 27 29 3b 0a ->validateString('target-dir');.
527a0 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 65 78 74 72 61 27 29 3b 0a 24 $this->validateArray('extra');.$
527c0 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 62 69 6e 27 29 3b 0a this->validateFlatArray('bin');.
527e0 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 63 72 69 70 74 73 27 29 3b $this->validateArray('scripts');
52800 20 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 64 65 73 63 72 69 ...$this->validateString('descri
52820 70 74 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 6c 28 27 68 6f 6d ption');.$this->validateUrl('hom
52840 65 70 61 67 65 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 epage');.$this->validateFlatArra
52860 79 28 27 6b 65 79 77 6f 72 64 73 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 20 2e 5f 2d 5d 2b 27 y('keywords',.'[A-Za-z0-9.._-]+'
52880 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 );..if.(isset($this->config['lic
528a0 65 6e 73 65 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e ense'])).{.if.(is_string($this->
528c0 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c config['license'])).{.$this->val
528e0 69 64 61 74 65 52 65 67 65 78 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d idateRegex('license',.'[A-Za-z0-
52900 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 9+..()-]+');.}.else.{.$this->val
52920 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 idateFlatArray('license',.'[A-Za
52940 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c -z0-9+..()-]+');.}.}..$this->val
52960 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 69 6d 65 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 idateString('time');.if.(!empty(
52980 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a $this->config['time'])).{.try.{.
529a0 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 68 69 73 2d 3e 63 6f 6e $date.=.new.\DateTime($this->con
529c0 66 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 fig['time'],.new.\DateTimeZone('
529e0 55 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 UTC'));.}.catch.(\Exception.$e).
52a00 7b 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 {.$this->errors[].=.'time.:.inva
52a20 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 27 74 69 6d 65 lid.value.('.$this->config['time
52a40 27 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 '].'):.'.$e->getMessage();.unset
52a60 28 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 ($this->config['time']);.}.}..if
52a80 20 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 .($this->validateArray('authors'
52aa0 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 68 6f ).&&.!empty($this->config['autho
52ac0 72 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 rs'])).{.foreach.($this->config[
52ae0 27 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 'authors'].as.$key.=>.$author).{
52b00 0a 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 .if.(!is_array($author)).{.$this
52b20 2d 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 ->errors[].=.'authors.'.$key.'.:
52b40 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 .should.be.an.array,.'.gettype($
52b60 61 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 author).'.given';.unset($this->c
52b80 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 3b 0a 63 6f 6e 74 69 6e 75 onfig['authors'][$key]);.continu
52ba0 65 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 e;.}.foreach.(array('homepage',.
52bc0 27 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 'email',.'name',.'role').as.$aut
52be0 68 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 horData).{.if.(isset($author[$au
52c00 74 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 thorData]).&&.!is_string($author
52c20 5b 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 [$authorData])).{.$this->errors[
52c40 5d 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 ].=.'authors.'.$key.'.'.$authorD
52c60 61 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 ata.'.:.invalid.value,.must.be.a
52c80 20 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 .string';.unset($this->config['a
52ca0 75 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 uthors'][$key][$authorData]);.}.
52cc0 7d 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 }.if.(isset($author['homepage'])
52ce0 20 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 .&&.!$this->filterUrl($author['h
52d00 6f 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 omepage'])).{.$this->warnings[].
52d20 3d 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 =.'authors.'.$key.'.homepage.:.i
52d40 6e 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 nvalid.value.('.$author['homepag
52d60 65 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 e'].'),.must.be.an.http/https.UR
52d80 4c 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 L';.unset($this->config['authors
52da0 27 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 '][$key]['homepage']);.}.if.(iss
52dc0 65 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 et($author['email']).&&.!filter_
52de0 76 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 var($author['email'],.FILTER_VAL
52e00 49 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 IDATE_EMAIL)).{.$this->warnings[
52e20 5d 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 ].=.'authors.'.$key.'.email.:.in
52e40 76 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 valid.value.('.$author['email'].
52e60 27 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 '),.must.be.a.valid.email.addres
52e80 73 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 s';.unset($this->config['authors
52ea0 27 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 '][$key]['email']);.}.if.(empty(
52ec0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 29 $this->config['authors'][$key]))
52ee0 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 .{.unset($this->config['authors'
52f00 5d 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 ][$key]);.}.}.if.(empty($this->c
52f20 6f 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 onfig['authors'])).{.unset($this
52f40 2d 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 ->config['authors']);.}.}..if.($
52f60 74 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 this->validateArray('support').&
52f80 26 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 &.!empty($this->config['support'
52fa0 5d 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 ])).{.foreach.(array('issues',.'
52fc0 66 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 forum',.'wiki',.'source',.'email
52fe0 27 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 ',.'irc').as.$key).{.if.(isset($
53000 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 20 26 this->config['support'][$key]).&
53020 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 &.!is_string($this->config['supp
53040 6f 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 ort'][$key])).{.$this->errors[].
53060 3d 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 =.'support.'.$key.'.:.invalid.va
53080 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 lue,.must.be.a.string';.unset($t
530a0 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 3b 0a 7d his->config['support'][$key]);.}
530c0 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 70 .}..if.(isset($this->config['sup
530e0 70 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 port']['email']).&&.!filter_var(
53100 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 $this->config['support']['email'
53120 5d 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 ],.FILTER_VALIDATE_EMAIL)).{.$th
53140 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 2e 65 6d 61 69 6c 20 is->warnings[].=.'support.email.
53160 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 69 67 :.invalid.value.('.$this->config
53180 5b 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 ['support']['email'].'),.must.be
531a0 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a 75 6e 73 65 74 28 24 .a.valid.email.address';.unset($
531c0 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']
531e0 29 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 );.}..if.(isset($this->config['s
53200 75 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 upport']['irc']).&&.!$this->filt
53220 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 erUrl($this->config['support']['
53240 69 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 irc'],.array('irc'))).{.$this->w
53260 61 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 arnings[].=.'support.irc.:.inval
53280 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 73 75 70 70 6f id.value.('.$this->config['suppo
532a0 72 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 rt']['irc'].'),.must.be.a.irc://
532c0 3c 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 <server>/<channel>.URL';.unset($
532e0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 3b this->config['support']['irc']);
53300 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 6f .}..foreach.(array('issues',.'fo
53320 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 29 20 61 73 20 24 6b 65 79 29 rum',.'wiki',.'source').as.$key)
53340 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 .{.if.(isset($this->config['supp
53360 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 ort'][$key]).&&.!$this->filterUr
53380 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 24 6b 65 79 5d l($this->config['support'][$key]
533a0 29 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 )).{.$this->warnings[].=.'suppor
533c0 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 t.'.$key.'.:.invalid.value.('.$t
533e0 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 2e 27 29 2c his->config['support'][$key].'),
53400 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 27 3b 0a 75 6e 73 .must.be.an.http/https.URL';.uns
53420 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 et($this->config['support'][$key
53440 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b ]);.}.}.if.(empty($this->config[
53460 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 'support'])).{.unset($this->conf
53480 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 75 6e 62 6f 75 6e 64 43 6f 6e ig['support']);.}.}..$unboundCon
534a0 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 28 straint.=.new.VersionConstraint(
534c0 27 3d 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 '=',.$this->versionParser->norma
534e0 6c 69 7a 65 28 27 64 65 76 2d 6d 61 73 74 65 72 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 lize('dev-master'));..foreach.(a
53500 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 rray_keys(BasePackage::$supporte
53520 64 4c 69 6e 6b 54 79 70 65 73 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 dLinkTypes).as.$linkType).{.if.(
53540 24 74 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 $this->validateArray($linkType).
53560 26 26 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 &&.isset($this->config[$linkType
53580 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 24 6c 69 ])).{.foreach.($this->config[$li
535a0 6e 6b 54 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 nkType].as.$package.=>.$constrai
535c0 6e 74 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 nt).{.if.(!preg_match('{^[A-Za-z
535e0 30 2d 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 0-9_./-]+$}',.$package)).{.$this
53600 2d 3e 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 ->warnings[].=.$linkType.'.'.$pa
53620 63 6b 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 ckage.'.:.invalid.key,.package.n
53640 61 6d 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 ames.must.be.strings.containing.
53660 6f 6e 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 only.[A-Za-z0-9_./-]';.}.if.(!is
53680 5f 73 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 _string($constraint)).{.$this->e
536a0 72 72 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 rrors[].=.$linkType.'.'.$package
536c0 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 73 74 .'.:.invalid.value,.must.be.a.st
536e0 72 69 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 ring.containing.a.version.constr
53700 61 69 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 aint';.unset($this->config[$link
53720 54 79 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 Type][$package]);.}.elseif.('sel
53740 66 2e 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 f.version'.!==.$constraint).{.tr
53760 79 20 7b 0a 24 6c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 y.{.$linkConstraint.=.$this->ver
53780 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 6f sionParser->parseConstraints($co
537a0 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 nstraint);.}.catch.(\Exception.$
537c0 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 e).{.$this->errors[].=.$linkType
537e0 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 65 72 73 69 6f .'.'.$package.'.:.invalid.versio
53800 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 n.constraint.('.$e->getMessage()
53820 2e 27 29 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 .')';.unset($this->config[$linkT
53840 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 ype][$package]);.continue;.}....
53860 69 66 20 28 0a 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 43 48 45 43 4b if.(.($this->flags.&.self::CHECK
53880 5f 55 4e 42 4f 55 4e 44 5f 43 4f 4e 53 54 52 41 49 4e 54 53 29 0a 26 26 20 27 72 65 71 75 69 72 _UNBOUND_CONSTRAINTS).&&.'requir
538a0 65 27 20 3d 3d 3d 20 24 6c 69 6e 6b 54 79 70 65 0a 26 26 20 24 6c 69 6e 6b 43 6f 6e 73 74 72 61 e'.===.$linkType.&&.$linkConstra
538c0 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 75 6e 62 6f 75 6e 64 43 6f 6e 73 74 72 61 69 6e 74 29 int->matches($unboundConstraint)
538e0 0a 26 26 20 21 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 74 6f .&&.!preg_match(PlatformReposito
53900 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 70 61 63 ry::PLATFORM_PACKAGE_REGEX,.$pac
53920 6b 61 67 65 29 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6c kage).).{.$this->warnings[].=.$l
53940 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 75 6e 62 6f 75 6e 64 inkType.'.'.$package.'.:.unbound
53960 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 27 2e 24 63 6f 6e 73 74 72 61 .version.constraints.('.$constra
53980 69 6e 74 2e 27 29 20 73 68 6f 75 6c 64 20 62 65 20 61 76 6f 69 64 65 64 27 3b 0a 7d 0a 7d 0a 7d int.').should.be.avoided';.}.}.}
539a0 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 28 27 .}.}..if.($this->validateArray('
539c0 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 66 69 suggest').&&.!empty($this->confi
539e0 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 73 2d g['suggest'])).{.foreach.($this-
53a00 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 20 3d >config['suggest'].as.$package.=
53a20 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 6e 67 >.$description).{.if.(!is_string
53a40 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 73 5b ($description)).{.$this->errors[
53a60 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 76 61 ].=.'suggest.'.$package.'.:.inva
53a80 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 73 63 lid.value,.must.be.a.string.desc
53aa0 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 65 73 ribing.why.the.package.is.sugges
53ac0 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 67 65 ted';.unset($this->config['sugge
53ae0 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 68 69 st'][$package]);.}.}.}..if.($thi
53b00 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 62 69 s->validateString('minimum-stabi
53b20 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 5b 27 lity').&&.!empty($this->config['
53b40 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 73 73 minimum-stability'])).{.if.(!iss
53b60 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 74 68 et(BasePackage::$stabilities[$th
53b80 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 5d is->config['minimum-stability']]
53ba0 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 6d 2d )).{.$this->errors[].=.'minimum-
53bc0 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 74 68 stability.:.invalid.value.('.$th
53be0 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 2e is->config['minimum-stability'].
53c00 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 2c 20 '),.must.be.one.of.'.implode(',.
53c20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 ',.array_keys(BasePackage::$stab
53c40 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 5b 27 ilities));.unset($this->config['
53c60 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 28 24 minimum-stability']);.}.}..if.($
53c80 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 29 20 this->validateArray('autoload').
53ca0 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 6f 61 &&.!empty($this->config['autoloa
53cc0 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 2c 20 d'])).{.$types.=.array('psr-0',.
53ce0 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 0a 66 'psr-4',.'classmap',.'files');.f
53d00 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 64 27 oreach.($this->config['autoload'
53d20 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 66 20 ].as.$type.=>.$typeConfig).{.if.
53d40 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 74 68 (!in_array($type,.$types)).{.$th
53d60 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 61 6c is->errors[].=.'autoload.:.inval
53d80 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 6f 6e id.value.('.$type.'),.must.be.on
53da0 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 75 6e e.of.'.implode(',.',.$types);.un
53dc0 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 24 74 set($this->config['autoload'][$t
53de0 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 29 20 ype]);.}.if.($type.===.'psr-4').
53e00 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 65 73 {.foreach.($typeConfig.as.$names
53e20 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 65 20 pace.=>.$dirs).{.if.($namespace.
53e40 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 65 73 !==.''.&&.'\\'.!==.substr($names
53e60 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 20 27 pace,.-1)).{.$this->errors[].=.'
53e80 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 20 28 autoload.psr-4.:.invalid.value.(
53ea0 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 73 74 '.$namespace.'),.namespaces.must
53ec0 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 72 2c .end.with.a.namespace.separator,
53ee0 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 7d 0a .should.be.'.$namespace.'\\';.}.
53f00 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 66 69 }.}.}.}..if.(!empty($this->confi
53f20 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 70 74 g['autoload']['psr-4']).&&.!empt
53f40 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 29 20 y($this->config['target-dir'])).
53f60 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 72 20 {.$this->errors[].=.'target-dir.
53f80 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 72 20 :.this.can.not.be.used.together.
53fa0 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 67 2c with.the.autoload.psr-4.setting,
53fc0 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 74 6f .remove.target-dir.to.upgrade.to
53fe0 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 69 67 .psr-4';.....unset($this->config
54000 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 0a 0a ['autoload']['psr-4']);.}.......
54020 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 6e 63 ...$this->validateFlatArray('inc
54040 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 lude-path');.$this->validateArra
54060 79 28 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 29 3b 0a 0a 0a 20 69 66 20 28 69 y('transport-options');....if.(i
54080 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 sset($this->config['extra']['bra
540a0 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 nch-alias'])).{.if.(!is_array($t
540c0 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 his->config['extra']['branch-ali
540e0 61 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 as'])).{.$this->errors[].=.'extr
54100 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 20 3a 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 a.branch-alias.:.must.be.an.arra
54120 79 20 6f 66 20 76 65 72 73 69 6f 6e 73 20 3d 3e 20 61 6c 69 61 73 65 73 27 3b 0a 7d 20 65 6c 73 y.of.versions.=>.aliases';.}.els
54140 65 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 65 78 74 72 e.{.foreach.($this->config['extr
54160 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 75 72 63 65 42 72 a']['branch-alias'].as.$sourceBr
54180 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 20 69 66 20 28 27 anch.=>.$targetBranch).{...if.('
541a0 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 61 6e 63 68 2c 20 -dev'.!==.substr($targetBranch,.
541c0 2d 34 29 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 65 78 74 72 -4)).{.$this->warnings[].=.'extr
541e0 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 a.branch-alias.'.$sourceBranch.'
54200 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 .:.the.target.branch.('.$targetB
54220 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 65 6e 64 20 69 6e 20 2d 64 65 76 27 3b 0a 75 6e 73 65 ranch.').must.end.in.-dev';.unse
54240 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 t($this->config['extra']['branch
54260 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 0a 63 6f 6e 74 69 -alias'][$sourceBranch]);..conti
54280 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 nue;.}....$validatedTargetBranch
542a0 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 .=.$this->versionParser->normali
542c0 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 zeBranch(substr($targetBranch,.0
542e0 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 ,.-4));.if.('-dev'.!==.substr($v
54300 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 alidatedTargetBranch,.-4)).{.$th
54320 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 61 is->warnings[].=.'extra.branch-a
54340 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 72 lias.'.$sourceBranch.'.:.the.tar
54360 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 6d get.branch.('.$targetBranch.').m
54380 75 73 74 20 62 65 20 61 20 70 61 72 73 65 61 62 6c 65 20 6e 75 6d 62 65 72 20 6c 69 6b 65 20 32 ust.be.a.parseable.number.like.2
543a0 2e 30 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 .0-dev';.unset($this->config['ex
543c0 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 tra']['branch-alias'][$sourceBra
543e0 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 28 24 73 6f 75 nch]);..continue;.}....if.(($sou
54400 72 63 65 50 72 65 66 69 78 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 rcePrefix.=.$this->versionParser
54420 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 73 6f 75 72 63 ->parseNumericAliasPrefix($sourc
54440 65 42 72 61 6e 63 68 29 29 0a 26 26 20 28 24 74 61 72 67 65 74 50 72 65 66 69 78 20 3d 20 24 74 eBranch)).&&.($targetPrefix.=.$t
54460 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 4e 75 6d 65 72 69 63 his->versionParser->parseNumeric
54480 41 6c 69 61 73 50 72 65 66 69 78 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 29 0a 26 26 20 28 AliasPrefix($targetBranch)).&&.(
544a0 73 74 72 69 70 6f 73 28 24 74 61 72 67 65 74 50 72 65 66 69 78 2c 20 24 73 6f 75 72 63 65 50 72 stripos($targetPrefix,.$sourcePr
544c0 65 66 69 78 29 20 21 3d 3d 20 30 29 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 efix).!==.0).).{.$this->warnings
544e0 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 [].=.'extra.branch-alias.'.$sour
54500 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 ceBranch.'.:.the.target.branch.(
54520 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 '.$targetBranch.').is.not.a.vali
54540 64 20 6e 75 6d 65 72 69 63 20 61 6c 69 61 73 20 66 6f 72 20 74 68 69 73 20 76 65 72 73 69 6f 6e d.numeric.alias.for.this.version
54560 27 3b 0a 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 ';.unset($this->config['extra'][
54580 27 62 72 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 'branch-alias'][$sourceBranch]);
545a0 0a 7d 0a 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 .}.}.}.}..if.($this->errors).{.t
545c0 68 72 6f 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 hrow.new.InvalidPackageException
545e0 28 24 74 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 ($this->errors,.$this->warnings,
54600 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e .$config);.}..$package.=.$this->
54620 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 6c 61 loader->load($this->config,.$cla
54640 73 73 29 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 ss);.$this->config.=.null;..retu
54660 72 6e 20 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 rn.$package;.}..public.function.
54680 67 65 74 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 getWarnings().{.return.$this->wa
546a0 72 6e 69 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 rnings;.}..public.function.getEr
546c0 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 6f 72 73 3b 0a 7d rors().{.return.$this->errors;.}
546e0 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 52 65 67 65 78 ..private.function.validateRegex
54700 28 24 70 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 ($property,.$regex,.$mandatory.=
54720 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 .false).{.if.(!$this->validateSt
54740 72 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 ring($property,.$mandatory)).{.r
54760 65 74 75 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 eturn.false;.}..if.(!preg_match(
54780 27 7b 5e 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 '{^'.$regex.'$}u',.$this->config
547a0 5b 24 70 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 [$property])).{.$message.=.$prop
547c0 65 72 74 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 erty.'.:.invalid.value.('.$this-
547e0 3e 63 6f 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 >config[$property].'),.must.matc
54800 68 20 27 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 h.'.$regex;.if.($mandatory).{.$t
54820 68 69 73 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 his->errors[].=.$message;.}.else
54840 20 7b 0a 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 .{.$this->warnings[].=.$message;
54860 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 .}.unset($this->config[$property
54880 5d 29 3b 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
548a0 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 53 e;.}..private.function.validateS
548c0 74 72 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 20 3d 20 66 61 tring($property,.$mandatory.=.fa
548e0 6c 73 65 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 lse).{.if.(isset($this->config[$
54900 70 72 6f 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 property]).&&.!is_string($this->
54920 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 config[$property])).{.$this->err
54940 6f 72 73 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 ors[].=.$property.'.:.should.be.
54960 61 20 73 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 a.string,.'.gettype($this->confi
54980 67 5b 24 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 g[$property]).'.given';.unset($t
549a0 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
549c0 20 66 61 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 .false;.}..if.(!isset($this->con
549e0 66 69 67 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 fig[$property]).||.trim($this->c
54a00 6f 6e 66 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 onfig[$property]).===.'').{.if.(
54a20 24 6d 61 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 $mandatory).{.$this->errors[].=.
54a40 24 70 72 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 $property.'.:.must.be.present';.
54a60 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d }.unset($this->config[$property]
54a80 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 );..return.false;.}..return.true
54aa0 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 41 72 ;.}..private.function.validateAr
54ac0 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 20 3d 20 66 61 6c 73 ray($property,.$mandatory.=.fals
54ae0 65 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 e).{.if.(isset($this->config[$pr
54b00 6f 70 65 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 operty]).&&.!is_array($this->con
54b20 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
54b40 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 6e 20 [].=.$property.'.:.should.be.an.
54b60 61 72 72 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 array,.'.gettype($this->config[$
54b80 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
54ba0 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
54bc0 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
54be0 5b 24 70 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 [$property]).||.!count($this->co
54c00 6e 66 69 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 nfig[$property])).{.if.($mandato
54c20 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 ry).{.$this->errors[].=.$propert
54c40 79 2e 27 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 y.'.:.must.be.present.and.contai
54c60 6e 20 61 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 n.at.least.one.element';.}.unset
54c80 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 ($this->config[$property]);..ret
54ca0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 urn.false;.}..return.true;.}..pr
54cc0 69 76 61 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 ivate.function.validateFlatArray
54ce0 28 24 70 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 ($property,.$regex.=.null,.$mand
54d00 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c atory.=.false).{.if.(!$this->val
54d20 69 64 61 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 idateArray($property,.$mandatory
54d40 29 29 20 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 )).{.return.false;.}..$pass.=.tr
54d60 75 65 3b 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 ue;.foreach.($this->config[$prop
54d80 65 72 74 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 erty].as.$key.=>.$value).{.if.(!
54da0 69 73 5f 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 is_string($value).&&.!is_numeric
54dc0 28 24 76 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 ($value)).{.$this->errors[].=.$p
54de0 72 6f 70 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 roperty.'.'.$key.'.:.must.be.a.s
54e00 74 72 69 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 tring.or.int,.'.gettype($value).
54e20 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 '.given';.unset($this->config[$p
54e40 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a roperty][$key]);.$pass.=.false;.
54e60 0a 63 6f 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 .continue;.}..if.($regex.&&.!pre
54e80 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 76 61 6c 75 g_match('{^'.$regex.'$}u',.$valu
54ea0 65 29 29 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 e)).{.$this->warnings[].=.$prope
54ec0 72 74 79 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 rty.'.'.$key.'.:.invalid.value.(
54ee0 27 2e 24 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 '.$value.'),.must.match.'.$regex
54f00 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d ;.unset($this->config[$property]
54f20 5b 24 6b 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 [$key]);.$pass.=.false;.}.}..ret
54f40 75 72 6e 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 urn.$pass;.}..private.function.v
54f60 61 6c 69 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 alidateUrl($property,.$mandatory
54f80 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 .=.false).{.if.(!$this->validate
54fa0 53 74 72 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 String($property,.$mandatory)).{
54fc0 0a 72 65 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 .return.false;.}..if.(!$this->fi
54fe0 6c 74 65 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 lterUrl($this->config[$property]
55000 29 29 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 )).{.$this->warnings[].=.$proper
55020 74 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 ty.'.:.invalid.value.('.$this->c
55040 6f 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 62 65 20 61 6e 20 onfig[$property].'),.must.be.an.
55060 68 74 74 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 http/https.URL';.unset($this->co
55080 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 3b nfig[$property]);..return.false;
550a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .}..return.true;.}..private.func
550c0 74 69 6f 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 tion.filterUrl($value,.array.$sc
550e0 68 65 6d 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 hemes.=.array('http',.'https')).
55100 7b 0a 69 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 {.if.($value.===.'').{.return.tr
55120 75 65 3b 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 ue;.}..$bits.=.parse_url($value)
55140 3b 0a 69 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 ;.if.(empty($bits['scheme']).||.
55160 65 6d 70 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 empty($bits['host'])).{.return.f
55180 61 6c 73 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 alse;.}..if.(!in_array($bits['sc
551a0 68 65 6d 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 heme'],.$schemes,.true)).{.retur
551c0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 n.false;.}..return.true;.}.}.<?p
551e0 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
55200 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 \Package\Loader;..use.Composer\P
55220 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ackage\BasePackage;.use.Composer
55240 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
55260 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
55280 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
552a0 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
552c0 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
552e0 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 3b 0a 75 poser\Repository\Vcs\HgDriver;.u
55300 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 43 6f 6d 70 6f se.Composer\IO\NullIO;.use.Compo
55320 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f ser\Util\ProcessExecutor;.use.Co
55340 6d 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 mposer\Util\Git.as.GitUtil;.use.
55360 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 3b 0a 0a 0a Composer\Util\Svn.as.SvnUtil;...
55380 0a 0a 0a 0a 0a 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 ......class.RootPackageLoader.ex
553a0 74 65 6e 64 73 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 tends.ArrayLoader.{.private.$man
553c0 61 67 65 72 3b 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 ager;.private.$config;.private.$
553e0 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 process;..public.function.__cons
55400 74 72 75 63 74 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 truct(RepositoryManager.$manager
55420 2c 20 43 6f 6e 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 ,.Config.$config,.VersionParser.
55440 24 70 61 72 73 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 $parser.=.null,.ProcessExecutor.
55460 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 $process.=.null).{.$this->manage
55480 72 20 3d 20 24 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 r.=.$manager;.$this->config.=.$c
554a0 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
554c0 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 70 61 72 65 6e .?:.new.ProcessExecutor();.paren
554e0 74 3a 3a 5f 5f 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 t::__construct($parser);.}..publ
55500 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 ic.function.load(array.$config,.
55520 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 $class.=.'Composer\Package\RootP
55540 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
55560 61 6d 65 27 5d 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 ame'])).{.$config['name'].=.'__r
55580 6f 6f 74 5f 5f 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 oot__';.}.if.(!isset($config['ve
555a0 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 rsion'])).{...if.(getenv('COMPOS
555c0 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 ER_ROOT_VERSION')).{.$version.=.
555e0 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b getenv('COMPOSER_ROOT_VERSION');
55600 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 .}.else.{.$version.=.$this->gues
55620 73 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 sVersion($config);.}..if.(!$vers
55640 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 24 63 ion).{.$version.=.'1.0.0';.}..$c
55660 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a onfig['version'].=.$version;.}..
55680 24 72 65 61 6c 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 $realPackage.=.$package.=.parent
556a0 3a 3a 6c 6f 61 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 ::load($config,.$class);..if.($r
556c0 65 61 6c 50 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 ealPackage.instanceof.AliasPacka
556e0 67 65 29 20 7b 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 ge).{.$realPackage.=.$package->g
55700 65 74 41 6c 69 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 etAliasOf();.}..if.(isset($confi
55720 67 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 24 72 65 61 6c g['minimum-stability'])).{.$real
55740 50 61 63 6b 61 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 Package->setMinimumStability(Ver
55760 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 79 28 24 sionParser::normalizeStability($
55780 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 3b 0a 7d config['minimum-stability']));.}
557a0 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 ..$aliases.=.array();.$stability
557c0 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 Flags.=.array();.$references.=.a
557e0 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 27 rray();.foreach.(array('require'
55800 2c 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b ,.'require-dev').as.$linkType).{
55820 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 .if.(isset($config[$linkType])).
55840 7b 0a 24 6c 69 6e 6b 49 6e 66 6f 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 {.$linkInfo.=.BasePackage::$supp
55860 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 5b 24 6c 69 6e 6b 54 79 70 65 5d 3b 0a 24 6d 65 74 68 ortedLinkTypes[$linkType];.$meth
55880 6f 64 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 49 6e 66 6f 5b 27 6d 65 od.=.'get'.ucfirst($linkInfo['me
558a0 74 68 6f 64 27 5d 29 3b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 thod']);.$links.=.array();.forea
558c0 63 68 20 28 24 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 ch.($realPackage->$method().as.$
558e0 6c 69 6e 6b 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 link).{.$links[$link->getTarget(
55900 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 67 65 74 )].=.$link->getConstraint()->get
55920 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 PrettyString();.}.$aliases.=.$th
55940 69 73 2d 3e 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 24 6c 69 6e 6b 73 2c 20 24 61 6c 69 61 is->extractAliases($links,.$alia
55960 73 65 73 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 65 ses);.$stabilityFlags.=.$this->e
55980 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 6c 69 6e 6b 73 2c 20 24 73 74 xtractStabilityFlags($links,.$st
559a0 61 62 69 6c 69 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 abilityFlags,.$realPackage->getM
559c0 69 6e 69 6d 75 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 inimumStability());.$references.
559e0 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 24 6c 69 6e 6b =.$this->extractReferences($link
55a00 73 2c 20 24 72 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 s,.$references);.}.}..$realPacka
55a20 67 65 2d 3e 73 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 ge->setAliases($aliases);.$realP
55a40 61 63 6b 61 67 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 ackage->setStabilityFlags($stabi
55a60 6c 69 74 79 46 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 lityFlags);.$realPackage->setRef
55a80 65 72 65 6e 63 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 erences($references);..if.(isset
55aa0 28 24 63 6f 6e 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 ($config['prefer-stable'])).{.$r
55ac0 65 61 6c 50 61 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 ealPackage->setPreferStable((boo
55ae0 6c 29 20 24 63 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 l).$config['prefer-stable']);.}.
55b00 0a 24 72 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 .$repos.=.Factory::createDefault
55b20 52 65 70 6f 73 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 Repositories(null,.$this->config
55b40 2c 20 24 74 68 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 ,.$this->manager);.foreach.($rep
55b60 6f 73 20 61 73 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 os.as.$repo).{.$this->manager->a
55b80 64 64 52 65 70 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 ddRepository($repo);.}.$realPack
55ba0 61 67 65 2d 3e 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 age->setRepositories($this->conf
55bc0 69 67 2d 3e 67 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 ig->getRepositories());..return.
55be0 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 $package;.}..private.function.ex
55c00 74 72 61 63 74 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 tractAliases(array.$requires,.ar
55c20 72 61 79 20 24 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 ray.$aliases).{.foreach.($requir
55c40 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).{
55c60 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 23 5d 2b 29 28 3f 3a .if.(preg_match('{^([^,\s#]+)(?:
55c80 23 5b 5e 20 5d 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 #[^.]+)?.+as.+([^,\s]+)$}',.$req
55ca0 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 5b 5d 20 3d Version,.$match)).{.$aliases[].=
55cc0 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 .array(.'package'.=>.strtolower(
55ce0 24 72 65 71 4e 61 6d 65 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 $reqName),.'version'.=>.$this->v
55d00 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 31 ersionParser->normalize($match[1
55d20 5d 2c 20 24 72 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 ],.$reqVersion),.'alias'.=>.$mat
55d40 63 68 5b 32 5d 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 ch[2],.'alias_normalized'.=>.$th
55d60 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 is->versionParser->normalize($ma
55d80 74 63 68 5b 32 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 tch[2],.$reqVersion),.);.}.}..re
55da0 74 75 72 6e 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 turn.$aliases;.}..private.functi
55dc0 6f 6e 20 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 on.extractStabilityFlags(array.$
55de0 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c requires,.array.$stabilityFlags,
55e00 20 24 6d 69 6e 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 .$minimumStability).{.$stabiliti
55e20 65 73 20 3d 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 3b 0a es.=.BasePackage::$stabilities;.
55e40 24 6d 69 6e 69 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 $minimumStability.=.$stabilities
55e60 5b 24 6d 69 6e 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 [$minimumStability];.foreach.($r
55e80 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 72 73 69 equires.as.$reqName.=>.$reqVersi
55ea0 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 40 5d 2a 3f on).{...if.(preg_match('{^[^@]*?
55ec0 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 24 73 74 61 @('.implode('|',.array_keys($sta
55ee0 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 bilities)).')$}i',.$reqVersion,.
55f00 24 6d 61 74 63 68 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 $match)).{.$name.=.strtolower($r
55f20 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 eqName);.$stability.=.$stabiliti
55f40 65 73 5b 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 es[VersionParser::normalizeStabi
55f60 6c 69 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 lity($match[1])];..if.(isset($st
55f80 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 abilityFlags[$name]).&&.$stabili
55fa0 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 tyFlags[$name].>.$stability).{.c
55fc0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 ontinue;.}.$stabilityFlags[$name
55fe0 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 ].=.$stability;..continue;.}....
56000 0a 20 24 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e ..$reqVersion.=.preg_replace('{^
56020 28 5b 5e 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 ([^,\s@]+).as..+$}',.'$1',.$reqV
56040 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 ersion);.if.(preg_match('{^[^,\s
56060 40 5d 2b 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 26 26 20 27 73 74 61 62 6c 65 27 @]+$}',.$reqVersion).&&.'stable'
56080 20 21 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 .!==.($stabilityName.=.VersionPa
560a0 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e rser::parseStability($reqVersion
560c0 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d ))).{.$name.=.strtolower($reqNam
560e0 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 24 73 e);.$stability.=.$stabilities[$s
56100 74 61 62 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 tabilityName];.if.((isset($stabi
56120 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
56140 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 7c 7c 20 28 24 6d lags[$name].>.$stability).||.($m
56160 69 6e 69 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 inimumStability.>.$stability)).{
56180 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 .continue;.}.$stabilityFlags[$na
561a0 6d 65 5d 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 me].=.$stability;.}.}..return.$s
561c0 74 61 62 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 tabilityFlags;.}..private.functi
561e0 6f 6e 20 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 on.extractReferences(array.$requ
56200 69 72 65 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 ires,.array.$references).{.forea
56220 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 ch.($requires.as.$reqName.=>.$re
56240 71 56 65 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 qVersion).{.$reqVersion.=.preg_r
56260 65 70 6c 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 eplace('{^([^,\s@]+).as..+$}',.'
56280 24 31 27 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 $1',.$reqVersion);.if.(preg_matc
562a0 68 28 27 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 h('{^[^,\s@]+?#([a-f0-9]+)$}',.$
562c0 72 65 71 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 reqVersion,.$match).&&.'dev'.===
562e0 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 72 .($stabilityName.=.VersionParser
56300 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 20 ::parseStability($reqVersion))).
56320 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 0a {.$name.=.strtolower($reqName);.
56340 24 72 65 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 $references[$name].=.$match[1];.
56360 7d 0a 7d 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 }.}..return.$references;.}..priv
56380 61 74 65 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 ate.function.guessVersion(array.
563a0 24 63 6f 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 $config).{.if.(function_exists('
563c0 70 72 6f 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 proc_open')).{.$version.=.$this-
563e0 3e 67 75 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 >guessGitVersion($config);.if.(n
56400 75 6c 6c 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 ull.!==.$version).{.return.$vers
56420 69 6f 6e 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 48 ion;.}..$version.=.$this->guessH
56440 67 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 20 21 3d 3d 20 gVersion($config);.if.(null.!==.
56460 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 3b 0a 7d 0a 0a $version).{.return.$version;.}..
56480 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 75 65 73 73 53 76 6e 56 65 72 73 69 6f 6e 28 24 63 return.$this->guessSvnVersion($c
564a0 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 6e 20 67 75 onfig);.}.}..private.function.gu
564c0 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 0a 7b 0a 47 essGitVersion(array.$config).{.G
564e0 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d itUtil::cleanEnv();....if.(0.===
56500 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 64 65 .$this->process->execute('git.de
56520 73 63 72 69 62 65 20 2d 2d 65 78 61 63 74 2d 6d 61 74 63 68 20 2d 2d 74 61 67 73 27 2c 20 24 6f scribe.--exact-match.--tags',.$o
56540 75 74 70 75 74 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 utput)).{.try.{.return.$this->ve
56560 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 74 72 69 6d 28 24 6f 75 74 rsionParser->normalize(trim($out
56580 70 75 74 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 put));.}.catch.(\Exception.$e).{
565a0 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 .}.}....if.(0.===.$this->process
565c0 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 ->execute('git.branch.--no-color
565e0 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 .--no-abbrev.-v',.$output)).{.$b
56600 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 ranches.=.array();.$isFeatureBra
56620 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a nch.=.false;.$version.=.null;...
56640 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c .foreach.($this->process->splitL
56660 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.(
56680 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 $branch.&&.preg_match('{^(?:\*.)
566a0 20 2a 28 5c 28 6e 6f 20 62 72 61 6e 63 68 5c 29 7c 5c 28 64 65 74 61 63 68 65 64 20 66 72 6f 6d .*(\(no.branch\)|\(detached.from
566c0 20 5c 53 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 .\S+\)|\S+).*([a-f0-9]+)..*$}',.
566e0 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 5b 31 $branch,.$match)).{.if.($match[1
56700 5d 20 3d 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 ].===.'(no.branch)'.||.substr($m
56720 61 74 63 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 atch[1],.0,.10).===.'(detached.'
56740 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 32 5d 3b ).{.$version.=.'dev-'.$match[2];
56760 0a 24 69 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 .$isFeatureBranch.=.true;.}.else
56780 20 7b 0a 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 .{.$version.=.$this->versionPars
567a0 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a er->normalizeBranch($match[1]);.
567c0 24 69 73 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 $isFeatureBranch.=.0.===.strpos(
567e0 24 76 65 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 $version,.'dev-');.if.('9999999-
56800 64 65 76 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 dev'.===.$version).{.$version.=.
56820 27 64 65 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 'dev-'.$match[1];.}.}.}..if.($br
56840 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 2b 2f 48 anch.&&.!preg_match('{^.*[^/]+/H
56860 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 6d 61 74 EAD.}',.$branch)).{.if.(preg_mat
56880 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 2d 39 5d ch('{^(?:\*.)?.*(\S+).*([a-f0-9]
568a0 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 +)..*$}',.$branch,.$match)).{.$b
568c0 72 61 6e 63 68 65 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 ranches[].=.$match[1];.}.}.}..if
568e0 20 28 21 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 .(!$isFeatureBranch).{.return.$v
56900 65 72 73 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 ersion;.}....$version.=.$this->g
56920 75 65 73 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 uessFeatureVersion($config,.$ver
56940 73 69 6f 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 sion,.$branches,.'git.rev-list.%
56960 63 61 6e 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 candidate%..%branch%');..return.
56980 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 69 6f 6e 20 $version;.}.}..private.function.
569a0 67 75 65 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 guessHgVersion(array.$config).{.
569c0 0a 20 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
569e0 75 74 65 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 ute('hg.branch',.$output)).{.$br
56a00 61 6e 63 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 anch.=.trim($output);.$version.=
56a20 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
56a40 42 72 61 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 Branch($branch);.$isFeatureBranc
56a60 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 2d h.=.0.===.strpos($version,.'dev-
56a80 27 29 3b 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 ');..if.('9999999-dev'.===.$vers
56aa0 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 62 72 61 6e 63 68 ion).{.$version.=.'dev-'.$branch
56ac0 3b 0a 7d 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 ;.}..if.(!$isFeatureBranch).{.re
56ae0 74 75 72 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 turn.$version;.}....$config.=.ar
56b00 72 61 79 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 ray('url'.=>.getcwd());.$driver.
56b20 3d 20 6e 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 =.new.HgDriver($config,.new.Null
56b40 49 4f 28 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 IO(),.$this->config,.$this->proc
56b60 65 73 73 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 ess);.$branches.=.array_keys($dr
56b80 69 76 65 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 iver->getBranches());....$versio
56ba0 6e 20 3d 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 n.=.$this->guessFeatureVersion($
56bc0 63 6f 6e 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 config,.$version,.$branches,.'hg
56be0 20 6c 6f 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 .log.-r."not.ancestors(\'%candid
56c00 61 74 65 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 ate%\').and.ancestors(\'%branch%
56c20 5c 27 29 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 \')".--template."{node}\\n"');..
56c40 72 65 74 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 return.$version;.}.}..private.fu
56c60 6e 63 74 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 nction.guessFeatureVersion(array
56c80 20 24 63 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 .$config,.$version,.array.$branc
56ca0 68 65 73 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 hes,.$scmCmdline).{.....if.((iss
56cc0 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 et($config['extra']['branch-alia
56ce0 73 27 5d 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 s']).&&.!isset($config['extra'][
56d00 27 62 72 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 'branch-alias'][$version])).||.s
56d20 74 72 70 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 trpos(json_encode($config),.'"se
56d40 6c 66 2e 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 lf.version"').).{.$branch.=.preg
56d60 5f 72 65 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 _replace('{^dev-}',.'',.$version
56d80 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 0a 24 6e 6f 6e 46 );.$length.=.PHP_INT_MAX;..$nonF
56da0 65 61 74 75 72 65 42 72 61 6e 63 68 65 73 20 3d 20 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 eatureBranches.=.'';.if.(!empty(
56dc0 24 63 6f 6e 66 69 67 5b 27 6e 6f 6e 2d 66 65 61 74 75 72 65 2d 62 72 61 6e 63 68 65 73 27 5d 29 $config['non-feature-branches'])
56de0 29 20 7b 0a 24 6e 6f 6e 46 65 61 74 75 72 65 42 72 61 6e 63 68 65 73 20 3d 20 69 6d 70 6c 6f 64 ).{.$nonFeatureBranches.=.implod
56e00 65 28 27 7c 27 2c 20 24 63 6f 6e 66 69 67 5b 27 6e 6f 6e 2d 66 65 61 74 75 72 65 2d 62 72 61 6e e('|',.$config['non-feature-bran
56e20 63 68 65 73 27 5d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 ches']);.}..foreach.($branches.a
56e40 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 s.$candidate).{...if.($candidate
56e60 20 3d 3d 3d 20 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 27 .===.$branch.&&.preg_match('{^('
56e80 20 2e 20 24 6e 6f 6e 46 65 61 74 75 72 65 42 72 61 6e 63 68 65 73 20 2e 20 27 29 24 7d 27 2c 20 ...$nonFeatureBranches...')$}',.
56ea0 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a $candidate)).{.return.$version;.
56ec0 7d 0a 0a 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 3d 3d 3d 20 24 62 72 61 6e 63 68 20 }....if.($candidate.===.$branch.
56ee0 7c 7c 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c ||.!preg_match('{^(master|trunk|
56f00 64 65 66 61 75 6c 74 7c 64 65 76 65 6c 6f 70 7c 5c 64 2b 5c 2e 2e 2b 29 24 7d 27 2c 20 24 63 61 default|develop|\d+\..+)$}',.$ca
56f20 6e 64 69 64 61 74 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a ndidate,.$match)).{.continue;.}.
56f40 0a 24 63 6d 64 4c 69 6e 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 .$cmdLine.=.str_replace(array('%
56f60 63 61 6e 64 69 64 61 74 65 25 27 2c 20 27 25 62 72 61 6e 63 68 25 27 29 2c 20 61 72 72 61 79 28 candidate%',.'%branch%'),.array(
56f80 24 63 61 6e 64 69 64 61 74 65 2c 20 24 62 72 61 6e 63 68 29 2c 20 24 73 63 6d 43 6d 64 6c 69 6e $candidate,.$branch),.$scmCmdlin
56fa0 65 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 e);.if.(0.!==.$this->process->ex
56fc0 65 63 75 74 65 28 24 63 6d 64 4c 69 6e 65 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 63 6f 6e 74 ecute($cmdLine,.$output)).{.cont
56fe0 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 20 3c 20 24 inue;.}..if.(strlen($output).<.$
57000 6c 65 6e 67 74 68 29 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 75 74 70 length).{.$length.=.strlen($outp
57020 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 ut);.$version.=.$this->versionPa
57040 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 63 61 6e 64 69 64 61 74 65 rser->normalizeBranch($candidate
57060 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f );.if.('9999999-dev'.===.$versio
57080 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 31 5d n).{.$version.=.'dev-'.$match[1]
570a0 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 ;.}.}.}.}..return.$version;.}..p
570c0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 53 76 6e 56 65 72 73 69 6f 6e 28 rivate.function.guessSvnVersion(
570e0 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 53 76 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 array.$config).{.SvnUtil::cleanE
57100 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 72 6f 63 65 73 nv();....if.(0.===.$this->proces
57120 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 6e 66 6f 20 2d 2d 78 6d 6c 27 2c 20 24 6f 75 s->execute('svn.info.--xml',.$ou
57140 74 70 75 74 29 29 20 7b 0a 24 74 72 75 6e 6b 50 61 74 68 20 3d 20 69 73 73 65 74 28 24 63 6f 6e tput)).{.$trunkPath.=.isset($con
57160 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 29 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 fig['trunk-path']).?.preg_quote(
57180 24 63 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 2c 20 27 23 27 29 20 3a 20 27 74 $config['trunk-path'],.'#').:.'t
571a0 72 75 6e 6b 27 3b 0a 24 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 69 73 73 65 74 28 24 63 6f runk';.$branchesPath.=.isset($co
571c0 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 29 20 3f 20 70 72 65 67 5f 71 75 nfig['branches-path']).?.preg_qu
571e0 6f 74 65 28 24 63 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 2c 20 27 23 ote($config['branches-path'],.'#
57200 27 29 20 3a 20 27 62 72 61 6e 63 68 65 73 27 3b 0a 24 74 61 67 73 50 61 74 68 20 3d 20 69 73 73 ').:.'branches';.$tagsPath.=.iss
57220 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 29 20 3f 20 70 72 65 67 5f et($config['tags-path']).?.preg_
57240 71 75 6f 74 65 28 24 63 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 2c 20 27 23 27 29 quote($config['tags-path'],.'#')
57260 20 3a 20 27 74 61 67 73 27 3b 0a 0a 24 75 72 6c 50 61 74 74 65 72 6e 20 3d 20 27 23 3c 75 72 6c .:.'tags';..$urlPattern.=.'#<url
57280 3e 2e 2a 2f 28 27 2e 24 74 72 75 6e 6b 50 61 74 68 2e 27 7c 28 27 2e 24 62 72 61 6e 63 68 65 73 >.*/('.$trunkPath.'|('.$branches
572a0 50 61 74 68 2e 27 7c 27 2e 20 24 74 61 67 73 50 61 74 68 20 2e 27 29 2f 28 2e 2a 29 29 3c 2f 75 Path.'|'..$tagsPath..')/(.*))</u
572c0 72 6c 3e 23 27 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 75 72 6c 50 61 74 74 65 rl>#';..if.(preg_match($urlPatte
572e0 72 6e 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 rn,.$output,.$matches)).{.if.(is
57300 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 26 26 20 28 24 62 72 61 6e 63 68 65 73 50 61 set($matches[2]).&&.($branchesPa
57320 74 68 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 7c 7c 20 24 74 61 67 73 50 61 74 68 20 th.===.$matches[2].||.$tagsPath.
57340 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d ===.$matches[2])).{...$version.=
57360 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
57380 42 72 61 6e 63 68 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 Branch($matches[3]);.if.('999999
573a0 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 72 73 69 6f 6e 20 9-dev'.===.$version).{.$version.
573c0 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 =.'dev-'.$matches[3];.}..return.
573e0 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 $version;.}..return.$this->versi
57400 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 74 72 69 6d 28 24 6d 61 74 63 68 65 onParser->normalize(trim($matche
57420 73 5b 31 5d 29 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 s[1]));.}.}.}.}.<?php...........
57440 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 .namespace.Composer\Package;..us
57460 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
57480 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 6e 4d 61 6e mposer\Installer\InstallationMan
574a0 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 ager;.use.Composer\Repository\Re
574c0 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 65 72 5c 55 74 positoryManager;.use.Composer\Ut
574e0 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 il\ProcessExecutor;.use.Composer
57500 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 \Repository\ArrayRepository;.use
57520 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 .Composer\Package\Dumper\ArrayDu
57540 6d 70 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 mper;.use.Composer\Package\Loade
57560 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 6b r\ArrayLoader;.use.Composer\Pack
57580 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
575a0 6f 6d 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 omposer\Util\Git.as.GitUtil;.use
575c0 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 0a 0a .Composer\IO\IOInterface;.......
575e0 0a 63 6c 61 73 73 20 4c 6f 63 6b 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 46 69 6c .class.Locker.{.private.$lockFil
57600 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 70 e;.private.$repositoryManager;.p
57620 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 rivate.$installationManager;.pri
57640 76 61 74 65 20 24 68 61 73 68 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 vate.$hash;.private.$loader;.pri
57660 76 61 74 65 20 24 64 75 6d 70 65 72 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a vate.$dumper;.private.$process;.
57680 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a private.$lockDataCache;.........
576a0 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
576c0 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 4a 73 6f 6e 46 69 6c 65 20 24 6c 6f 63 6b 46 69 6c Interface.$io,.JsonFile.$lockFil
576e0 65 2c 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 e,.RepositoryManager.$repository
57700 4d 61 6e 61 67 65 72 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 Manager,.InstallationManager.$in
57720 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 68 61 73 68 29 0a 7b 0a 24 74 68 69 stallationManager,.$hash).{.$thi
57740 73 2d 3e 6c 6f 63 6b 46 69 6c 65 20 3d 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 24 74 68 69 73 2d 3e s->lockFile.=.$lockFile;.$this->
57760 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 79 4d repositoryManager.=.$repositoryM
57780 61 6e 61 67 65 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 anager;.$this->installationManag
577a0 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 er.=.$installationManager;.$this
577c0 2d 3e 68 61 73 68 20 3d 20 24 68 61 73 68 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 ->hash.=.$hash;.$this->loader.=.
577e0 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 24 74 68 new.ArrayLoader(null,.true);.$th
57800 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 0a is->dumper.=.new.ArrayDumper();.
57820 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 63 $this->process.=.new.ProcessExec
57840 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 69 utor($io);.}.......public.functi
57860 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 6b on.isLocked().{.if.(!$this->lock
57880 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 0a File->exists()).{.return.false;.
578a0 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 3b }..$data.=.$this->getLockData();
578c0 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 5d ..return.isset($data['packages']
578e0 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 65 );.}.......public.function.isFre
57900 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 3e sh().{.$lock.=.$this->lockFile->
57920 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 20 read();..return.$this->hash.===.
57940 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 20 $lock['hash'];.}.........public.
57960 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 69 function.getLockedRepository($wi
57980 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 3d thDevReqs.=.false).{.$lockData.=
579a0 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 73 .$this->getLockData();.$packages
579c0 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 6b .=.new.ArrayRepository();..$lock
579e0 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 73 edPackages.=.$lockData['packages
57a00 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 65 '];.if.($withDevReqs).{.if.(isse
57a20 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 0a t($lockData['packages-dev'])).{.
57a40 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 6c $lockedPackages.=.array_merge($l
57a60 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 67 ockedPackages,.$lockData['packag
57a80 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 52 es-dev']);.}.else.{.throw.new.\R
57aa0 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 64 untimeException('The.lock.file.d
57ac0 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 6f oes.not.contain.require-dev.info
57ae0 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 2d rmation,.run.install.with.the.--
57b00 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 69 no-dev.option.or.run.update.to.i
57b20 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 69 nstall.those.packages.');.}.}..i
57b40 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 74 f.(empty($lockedPackages)).{.ret
57b60 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 63 urn.$packages;.}..if.(isset($loc
57b80 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 61 kedPackages[0]['name'])).{.forea
57ba0 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 0a ch.($lockedPackages.as.$info).{.
57bc0 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 61 $packages->addPackage($this->loa
57be0 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 61 der->load($info));.}..return.$pa
57c00 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 63 ckages;.}..throw.new.\RuntimeExc
57c20 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 63 eption('Your.composer.lock.was.c
57c40 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 73 reated.before.2012-09-15,.and.is
57c60 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 6d .not.supported.anymore..Run."com
57c80 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 20 poser.update".to.generate.a.new.
57ca0 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 6e one.');.}........public.function
57cc0 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 65 .getPlatformRequirements($withDe
57ce0 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 68 vReqs.=.false).{.$lockData.=.$th
57d00 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 65 is->getLockData();.$versionParse
57d20 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 72 r.=.new.VersionParser();.$requir
57d40 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 6c ements.=.array();..if.(!empty($l
57d60 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 65 ockData['platform'])).{.$require
57d80 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 6e ments.=.$versionParser->parseLin
57da0 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 72 ks(.'__ROOT__',.'1.0.0',.'requir
57dc0 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 5d es',.isset($lockData['platform']
57de0 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 61 ).?.$lockData['platform'].:.arra
57e00 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 65 y().);.}..if.($withDevReqs.&&.!e
57e20 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 29 mpty($lockData['platform-dev']))
57e40 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 61 .{.$devRequirements.=.$versionPa
57e60 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 31 rser->parseLinks(.'__ROOT__',.'1
57e80 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 61 .0.0',.'requires',.isset($lockDa
57ea0 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 5b ta['platform-dev']).?.$lockData[
57ec0 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 72 'platform-dev'].:.array().);..$r
57ee0 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 69 equirements.=.array_merge($requi
57f00 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 72 rements,.$devRequirements);.}..r
57f20 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 66 eturn.$requirements;.}..public.f
57f40 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().{.
57f60 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 $lockData.=.$this->getLockData()
57f80 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e 69 6d ;..return.isset($lockData['minim
57fa0 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e um-stability']).?.$lockData['min
57fc0 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3a 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a imum-stability'].:.'stable';.}..
57fe0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 public.function.getStabilityFlag
58000 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b s().{.$lockData.=.$this->getLock
58020 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b Data();..return.isset($lockData[
58040 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 'stability-flags']).?.$lockData[
58060 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 'stability-flags'].:.array();.}.
58080 0a 70 75 62 6c 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 .public.function.getPreferStable
580a0 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 ().{.$lockData.=.$this->getLockD
580c0 61 74 61 28 29 3b 0a 0a 0a 20 0a 20 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 ata();......return.isset($lockDa
580e0 74 61 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 ta['prefer-stable']).?.$lockData
58100 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 ['prefer-stable'].:.null;.}..pub
58120 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 4c 6f 77 65 73 74 28 29 0a 7b lic.function.getPreferLowest().{
58140 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(
58160 29 3b 0a 0a 0a 20 0a 20 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 );......return.isset($lockData['
58180 70 72 65 66 65 72 2d 6c 6f 77 65 73 74 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 72 prefer-lowest']).?.$lockData['pr
581a0 65 66 65 72 2d 6c 6f 77 65 73 74 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 efer-lowest'].:.null;.}..public.
581c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 function.getAliases().{.$lockDat
581e0 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 a.=.$this->getLockData();..retur
58200 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 29 20 3f 20 n.isset($lockData['aliases']).?.
58220 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a $lockData['aliases'].:.array();.
58240 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 }..public.function.getLockData()
58260 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 .{.if.(null.!==.$this->lockDataC
58280 61 63 68 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 ache).{.return.$this->lockDataCa
582a0 63 68 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 che;.}..if.(!$this->lockFile->ex
582c0 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 ists()).{.throw.new.\LogicExcept
582e0 69 6f 6e 28 27 4e 6f 20 6c 6f 63 6b 66 69 6c 65 20 66 6f 75 6e 64 2e 20 55 6e 61 62 6c 65 20 74 ion('No.lockfile.found..Unable.t
58300 6f 20 72 65 61 64 20 6c 6f 63 6b 65 64 20 70 61 63 6b 61 67 65 73 27 29 3b 0a 7d 0a 0a 72 65 74 o.read.locked.packages');.}..ret
58320 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 24 74 68 69 73 urn.$this->lockDataCache.=.$this
58340 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->lockFile->read();.}...........
58360 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 44 61 74 ......public.function.setLockDat
58380 61 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 64 65 76 50 61 63 6b 61 67 65 73 2c a(array.$packages,.$devPackages,
583a0 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 61 74 66 6f 72 6d 44 .array.$platformReqs,.$platformD
583c0 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 6d 69 6e 69 6d 75 6d evReqs,.array.$aliases,.$minimum
583e0 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 74 79 46 6c 61 67 73 Stability,.array.$stabilityFlags
58400 2c 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 2c 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 29 0a ,.$preferStable,.$preferLowest).
58420 7b 0a 24 6c 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a 27 5f 72 65 61 64 6d 65 27 20 3d 3e 20 61 72 {.$lock.=.array(.'_readme'.=>.ar
58440 72 61 79 28 27 54 68 69 73 20 66 69 6c 65 20 6c 6f 63 6b 73 20 74 68 65 20 64 65 70 65 6e 64 65 ray('This.file.locks.the.depende
58460 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 20 74 6f 20 61 20 6b 6e 6f 77 6e ncies.of.your.project.to.a.known
58480 20 73 74 61 74 65 27 2c 0a 27 52 65 61 64 20 6d 6f 72 65 20 61 62 6f 75 74 20 69 74 20 61 74 20 .state',.'Read.more.about.it.at.
584a0 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 31 2d 62 61 http://getcomposer.org/doc/01-ba
584c0 73 69 63 2d 75 73 61 67 65 2e 6d 64 23 63 6f 6d 70 6f 73 65 72 2d 6c 6f 63 6b 2d 74 68 65 2d 6c sic-usage.md#composer-lock-the-l
584e0 6f 63 6b 2d 66 69 6c 65 27 2c 0a 27 54 68 69 73 20 66 69 6c 65 20 69 73 20 40 67 65 6e 65 72 27 ock-file',.'This.file.is.@gener'
58500 2e 27 61 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 27 29 2c 0a 27 68 61 73 68 27 20 3d .'ated.automatically'),.'hash'.=
58520 3e 20 24 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 >.$this->hash,.'packages'.=>.nul
58540 6c 2c 0a 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 l,.'packages-dev'.=>.null,.'alia
58560 73 65 73 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 ses'.=>.array(),.'minimum-stabil
58580 69 74 79 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 ity'.=>.$minimumStability,.'stab
585a0 69 6c 69 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 ility-flags'.=>.$stabilityFlags,
585c0 0a 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 20 3d 3e 20 24 70 72 65 66 65 72 53 74 61 62 6c .'prefer-stable'.=>.$preferStabl
585e0 65 2c 0a 27 70 72 65 66 65 72 2d 6c 6f 77 65 73 74 27 20 3d 3e 20 24 70 72 65 66 65 72 4c 6f 77 e,.'prefer-lowest'.=>.$preferLow
58600 65 73 74 2c 0a 29 3b 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 est,.);..foreach.($aliases.as.$p
58620 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 ackage.=>.$versions).{.foreach.(
58640 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 $versions.as.$version.=>.$alias)
58660 20 7b 0a 24 6c 6f 63 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 .{.$lock['aliases'][].=.array(.'
58680 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 alias'.=>.$alias['alias'],.'alia
586a0 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e s_normalized'.=>.$alias['alias_n
586c0 6f 72 6d 61 6c 69 7a 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 ormalized'],.'version'.=>.$versi
586e0 6f 6e 2c 0a 27 70 61 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 on,.'package'.=>.$package,.);.}.
58700 7d 0a 0a 24 6c 6f 63 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 }..$lock['packages'].=.$this->lo
58720 63 6b 50 61 63 6b 61 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 ckPackages($packages);.if.(null.
58740 21 3d 3d 20 24 64 65 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 !==.$devPackages).{.$lock['packa
58760 67 65 73 2d 64 65 76 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 ges-dev'].=.$this->lockPackages(
58780 24 64 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 $devPackages);.}..$lock['platfor
587a0 6d 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 3b 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 m'].=.$platformReqs;.$lock['plat
587c0 66 6f 72 6d 2d 64 65 76 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 3b 0a 0a form-dev'].=.$platformDevReqs;..
587e0 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 if.(empty($lock['packages']).&&.
58800 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 20 26 26 20 empty($lock['packages-dev']).&&.
58820 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 29 20 26 26 20 65 6d 70 74 empty($lock['platform']).&&.empt
58840 79 28 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 29 29 20 7b 0a 69 66 20 28 y($lock['platform-dev'])).{.if.(
58860 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 75 6e 6c $this->lockFile->exists()).{.unl
58880 69 6e 6b 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b ink($this->lockFile->getPath());
588a0 0a 7d 0a 0a 72 65 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 .}..return.false;.}..if.(!$this-
588c0 3e 69 73 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 >isLocked().||.$lock.!==.$this->
588e0 67 65 74 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 getLockData()).{.$this->lockFile
58900 2d 3e 77 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 ->write($lock);.$this->lockDataC
58920 61 63 68 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 ache.=.null;..return.true;.}..re
58940 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 6f 6e 20 turn.false;.}..private.function.
58960 6c 6f 63 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 lockPackages(array.$packages).{.
58980 24 6c 6f 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 $locked.=.array();..foreach.($pa
589a0 63 6b 61 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 ckages.as.$package).{.if.($packa
589c0 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 63 6f ge.instanceof.AliasPackage).{.co
589e0 6e 74 69 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 ntinue;.}..$name.=.$package->get
58a00 50 72 65 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 PrettyName();.$version.=.$packag
58a20 65 2d 3e 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 e->getPrettyVersion();..if.(!$na
58a40 6d 65 20 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 me.||.!$version).{.throw.new.\Lo
58a60 67 69 63 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 gicException(sprintf(.'Package."
58a80 25 73 22 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 %s".has.no.version.or.name.and.c
58aa0 61 6e 20 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 an.not.be.locked',.$package.));.
58ac0 7d 0a 0a 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 }..$spec.=.$this->dumper->dump($
58ae0 70 61 63 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 package);.unset($spec['version_n
58b00 6f 72 6d 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 ormalized']);....$time.=.isset($
58b20 73 70 65 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 spec['time']).?.$spec['time'].:.
58b40 6e 75 6c 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 null;.unset($spec['time']);.if.(
58b60 24 70 61 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 $package->isDev().&&.$package->g
58b80 65 74 49 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 etInstallationSource().===.'sour
58ba0 63 65 27 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 ce').{...$time.=.$this->getPacka
58bc0 67 65 54 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 geTime($package).?:.$time;.}.if.
58be0 28 6e 75 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 (null.!==.$time).{.$spec['time']
58c00 20 3d 20 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 .=.$time;.}..unset($spec['instal
58c20 6c 61 74 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 lation-source']);..$locked[].=.$
58c40 73 70 65 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c 6f 63 6b 65 64 2c 20 66 75 6e 63 74 69 6f 6e spec;.}..usort($locked,.function
58c60 20 28 24 61 2c 20 24 62 29 20 7b 0a 24 63 6f 6d 70 61 72 69 73 6f 6e 20 3d 20 73 74 72 63 6d 70 .($a,.$b).{.$comparison.=.strcmp
58c80 28 24 61 5b 27 6e 61 6d 65 27 5d 2c 20 24 62 5b 27 6e 61 6d 65 27 5d 29 3b 0a 0a 69 66 20 28 30 ($a['name'],.$b['name']);..if.(0
58ca0 20 21 3d 3d 20 24 63 6f 6d 70 61 72 69 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 .!==.$comparison).{.return.$comp
58cc0 61 72 69 73 6f 6e 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 5b 27 76 arison;.}....return.strcmp($a['v
58ce0 65 72 73 69 6f 6e 27 5d 2c 20 24 62 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 29 3b 0a 0a 72 ersion'],.$b['version']);.});..r
58d00 65 74 75 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 eturn.$locked;.}........private.
58d20 66 75 6e 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 function.getPackageTime(PackageI
58d40 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 66 75 6e 63 74 69 nterface.$package).{.if.(!functi
58d60 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e on_exists('proc_open')).{.return
58d80 20 6e 75 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 .null;.}..$path.=.realpath($this
58da0 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c ->installationManager->getInstal
58dc0 6c 50 61 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 lPath($package));.$sourceType.=.
58de0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 65 $package->getSourceType();.$date
58e00 74 69 6d 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 time.=.null;..if.($path.&&.in_ar
58e20 72 61 79 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 ray($sourceType,.array('git',.'h
58e40 67 27 29 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 g'))).{.$sourceRef.=.$package->g
58e60 65 74 53 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 etSourceReference().?:.$package-
58e80 3e 67 65 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 >getDistReference();.switch.($so
58ea0 75 72 63 65 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 67 69 74 27 3a 0a 47 69 74 55 74 69 6c 3a urceType).{.case.'git':.GitUtil:
58ec0 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 :cleanEnv();..if.(0.===.$this->p
58ee0 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 6c 6f 67 20 2d 6e 31 20 2d 2d 70 rocess->execute('git.log.-n1.--p
58f00 72 65 74 74 79 3d 25 63 74 20 27 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 retty=%ct.'.ProcessExecutor::esc
58f20 61 70 65 28 24 73 6f 75 72 63 65 52 65 66 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 ape($sourceRef),.$output,.$path)
58f40 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 73 2a 24 7d 27 2c 20 .&&.preg_match('{^\s*\d+\s*$}',.
58f60 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 65 77 20 5c 44 61 74 $output)).{.$datetime.=.new.\Dat
58f80 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 6e 65 77 20 5c 44 61 eTime('@'.trim($output),.new.\Da
58fa0 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 61 6b 3b 0a 0a 63 61 teTimeZone('UTC'));.}.break;..ca
58fc0 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 3e 70 72 6f 63 65 73 se.'hg':.if.(0.===.$this->proces
58fe0 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 6c 61 74 65 20 22 7b s->execute('hg.log.--template."{
59000 64 61 74 65 7c 68 67 64 61 74 65 7d 22 20 2d 72 20 27 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 date|hgdate}".-r.'.ProcessExecut
59020 6f 72 3a 3a 65 73 63 61 70 65 28 24 73 6f 75 72 63 65 52 65 66 29 2c 20 24 6f 75 74 70 75 74 2c or::escape($sourceRef),.$output,
59040 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 28 5c 64 2b .$path).&&.preg_match('{^\s*(\d+
59060 29 5c 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 )\s*}',.$output,.$match)).{.$dat
59080 65 74 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 etime.=.new.\DateTime('@'.$match
590a0 5b 31 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 [1],.new.\DateTimeZone('UTC'));.
590c0 7d 0a 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 }.break;.}.}..return.$datetime.?
590e0 20 24 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 .$datetime->format('Y-m-d.H:i:s'
59100 29 20 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 ).:.null;.}.}.<?php............n
59120 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 amespace.Composer\Package;..use.
59140 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
59160 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 50 61 63 6b 61 67 65 terface;.......interface.Package
59180 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Interface.{......public.function
591a0 20 67 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 .getName();.......public.functio
591c0 6e 20 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 n.getPrettyName();..........publ
591e0 69 63 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 ic.function.getNames();.......pu
59200 62 6c 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 blic.function.setId($id);.......
59220 70 75 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 public.function.getId();.......p
59240 75 62 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 ublic.function.isDev();.......pu
59260 62 6c 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 blic.function.getType();.......p
59280 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a ublic.function.getTargetDir();..
592a0 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 74 72 61 28 29 3b .....public.function.getExtra();
592c0 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 73 74 61 6c .......public.function.setInstal
592e0 6c 61 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 lationSource($type);.......publi
59300 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
59320 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 ();.......public.function.getSou
59340 72 63 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 rceType();.......public.function
59360 20 67 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 .getSourceUrl();.......public.fu
59380 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 nction.getSourceUrls();.......pu
593a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 blic.function.getSourceReference
593c0 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 ();.......public.function.getSou
593e0 72 63 65 4d 69 72 72 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rceMirrors();.......public.funct
59400 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ion.getDistType();.......public.
59420 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 function.getDistUrl();.......pub
59440 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 73 28 29 3b 0a 0a 0a 0a 0a lic.function.getDistUrls();.....
59460 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e ..public.function.getDistReferen
59480 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 ce();.......public.function.getD
594a0 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 istSha1Checksum();.......public.
594c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a function.getDistMirrors();......
594e0 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();..
59500 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
59520 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
59540 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
59560 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
59580 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();....
595a0 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
595c0 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
595e0 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
59600 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
59620 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();........
59640 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();..
59660 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
59680 6f 6c 6f 61 64 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 oload();............public.funct
596a0 69 6f 6e 20 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ion.getDevAutoload();........pub
596c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a lic.function.getIncludePaths();.
596e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 ......public.function.setReposit
59700 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 ory(RepositoryInterface.$reposit
59720 6f 72 79 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 ory);.......public.function.getR
59740 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 epository();.......public.functi
59760 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 on.getBinaries();.......public.f
59780 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 unction.getUniqueName();.......p
597a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 ublic.function.getNotificationUr
597c0 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 l();.......public.function.__toS
597e0 74 72 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 tring();.......public.function.g
59800 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 etPrettyString();.......public.f
59820 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 3b 0a 0a 0a unction.getArchiveExcludes();...
59840 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 72 61 6e 73 70 6f 72 74 ....public.function.getTransport
59860 4f 70 74 69 6f 6e 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 Options();.}.<?php............na
59880 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 mespace.Composer\Package;..use.C
598a0 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 74 omposer\Repository\RepositoryInt
598c0 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c erface;.use.Composer\Repository\
598e0 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 PlatformRepository;.......abstra
59900 63 74 20 63 6c 61 73 73 20 42 61 73 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 ct.class.BasePackage.implements.
59920 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 PackageInterface.{.public.static
59940 20 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 .$supportedLinkTypes.=.array(.'r
59960 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d equire'.=>.array('description'.=
59980 3e 20 27 72 65 71 75 69 72 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 71 75 69 >.'requires',.'method'.=>.'requi
599a0 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c 69 63 74 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 res'),.'conflict'.=>.array('desc
599c0 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 6d 65 74 68 6f 64 ription'.=>.'conflicts',.'method
599e0 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 2c 0a 27 70 72 6f 76 69 64 65 27 20 3d 3e 20 '.=>.'conflicts'),.'provide'.=>.
59a00 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 array('description'.=>.'provides
59a20 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 29 2c 0a 27 72 65 70 ',.'method'.=>.'provides'),.'rep
59a40 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 lace'.=>.array('description'.=>.
59a60 27 72 65 70 6c 61 63 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 'replaces',.'method'.=>.'replace
59a80 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 s'),.'require-dev'.=>.array('des
59aa0 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 20 28 66 6f 72 20 64 65 76 65 cription'.=>.'requires.(for.deve
59ac0 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 lopment)',.'method'.=>.'devRequi
59ae0 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c res'),.);..const.STABILITY_STABL
59b00 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 52 43 20 3d 20 35 3b 0a 63 E.=.0;.const.STABILITY_RC.=.5;.c
59b20 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 42 45 54 41 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 onst.STABILITY_BETA.=.10;.const.
59b40 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 20 3d 20 31 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 STABILITY_ALPHA.=.15;.const.STAB
59b60 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 30 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 ILITY_DEV.=.20;..public.static.$
59b80 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 73 74 61 62 6c 65 27 20 3d 3e stabilities.=.array(.'stable'.=>
59ba0 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 2c 0a 27 52 43 27 20 3d 3e .self::STABILITY_STABLE,.'RC'.=>
59bc0 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 52 43 2c 0a 27 62 65 74 61 27 20 3d 3e 20 73 .self::STABILITY_RC,.'beta'.=>.s
59be0 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 42 45 54 41 2c 0a 27 61 6c 70 68 61 27 20 3d 3e 20 elf::STABILITY_BETA,.'alpha'.=>.
59c00 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 2c 0a 27 64 65 76 27 20 3d 3e 20 self::STABILITY_ALPHA,.'dev'.=>.
59c20 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 0a 0a 0a 0a 70 75 62 self::STABILITY_DEV,.);......pub
59c40 6c 69 63 20 24 69 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 65 lic.$id;..protected.$name;.prote
59c60 63 74 65 64 20 24 70 72 65 74 74 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 cted.$prettyName;..protected.$re
59c80 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 61 6e 73 70 6f 72 74 4f 70 pository;.protected.$transportOp
59ca0 74 69 6f 6e 73 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 tions;.......public.function.__c
59cc0 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e onstruct($name).{.$this->prettyN
59ce0 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 73 74 72 74 6f ame.=.$name;.$this->name.=.strto
59d00 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 24 74 lower($name);.$this->id.=.-1;.$t
59d20 68 69 73 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b his->transportOptions.=.array();
59d40 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 .}.....public.function.getName()
59d60 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 70 75 62 .{.return.$this->name;.}.....pub
59d80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 0a 7b 0a 72 lic.function.getPrettyName().{.r
59da0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 eturn.$this->prettyName;.}.....p
59dc0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 28 29 0a 7b 0a 24 6e 61 6d ublic.function.getNames().{.$nam
59de0 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 es.=.array(.$this->getName().=>.
59e00 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f true,.);..foreach.($this->getPro
59e20 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b vides().as.$link).{.$names[$link
59e40 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 ->getTarget()].=.true;.}..foreac
59e60 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b h.($this->getReplaces().as.$link
59e80 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d ).{.$names[$link->getTarget()].=
59ea0 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d .true;.}..return.array_keys($nam
59ec0 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 es);.}.....public.function.setId
59ee0 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 0a 0a 0a 70 ($id).{.$this->id.=.$id;.}.....p
59f00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ublic.function.getId().{.return.
59f20 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 74 69 6f 6e $this->id;.}.....public.function
59f40 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 65 72 66 61 .setRepository(RepositoryInterfa
59f60 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 3e 72 65 70 ce.$repository).{.if.($this->rep
59f80 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 74 68 69 73 ository.&&.$repository.!==.$this
59fa0 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 6f 67 69 63 ->repository).{.throw.new.\Logic
59fc0 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 79 20 62 65 Exception('A.package.can.only.be
59fe0 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 7d 0a 24 74 .added.to.one.repository');.}.$t
5a000 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 79 3b 0a 7d his->repository.=.$repository;.}
5a020 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f .....public.function.getReposito
5a040 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 6f 72 79 3b ry().{.return.$this->repository;
5a060 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 72 61 6e 73 70 .}.....public.function.getTransp
5a080 6f 72 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 74 72 61 ortOptions().{.return.$this->tra
5a0a0 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 nsportOptions;.}.......public.fu
5a0c0 6e 63 74 69 6f 6e 20 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 nction.setTransportOptions(array
5a0e0 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 .$options).{.$this->transportOpt
5a100 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ions.=.$options;.}.......public.
5a120 66 75 6e 63 74 69 6f 6e 20 69 73 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.isPlatform().{.return.$
5a140 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 this->getRepository().instanceof
5a160 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .PlatformRepository;.}.......pub
5a180 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 0a 7b 0a 72 lic.function.getUniqueName().{.r
5a1a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2d 27 2e 24 74 68 69 73 eturn.$this->getName().'-'.$this
5a1c0 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->getVersion();.}..public.functi
5a1e0 6f 6e 20 65 71 75 61 6c 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b on.equals(PackageInterface.$pack
5a200 61 67 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 69 66 20 28 24 74 68 69 73 20 age).{.$self.=.$this;.if.($this.
5a220 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 73 65 6c 66 instanceof.AliasPackage).{.$self
5a240 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 69 66 20 28 24 70 .=.$this->getAliasOf();.}.if.($p
5a260 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 ackage.instanceof.AliasPackage).
5a280 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 69 61 73 4f {.$package.=.$package->getAliasO
5a2a0 66 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 73 65 6c f();.}..return.$package.===.$sel
5a2c0 66 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 f;.}.......public.function.__toS
5a2e0 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 6e 69 71 75 tring().{.return.$this->getUniqu
5a300 65 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 eName();.}..public.function.getP
5a320 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 rettyString().{.return.$this->ge
5a340 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 tPrettyName().'.'.$this->getPret
5a360 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tyVersion();.}..public.function.
5a380 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 __clone().{.$this->repository.=.
5a3a0 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a null;.$this->id.=.-1;.}.}.<?php.
5a3c0 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
5a3e0 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ckage\Version;..use.Composer\Dep
5a400 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 6f 73 endencyResolver\Pool;.use.Compos
5a420 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
5a440 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
5a460 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 44 75 6d 70 65 ader;.use.Composer\Package\Dumpe
5a480 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 r\ArrayDumper;.......class.Versi
5a4a0 6f 6e 53 65 6c 65 63 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 70 72 69 onSelector.{.private.$pool;..pri
5a4c0 76 61 74 65 20 24 70 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 vate.$parser;..public.function._
5a4e0 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 74 68 69 73 2d 3e _construct(Pool.$pool).{.$this->
5a500 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 pool.=.$pool;.}..........public.
5a520 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 42 65 73 74 43 61 6e 64 69 64 61 74 65 28 24 70 61 63 6b function.findBestCandidate($pack
5a540 61 67 65 4e 61 6d 65 2c 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d ageName,.$targetPackageVersion.=
5a560 20 6e 75 6c 6c 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 61 72 67 65 74 50 61 .null).{.$constraint.=.$targetPa
5a580 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 24 74 68 69 73 2d 3e 67 65 74 50 61 72 73 65 72 28 ckageVersion.?.$this->getParser(
5a5a0 29 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 74 61 72 67 65 74 50 61 63 6b 61 )->parseConstraints($targetPacka
5a5c0 67 65 56 65 72 73 69 6f 6e 29 20 3a 20 6e 75 6c 6c 3b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d geVersion).:.null;.$candidates.=
5a5e0 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b .$this->pool->whatProvides($pack
5a600 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 74 72 75 65 29 3b 0a 0a 69 66 ageName,.$constraint,.true);..if
5a620 20 28 21 24 63 61 6e 64 69 64 61 74 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a .(!$candidates).{.return.false;.
5a640 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 72 65 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 }....$package.=.reset($candidate
5a660 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e s);.foreach.($candidates.as.$can
5a680 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 didate).{.if.(version_compare($p
5a6a0 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 65 ackage->getVersion(),.$candidate
5a6c0 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 ->getVersion(),.'<')).{.$package
5a6e0 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b .=.$candidate;.}.}..return.$pack
5a700 61 67 65 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 20 66 75 age;.}.................public.fu
5a720 6e 63 74 69 6f 6e 20 66 69 6e 64 52 65 63 6f 6d 6d 65 6e 64 65 64 52 65 71 75 69 72 65 56 65 72 nction.findRecommendedRequireVer
5a740 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 29 0a sion(PackageInterface.$package).
5a760 7b 0a 24 76 65 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 {.$version.=.$package->getVersio
5a780 6e 28 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 72 n();.if.(!$package->isDev()).{.r
5a7a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 66 6f 72 6d 56 65 72 73 69 6f 6e 28 24 76 eturn.$this->transformVersion($v
5a7c0 65 72 73 69 6f 6e 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 ersion,.$package->getPrettyVersi
5a7e0 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 3b on(),.$package->getStability());
5a800 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 24 74 .}..$loader.=.new.ArrayLoader($t
5a820 68 69 73 2d 3e 67 65 74 50 61 72 73 65 72 28 29 29 3b 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 his->getParser());.$dumper.=.new
5a840 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 24 65 78 74 72 61 20 3d 20 24 6c 6f 61 64 65 72 .ArrayDumper();.$extra.=.$loader
5a860 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 24 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 ->getBranchAlias($dumper->dump($
5a880 70 61 63 6b 61 67 65 29 29 3b 0a 69 66 20 28 24 65 78 74 72 61 29 20 7b 0a 24 65 78 74 72 61 20 package));.if.($extra).{.$extra.
5a8a0 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 64 2b 5c 2e 5c 64 2b 5c 2e 5c 64 2b =.preg_replace('{^(\d+\.\d+\.\d+
5a8c0 29 28 5c 2e 39 39 39 39 39 39 39 29 2d 64 65 76 24 7d 27 2c 20 27 24 31 2e 30 27 2c 20 24 65 78 )(\.9999999)-dev$}',.'$1.0',.$ex
5a8e0 74 72 61 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 29 20 7b 0a tra,.-1,.$count);.if.($count).{.
5a900 24 65 78 74 72 61 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2e 39 39 39 39 39 39 39 27 2c $extra.=.str_replace('.9999999',
5a920 20 27 2e 30 27 2c 20 24 65 78 74 72 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 .'.0',.$extra);..return.$this->t
5a940 72 61 6e 73 66 6f 72 6d 56 65 72 73 69 6f 6e 28 24 65 78 74 72 61 2c 20 24 65 78 74 72 61 2c 20 ransformVersion($extra,.$extra,.
5a960 27 64 65 76 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 'dev');.}.}..return.$package->ge
5a980 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e tPrettyVersion();.}..private.fun
5a9a0 63 74 69 6f 6e 20 74 72 61 6e 73 66 6f 72 6d 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 2c ction.transformVersion($version,
5a9c0 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 2c 20 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 0a .$prettyVersion,.$stability).{..
5a9e0 20 0a 20 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 20 3d 20 65 78 70 6c 6f ...$semanticVersionParts.=.explo
5aa00 64 65 28 27 2e 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6f 70 20 3d 20 27 7e 27 3b 0a 0a 0a de('.',.$version);.$op.=.'~';...
5aa20 20 69 66 20 28 63 6f 75 6e 74 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 .if.(count($semanticVersionParts
5aa40 29 20 3d 3d 20 34 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 30 5c 44 3f 7d 27 2c 20 ).==.4.&&.preg_match('{^0\D?}',.
5aa60 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 33 5d 29 29 20 7b 0a 0a 20 69 $semanticVersionParts[3])).{...i
5aa80 66 20 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 30 5d 20 3d 3d 3d 20 f.($semanticVersionParts[0].===.
5aaa0 27 30 27 29 20 7b 0a 69 66 20 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 '0').{.if.($semanticVersionParts
5aac0 5b 31 5d 20 3d 3d 3d 20 27 30 27 29 20 7b 0a 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 [1].===.'0').{.$semanticVersionP
5aae0 61 72 74 73 5b 33 5d 20 3d 20 27 2a 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 65 6d 61 6e 74 69 arts[3].=.'*';.}.else.{.$semanti
5ab00 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 32 5d 20 3d 20 27 2a 27 3b 0a 75 6e 73 65 74 28 24 73 cVersionParts[2].=.'*';.unset($s
5ab20 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 33 5d 29 3b 0a 7d 0a 24 6f 70 20 3d emanticVersionParts[3]);.}.$op.=
5ab40 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 75 6e 73 65 74 28 24 73 65 6d 61 6e 74 69 63 56 65 72 .'';.}.else.{.unset($semanticVer
5ab60 73 69 6f 6e 50 61 72 74 73 5b 32 5d 2c 20 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 sionParts[2],.$semanticVersionPa
5ab80 72 74 73 5b 33 5d 29 3b 0a 7d 0a 24 76 65 72 73 69 6f 6e 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2e rts[3]);.}.$version.=.implode('.
5aba0 27 2c 20 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 29 3b 0a 7d 20 65 6c 73 ',.$semanticVersionParts);.}.els
5abc0 65 20 7b 0a 72 65 74 75 72 6e 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 e.{.return.$prettyVersion;.}....
5abe0 69 66 20 28 24 73 74 61 62 69 6c 69 74 79 20 21 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 76 if.($stability.!=.'stable').{.$v
5ac00 65 72 73 69 6f 6e 20 2e 3d 20 27 40 27 2e 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 20 72 ersion..=.'@'.$stability;.}....r
5ac20 65 74 75 72 6e 20 24 6f 70 2e 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 eturn.$op.$version;.}..private.f
5ac40 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 73 65 72 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d unction.getParser().{.if.($this-
5ac60 3e 70 61 72 73 65 72 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 >parser.===.null).{.$this->parse
5ac80 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 r.=.new.VersionParser();.}..retu
5aca0 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a rn.$this->parser;.}.}.<?php.....
5acc0 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 67 .......namespace.Composer\Packag
5ace0 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 e\Version;..use.Composer\Package
5ad00 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
5ad20 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
5ad40 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 50 61 63 r\Package\Link;.use.Composer\Pac
5ad60 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e 73 74 72 61 kage\LinkConstraint\EmptyConstra
5ad80 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f int;.use.Composer\Package\LinkCo
5ada0 6e 73 74 72 61 69 6e 74 5c 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f nstraint\MultiConstraint;.use.Co
5adc0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 mposer\Package\LinkConstraint\Ve
5ade0 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 rsionConstraint;.......class.Ver
5ae00 73 69 6f 6e 50 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6d 6f 64 sionParser.{.private.static.$mod
5ae20 69 66 69 65 72 52 65 67 65 78 20 3d 20 27 5b 2e 5f 2d 5d 3f 28 3f 3a 28 73 74 61 62 6c 65 7c 62 ifierRegex.=.'[._-]?(?:(stable|b
5ae40 65 74 61 7c 62 7c 52 43 7c 61 6c 70 68 61 7c 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 28 3f 3a 5b eta|b|RC|alpha|a|patch|pl|p)(?:[
5ae60 2e 2d 5d 3f 28 5c 64 2b 29 29 3f 29 3f 28 5b 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 0a 0a 0a .-]?(\d+))?)?([.-]?dev)?';......
5ae80 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 74 ..public.static.function.parseSt
5aea0 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 70 ability($version).{.$version.=.p
5aec0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 23 2e 2b 24 7d 69 27 2c 20 27 27 2c 20 24 76 65 72 73 reg_replace('{#.+$}i',.'',.$vers
5aee0 69 6f 6e 29 3b 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 ion);..if.('dev-'.===.substr($ve
5af00 72 73 69 6f 6e 2c 20 30 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 75 62 73 74 rsion,.0,.4).||.'-dev'.===.subst
5af20 72 28 24 76 65 72 73 69 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b r($version,.-4)).{.return.'dev';
5af40 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 .}..preg_match('{'.self::$modifi
5af60 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 erRegex.'$}i',.strtolower($versi
5af80 6f 6e 29 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b on),.$match);.if.(!empty($match[
5afa0 33 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 3])).{.return.'dev';.}..if.(!emp
5afc0 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b 0a 69 66 20 28 27 62 65 74 61 27 20 3d 3d 3d 20 ty($match[1])).{.if.('beta'.===.
5afe0 24 6d 61 74 63 68 5b 31 5d 20 7c 7c 20 27 62 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 $match[1].||.'b'.===.$match[1]).
5b000 7b 0a 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b 0a 7d 0a 69 66 20 28 27 61 6c 70 68 61 27 20 3d {.return.'beta';.}.if.('alpha'.=
5b020 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 20 7c 7c 20 27 61 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 ==.$match[1].||.'a'.===.$match[1
5b040 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 72 63 27 20 ]).{.return.'alpha';.}.if.('rc'.
5b060 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 7d 0a ===.$match[1]).{.return.'RC';.}.
5b080 7d 0a 0a 72 65 74 75 72 6e 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 }..return.'stable';.}..public.st
5b0a0 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 atic.function.normalizeStability
5b0c0 28 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 74 ($stability).{.$stability.=.strt
5b0e0 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 olower($stability);..return.$sta
5b100 62 69 6c 69 74 79 20 3d 3d 3d 20 27 72 63 27 20 3f 20 27 52 43 27 20 3a 20 24 73 74 61 62 69 6c bility.===.'rc'.?.'RC'.:.$stabil
5b120 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 ity;.}..public.static.function.f
5b140 6f 72 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 ormatVersion(PackageInterface.$p
5b160 61 63 6b 61 67 65 2c 20 24 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 ackage,.$truncate.=.true).{.if.(
5b180 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 !$package->isDev().||.!in_array(
5b1a0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 $package->getSourceType(),.array
5b1c0 28 27 68 67 27 2c 20 27 67 69 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 ('hg',.'git'))).{.return.$packag
5b1e0 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 e->getPrettyVersion();.}....if.(
5b200 24 74 72 75 6e 63 61 74 65 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 $truncate.&&.strlen($package->ge
5b220 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 3d 3d 3d 20 34 30 29 20 7b 0a 72 65 tSourceReference()).===.40).{.re
5b240 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 turn.$package->getPrettyVersion(
5b260 29 20 2e 20 27 20 27 20 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f )...'.'...substr($package->getSo
5b280 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 0a 72 65 74 75 72 urceReference(),.0,.7);.}..retur
5b2a0 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e n.$package->getPrettyVersion()..
5b2c0 20 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .'.'...$package->getSourceRefere
5b2e0 6e 63 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f nce();.}..........public.functio
5b300 6e 20 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 2c 20 24 66 75 6c 6c 56 65 72 73 69 n.normalize($version,.$fullVersi
5b320 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d 28 24 76 65 on.=.null).{.$version.=.trim($ve
5b340 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 66 75 6c 6c 56 65 72 73 69 6f rsion);.if.(null.===.$fullVersio
5b360 6e 29 20 7b 0a 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a n).{.$fullVersion.=.$version;.}.
5b380 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 29 20 2b ...if.(preg_match('{^([^,\s]+).+
5b3a0 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 as.+([^,\s]+)$}',.$version,.$mat
5b3c0 63 68 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a ch)).{.$version.=.$match[1];.}..
5b3e0 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 2b 5d 2b 29 5c 2b ..if.(preg_match('{^([^,\s+]+)\+
5b400 5b 5e 5c 73 5d 2b 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 [^\s]+$}',.$version,.$match)).{.
5b420 24 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 $version.=.$match[1];.}....if.(p
5b440 72 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 reg_match('{^(?:dev-)?(?:master|
5b460 74 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 trunk|default)$}i',.$version)).{
5b480 0a 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 .return.'9999999-dev';.}..if.('d
5b4a0 65 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 ev-'.===.strtolower(substr($vers
5b4c0 69 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 ion,.0,.4))).{.return.'dev-'.sub
5b4e0 73 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 str($version,.4);.}....if.(preg_
5b500 6d 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 match('{^v?(\d{1,3})(\.\d+)?(\.\
5b520 64 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 d+)?(\.\d+)?'.self::$modifierReg
5b540 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 29 20 7b ex.'$}i',.$version,.$matches)).{
5b560 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 79 .$version.=.$matches[1]..(!empty
5b580 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 2e ($matches[2]).?.$matches[2].:.'.
5b5a0 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 74 0')..(!empty($matches[3]).?.$mat
5b5c0 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 65 ches[3].:.'.0')..(!empty($matche
5b5e0 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 24 69 6e s[4]).?.$matches[4].:.'.0');.$in
5b600 64 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 dex.=.5;.}.elseif.(preg_match('{
5b620 5e 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 ^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:
5b640 5b 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 [.:-]?\d{1,3})?)'.self::$modifie
5b660 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 rRegex.'$}i',.$version,.$matches
5b680 29 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 )).{...$version.=.preg_replace('
5b6a0 7b 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 {\D}',.'-',.$matches[1]);.$index
5b6c0 20 3d 20 32 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 76 3f .=.2;.}.elseif.(preg_match('{^v?
5b6e0 28 5c 64 7b 34 2c 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f (\d{4,})(\.\d+)?(\.\d+)?(\.\d+)?
5b700 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 '.self::$modifierRegex.'$}i',.$v
5b720 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 ersion,.$matches)).{.$version.=.
5b740 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d $matches[1]..(!empty($matches[2]
5b760 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 ).?.$matches[2].:.'.0')..(!empty
5b780 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e ($matches[3]).?.$matches[3].:.'.
5b7a0 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 0')..(!empty($matches[4]).?.$mat
5b7c0 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 24 69 6e 64 65 78 20 3d 20 35 3b 0a 7d 0a 0a ches[4].:.'.0');.$index.=.5;.}..
5b7e0 0a 20 69 66 20 28 69 73 73 65 74 28 24 69 6e 64 65 78 29 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 ..if.(isset($index)).{.if.(!empt
5b800 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 29 20 7b 0a 69 66 20 28 27 73 74 61 62 y($matches[$index])).{.if.('stab
5b820 6c 65 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 7b 0a 72 65 74 75 le'.===.$matches[$index]).{.retu
5b840 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e rn.$version;.}.$version..=.'-'..
5b860 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 65 73 .$this->expandStability($matches
5b880 5b 24 69 6e 64 65 78 5d 29 20 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e [$index])...(!empty($matches[$in
5b8a0 64 65 78 2b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 20 3a 20 27 dex+1]).?.$matches[$index+1].:.'
5b8c0 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 ');.}..if.(!empty($matches[$inde
5b8e0 78 2b 32 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a x+2])).{.$version..=.'-dev';.}..
5b900 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d return.$version;.}....if.(preg_m
5b920 61 74 63 68 28 27 7b 28 2e 2a 3f 29 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 24 76 65 72 73 69 atch('{(.*?)[.-]?dev$}i',.$versi
5b940 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 on,.$match)).{.try.{.return.$thi
5b960 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d s->normalizeBranch($match[1]);.}
5b980 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 7d 0a 7d 0a 0a 24 65 .catch.(\Exception.$e).{.}.}..$e
5b9a0 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 67 5f 6d 61 74 63 68 xtraMessage.=.'';.if.(preg_match
5b9c0 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 72 73 69 6f 6e 29 2e ('{.+as.+'.preg_quote($version).
5b9e0 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 78 74 72 61 4d 65 73 '$}',.$fullVersion)).{.$extraMes
5ba00 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.'",.
5ba20 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 74 20 76 65 72 73 69 the.alias.must.be.an.exact.versi
5ba40 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 28 27 7b 5e 27 2e 70 on';.}.elseif.(preg_match('{^'.p
5ba60 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 20 2b 7d 27 2c 20 24 reg_quote($version).'.+as.+}',.$
5ba80 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 73 61 67 65 20 3d 20 fullVersion)).{.$extraMessage.=.
5baa0 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 74 68 65 20 61 6c 69 '.in."'.$fullVersion.'",.the.ali
5bac0 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 74 20 76 65 72 73 69 as.source.must.be.an.exact.versi
5bae0 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 65 20 79 6f 75 20 73 on,.if.it.is.a.branch.name.you.s
5bb00 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 27 3b 0a 7d 0a 0a 74 hould.prefix.it.with.dev-';.}..t
5bb20 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
5bb40 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 67 20 22 27 2e 24 76 on('Invalid.version.string."'.$v
5bb60 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 3b 0a 7d 0a 0a 0a 0a ersion.'"'.$extraMessage);.}....
5bb80 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4e 75 6d 65 72 69 .....public.function.parseNumeri
5bba0 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 62 72 61 6e 63 68 29 0a 7b 0a 69 66 20 28 70 72 65 67 cAliasPrefix($branch).{.if.(preg
5bbc0 5f 6d 61 74 63 68 28 27 2f 5e 28 3f 50 3c 76 65 72 73 69 6f 6e 3e 28 5c 64 2b 5c 5c 2e 29 2a 5c _match('/^(?P<version>(\d+\\.)*\
5bbe0 64 2b 29 28 3f 3a 5c 2e 78 29 3f 2d 64 65 76 24 2f 69 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d d+)(?:\.x)?-dev$/i',.$branch,.$m
5bc00 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 27 76 65 72 73 atches)).{.return.$matches['vers
5bc20 69 6f 6e 27 5d 2e 22 2e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a ion'].".";.}..return.false;.}...
5bc40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 42 72 .....public.function.normalizeBr
5bc60 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 28 24 6e 61 6d 65 anch($name).{.$name.=.trim($name
5bc80 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 72 61 79 28 27 6d );..if.(in_array($name,.array('m
5bca0 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 29 29 29 20 7b 0a aster',.'trunk',.'default'))).{.
5bcc0 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 61 6d 65 29 3b 0a return.$this->normalize($name);.
5bce0 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 2b 29 28 5c 2e 28 }..if.(preg_match('#^v?(\d+)(\.(
5bd00 3f 3a 5c 64 2b 7c 5b 78 58 2a 5d 29 29 3f 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 58 2a 5d 29 29 3f ?:\d+|[xX*]))?(\.(?:\d+|[xX*]))?
5bd20 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 58 2a 5d 29 29 3f 24 23 69 27 2c 20 24 6e 61 6d 65 2c 20 24 (\.(?:\d+|[xX*]))?$#i',.$name,.$
5bd40 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 72 20 28 matches)).{.$version.=.'';.for.(
5bd60 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 69 6f 6e $i.=.1;.$i.<.5;.$i++).{.$version
5bd80 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 5f 72 65 ..=.isset($matches[$i]).?.str_re
5bda0 70 6c 61 63 65 28 61 72 72 61 79 28 27 2a 27 2c 20 27 58 27 29 2c 20 27 78 27 2c 20 24 6d 61 74 place(array('*',.'X'),.'x',.$mat
5bdc0 63 68 65 73 5b 24 69 5d 29 20 3a 20 27 2e 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f ches[$i]).:.'.x';.}..return.str_
5bde0 72 65 70 6c 61 63 65 28 27 78 27 2c 20 27 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 69 6f 6e replace('x',.'9999999',.$version
5be00 29 2e 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e 61 6d 65 ).'-dev';.}..return.'dev-'.$name
5be20 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 ;.}.........public.function.pars
5be40 65 4c 69 6e 6b 73 28 24 73 6f 75 72 63 65 2c 20 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 2c 20 eLinks($source,.$sourceVersion,.
5be60 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 6c 69 6e 6b 73 29 0a 7b 0a 24 72 65 73 20 3d 20 61 $description,.$links).{.$res.=.a
5be80 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 74 61 72 67 rray();.foreach.($links.as.$targ
5bea0 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 et.=>.$constraint).{.if.('self.v
5bec0 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 70 61 72 73 ersion'.===.$constraint).{.$pars
5bee0 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 edConstraint.=.$this->parseConst
5bf00 72 61 69 6e 74 73 28 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b raints($sourceVersion);.}.else.{
5bf20 0a 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 .$parsedConstraint.=.$this->pars
5bf40 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 24 72 65 eConstraints($constraint);.}.$re
5bf60 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 6e 65 77 20 4c 69 6e s[strtolower($target)].=.new.Lin
5bf80 6b 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 72 73 65 64 43 6f 6e 73 74 k($source,.$target,.$parsedConst
5bfa0 72 61 69 6e 74 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 raint,.$description,.$constraint
5bfc0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c );.}..return.$res;.}........publ
5bfe0 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f ic.function.parseConstraints($co
5c000 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d nstraints).{.$prettyConstraint.=
5c020 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 .$constraints;..if.(preg_match('
5c040 7b 5e 28 5b 5e 2c 5c 73 5d 2a 3f 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 {^([^,\s]*?)@('.implode('|',.arr
5c060 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 ay_keys(BasePackage::$stabilitie
5c080 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 74 63 68 s)).')$}i',.$constraints,.$match
5c0a0 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 65 6d 70 74 79 28 24 6d 61 74 63 68 )).{.$constraints.=.empty($match
5c0c0 5b 31 5d 29 20 3f 20 27 2a 27 20 3a 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 69 66 20 28 70 [1]).?.'*'.:.$match[1];.}..if.(p
5c0e0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 64 65 76 2d 5b 5e 2c 5c 73 40 5d 2b 3f 7c 5b 5e 2c 5c reg_match('{^(dev-[^,\s@]+?|[^,\
5c100 73 40 5d 2b 3f 5c 2e 78 2d 64 65 76 29 23 2e 2b 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e s@]+?\.x-dev)#.+$}i',.$constrain
5c120 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 6d ts,.$match)).{.$constraints.=.$m
5c140 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 70 72 65 atch[1];.}..$orConstraints.=.pre
5c160 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 7c 5c 7c 3f 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 24 63 g_split('{\s*\|\|?\s*}',.trim($c
5c180 6f 6e 73 74 72 61 69 6e 74 73 29 29 3b 0a 24 6f 72 47 72 6f 75 70 73 20 3d 20 61 72 72 61 79 28 onstraints));.$orGroups.=.array(
5c1a0 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 );.foreach.($orConstraints.as.$c
5c1c0 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 onstraints).{.$andConstraints.=.
5c1e0 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 28 3f 3c 21 5e 7c 61 73 7c 5b 3d 3e 3c 20 2c 5d 29 20 2a preg_split('{(?<!^|as|[=><.,]).*
5c200 28 3f 3c 21 2d 29 5b 2c 20 5d 28 3f 21 2d 29 20 2a 28 3f 21 2c 7c 61 73 7c 24 29 7d 27 2c 20 24 (?<!-)[,.](?!-).*(?!,|as|$)}',.$
5c220 63 6f 6e 73 74 72 61 69 6e 74 73 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 6e 64 43 6f 6e 73 constraints);.if.(count($andCons
5c240 74 72 61 69 6e 74 73 29 20 3e 20 31 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 traints).>.1).{.$constraintObjec
5c260 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 6e 64 43 6f 6e 73 74 ts.=.array();.foreach.($andConst
5c280 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 raints.as.$constraint).{.$constr
5c2a0 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 6f 6e 73 74 aintObjects.=.array_merge($const
5c2c0 72 61 69 6e 74 4f 62 6a 65 63 74 73 2c 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 raintObjects,.$this->parseConstr
5c2e0 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 aint($constraint));.}.}.else.{.$
5c300 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 constraintObjects.=.$this->parse
5c320 43 6f 6e 73 74 72 61 69 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a Constraint($andConstraints[0]);.
5c340 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 }..if.(1.===.count($constraintOb
5c360 6a 65 63 74 73 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 jects)).{.$constraint.=.$constra
5c380 69 6e 74 4f 62 6a 65 63 74 73 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 intObjects[0];.}.else.{.$constra
5c3a0 69 6e 74 20 3d 20 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 int.=.new.MultiConstraint($const
5c3c0 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 3b 0a 7d 0a 0a 24 6f 72 47 72 6f 75 70 73 5b 5d 20 3d 20 raintObjects);.}..$orGroups[].=.
5c3e0 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 $constraint;.}..if.(1.===.count(
5c400 24 6f 72 47 72 6f 75 70 73 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6f 72 47 $orGroups)).{.$constraint.=.$orG
5c420 72 6f 75 70 73 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d roups[0];.}.else.{.$constraint.=
5c440 20 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 72 47 72 6f 75 70 73 2c 20 .new.MultiConstraint($orGroups,.
5c460 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 false);.}..$constraint->setPrett
5c480 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 74 yString($prettyConstraint);..ret
5c4a0 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 urn.$constraint;.}..private.func
5c4c0 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 tion.parseConstraint($constraint
5c4e0 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 3f 29 ).{.if.(preg_match('{^([^,\s]+?)
5c500 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 @('.implode('|',.array_keys(Base
5c520 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 Package::$stabilities)).')$}i',.
5c540 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 $constraint,.$match)).{.$constra
5c560 69 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 24 6d 61 74 63 68 5b 32 5d 20 21 int.=.$match[1];.if.($match[2].!
5c580 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 ==.'stable').{.$stabilityModifie
5c5a0 72 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 r.=.$match[2];.}.}..if.(preg_mat
5c5c0 63 68 28 27 7b 5e 5b 78 58 2a 5d 28 5c 2e 5b 78 58 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 ch('{^[xX*](\.[xX*])*$}i',.$cons
5c5e0 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 45 6d 70 74 traint)).{.return.array(new.Empt
5c600 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 52 65 67 65 78 20 3d yConstraint);.}..$versionRegex.=
5c620 20 27 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 .'(\d+)(?:\.(\d+))?(?:\.(\d+))?(
5c640 3f 3a 5c 2e 28 5c 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 ?:\.(\d+))?'.self::$modifierRege
5c660 78 3b 0a 0a 0a 20 0a 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 x;............if.(preg_match('{^
5c680 7e 3e 3f 27 2e 24 76 65 72 73 69 6f 6e 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 63 6f 6e 73 74 ~>?'.$versionRegex.'$}i',.$const
5c6a0 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 raint,.$matches)).{.if.(substr($
5c6c0 63 6f 6e 73 74 72 61 69 6e 74 2c 20 30 2c 20 32 29 20 3d 3d 3d 20 27 7e 3e 27 29 20 7b 0a 74 68 constraint,.0,.2).===.'~>').{.th
5c6e0 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
5c700 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 n(.'Could.not.parse.version.cons
5c720 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 3a 20 27 2e 0a 27 49 6e 76 61 traint.'.$constraint.':.'..'Inva
5c740 6c 69 64 20 6f 70 65 72 61 74 6f 72 20 22 7e 3e 22 2c 20 79 6f 75 20 70 72 6f 62 61 62 6c 79 20 lid.operator."~>",.you.probably.
5c760 6d 65 61 6e 74 20 74 6f 20 75 73 65 20 74 68 65 20 22 7e 22 20 6f 70 65 72 61 74 6f 72 27 0a 29 meant.to.use.the."~".operator'.)
5c780 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 26 26 ;.}....if.(isset($matches[4]).&&
5c7a0 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e .''.!==.$matches[4]).{.$position
5c7c0 20 3d 20 34 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 .=.4;.}.elseif.(isset($matches[3
5c7e0 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 20 7b 0a 24 70 6f 73 ]).&&.''.!==.$matches[3]).{.$pos
5c800 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 74 28 24 6d 61 74 63 ition.=.3;.}.elseif.(isset($matc
5c820 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 73 5b 32 5d 29 20 7b hes[2]).&&.''.!==.$matches[2]).{
5c840 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 24 70 6f 73 69 74 69 .$position.=.2;.}.else.{.$positi
5c860 6f 6e 20 3d 20 31 3b 0a 7d 0a 0a 0a 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 on.=.1;.}....$stabilitySuffix.=.
5c880 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 29 20 7b 0a 24 '';.if.(!empty($matches[5])).{.$
5c8a0 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 73 2d 3e stabilitySuffix..=.'-'...$this->
5c8c0 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 20 2e 20 28 expandStability($matches[5])...(
5c8e0 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 36 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 36 !empty($matches[6]).?.$matches[6
5c900 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 65 73 5b ].:.'');.}..if.(!empty($matches[
5c920 37 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 64 65 76 7])).{.$stabilitySuffix..=.'-dev
5c940 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 29 20 7b 0a 24 ';.}..if.(!$stabilitySuffix).{.$
5c960 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 22 2d 64 65 76 22 3b 0a 7d 0a 24 6c 6f 77 stabilitySuffix.=."-dev";.}.$low
5c980 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 72 73 69 Version.=.$this->manipulateVersi
5c9a0 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 20 30 29 onString($matches,.$position,.0)
5c9c0 20 2e 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 ...$stabilitySuffix;.$lowerBound
5c9e0 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 3e 3d 27 2c 20 24 .=.new.VersionConstraint('>=',.$
5ca00 6c 6f 77 56 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 0a 20 24 68 69 67 68 50 6f 73 69 74 69 6f 6e 20 lowVersion);......$highPosition.
5ca20 3d 20 6d 61 78 28 31 2c 20 24 70 6f 73 69 74 69 6f 6e 20 2d 20 31 29 3b 0a 24 68 69 67 68 56 65 =.max(1,.$position.-.1);.$highVe
5ca40 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 72 73 69 6f 6e rsion.=.$this->manipulateVersion
5ca60 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 68 69 67 68 50 6f 73 69 74 69 6f 6e 2c 20 String($matches,.$highPosition,.
5ca80 31 29 20 2e 20 27 2d 64 65 76 27 3b 0a 24 75 70 70 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 1)...'-dev';.$upperBound.=.new.V
5caa0 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 68 56 65 72 73 69 ersionConstraint('<',.$highVersi
5cac0 6f 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 2c on);..return.array(.$lowerBound,
5cae0 0a 24 75 70 70 65 72 42 6f 75 6e 64 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 .$upperBound.);.}....if.(preg_ma
5cb00 74 63 68 28 27 7b 5e 5c 5e 27 2e 24 76 65 72 73 69 6f 6e 52 65 67 65 78 2e 27 28 24 29 7d 69 27 tch('{^\^'.$versionRegex.'($)}i'
5cb20 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 0a 20 69 66 ,.$constraint,.$matches)).{...if
5cb40 20 28 27 30 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 7c 7c 20 27 27 20 3d 3d 3d 20 .('0'.!==.$matches[1].||.''.===.
5cb60 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 20 $matches[2]).{.$position.=.1;.}.
5cb80 65 6c 73 65 69 66 20 28 27 30 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 7c 7c 20 27 elseif.('0'.!==.$matches[2].||.'
5cba0 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d '.===.$matches[3]).{.$position.=
5cbc0 20 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 0a 0a 0a .2;.}.else.{.$position.=.3;.}...
5cbe0 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 27 27 3b 0a 69 66 20 28 65 6d 70 74 .$stabilitySuffix.=.'';.if.(empt
5cc00 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 y($matches[5]).&&.empty($matches
5cc20 5b 37 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 64 65 [7])).{.$stabilitySuffix..=.'-de
5cc40 76 27 3b 0a 7d 0a 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d v';.}..$lowVersion.=.$this->norm
5cc60 61 6c 69 7a 65 28 73 75 62 73 74 72 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 2e 20 24 73 74 61 62 alize(substr($constraint...$stab
5cc80 69 6c 69 74 79 53 75 66 66 69 78 2c 20 31 29 29 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 ilitySuffix,.1));.$lowerBound.=.
5cca0 6e 65 77 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 new.VersionConstraint('>=',.$low
5ccc0 56 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 0a 20 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 Version);......$highVersion.=.$t
5cce0 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 6d 61 his->manipulateVersionString($ma
5cd00 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 31 29 20 2e 20 27 2d 64 65 76 27 3b 0a 24 tches,.$position,.1)...'-dev';.$
5cd20 75 70 70 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 upperBound.=.new.VersionConstrai
5cd40 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 nt('<',.$highVersion);..return.a
5cd60 72 72 61 79 28 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 2c 0a 24 75 70 70 65 72 42 6f 75 6e 64 0a 29 rray(.$lowerBound,.$upperBound.)
5cd80 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 5c 64 2b 29 28 3f ;.}....if.(preg_match('{^(\d+)(?
5cda0 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 5c 2e 5b 78 58 2a 5d 24 7d 27 :\.(\d+))?(?:\.(\d+))?\.[xX*]$}'
5cdc0 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 20 28 ,.$constraint,.$matches)).{.if.(
5cde0 69 73 73 65 74 28 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 isset($matches[3]).&&.''.!==.$ma
5ce00 74 63 68 65 73 5b 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 tches[3]).{.$position.=.3;.}.els
5ce20 65 69 66 20 28 69 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 eif.(isset($matches[2]).&&.''.!=
5ce40 3d 20 24 6d 61 74 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 =.$matches[2]).{.$position.=.2;.
5ce60 7d 20 65 6c 73 65 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 0a 0a 24 6c 6f 77 56 }.else.{.$position.=.1;.}..$lowV
5ce80 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 72 73 69 6f ersion.=.$this->manipulateVersio
5cea0 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 29 20 2e 20 22 nString($matches,.$position)..."
5cec0 2d 64 65 76 22 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 -dev";.$highVersion.=.$this->man
5cee0 69 70 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 ipulateVersionString($matches,.$
5cf00 70 6f 73 69 74 69 6f 6e 2c 20 31 29 20 2e 20 22 2d 64 65 76 22 3b 0a 0a 69 66 20 28 24 6c 6f 77 position,.1)..."-dev";..if.($low
5cf20 56 65 72 73 69 6f 6e 20 3d 3d 3d 20 22 30 2e 30 2e 30 2e 30 2d 64 65 76 22 29 20 7b 0a 72 65 74 Version.===."0.0.0.0-dev").{.ret
5cf40 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 69 6e 74 28 urn.array(new.VersionConstraint(
5cf60 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 '<',.$highVersion));.}..return.a
5cf80 72 72 61 79 28 0a 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 rray(.new.VersionConstraint('>='
5cfa0 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 2c 0a 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 ,.$lowVersion),.new.VersionConst
5cfc0 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 0a raint('<',.$highVersion),.);.}..
5cfe0 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 50 3c 66 72 6f 6d 3e 27 2e 24 ..if.(preg_match('{^(?P<from>'.$
5d000 76 65 72 73 69 6f 6e 52 65 67 65 78 2e 27 29 20 2b 2d 20 2b 28 3f 50 3c 74 6f 3e 27 2e 24 76 65 versionRegex.').+-.+(?P<to>'.$ve
5d020 72 73 69 6f 6e 52 65 67 65 78 2e 27 29 28 24 29 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 rsionRegex.')($)}i',.$constraint
5d040 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 0a 20 24 6c 6f 77 53 74 61 62 69 6c 69 74 79 53 75 ,.$matches)).{...$lowStabilitySu
5d060 66 66 69 78 20 3d 20 27 27 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 36 5d ffix.=.'';.if.(empty($matches[6]
5d080 29 20 26 26 20 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 38 5d 29 29 20 7b 0a 24 6c 6f 77 53 ).&&.empty($matches[8])).{.$lowS
5d0a0 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 24 6c 6f 77 tabilitySuffix.=.'-dev';.}..$low
5d0c0 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 Version.=.$this->normalize($matc
5d0e0 68 65 73 5b 27 66 72 6f 6d 27 5d 29 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 hes['from']);.$lowerBound.=.new.
5d100 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 73 VersionConstraint('>=',.$lowVers
5d120 69 6f 6e 20 2e 20 24 6c 6f 77 53 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 29 3b 0a 0a 24 68 69 ion...$lowStabilitySuffix);..$hi
5d140 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 30 5d 3b 0a 69 66 20 28 28 21 ghVersion.=.$matches[10];.if.((!
5d160 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 31 5d 29 20 26 26 20 21 65 6d 70 74 79 28 24 6d empty($matches[11]).&&.!empty($m
5d180 61 74 63 68 65 73 5b 31 32 5d 29 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b atches[12])).||.!empty($matches[
5d1a0 31 34 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 36 5d 29 29 20 7b 0a 14]).||.!empty($matches[16])).{.
5d1c0 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 $highVersion.=.$this->normalize(
5d1e0 24 6d 61 74 63 68 65 73 5b 27 74 6f 27 5d 29 3b 0a 24 75 70 70 65 72 42 6f 75 6e 64 20 3d 20 6e $matches['to']);.$upperBound.=.n
5d200 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 3d 27 2c 20 24 68 69 67 68 ew.VersionConstraint('<=',.$high
5d220 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 69 67 68 4d 61 74 63 68 20 3d 20 Version);.}.else.{.$highMatch.=.
5d240 61 72 72 61 79 28 27 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 30 5d 2c 20 24 6d 61 74 63 68 65 73 array('',.$matches[10],.$matches
5d260 5b 31 31 5d 2c 20 24 6d 61 74 63 68 65 73 5b 31 32 5d 2c 20 24 6d 61 74 63 68 65 73 5b 31 33 5d [11],.$matches[12],.$matches[13]
5d280 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
5d2a0 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 68 69 67 68 4d 61 74 63 68 2c 20 65 6d 70 ateVersionString($highMatch,.emp
5d2c0 74 79 28 24 6d 61 74 63 68 65 73 5b 31 31 5d 29 20 3f 20 31 20 3a 20 32 2c 20 31 29 20 2e 20 27 ty($matches[11]).?.1.:.2,.1)...'
5d2e0 2d 64 65 76 27 3b 0a 24 75 70 70 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e -dev';.$upperBound.=.new.Version
5d300 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 3b 0a 7d Constraint('<',.$highVersion);.}
5d320 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 2c 0a 24 75 70 ..return.array(.$lowerBound,.$up
5d340 70 65 72 42 6f 75 6e 64 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 perBound.);.}....if.(preg_match(
5d360 27 7b 5e 28 3c 3e 7c 21 3d 7c 3e 3d 3f 7c 3c 3d 3f 7c 3d 3d 3f 29 3f 5c 73 2a 28 2e 2a 29 7d 27 '{^(<>|!=|>=?|<=?|==?)?\s*(.*)}'
5d380 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 72 79 20 ,.$constraint,.$matches)).{.try.
5d3a0 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d {.$version.=.$this->normalize($m
5d3c0 61 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 73 74 61 62 69 6c 69 atches[2]);..if.(!empty($stabili
5d3e0 74 79 4d 6f 64 69 66 69 65 72 29 20 26 26 20 24 74 68 69 73 2d 3e 70 61 72 73 65 53 74 61 62 69 tyModifier).&&.$this->parseStabi
5d400 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 20 3d 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 lity($version).===.'stable').{.$
5d420 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 version..=.'-'...$stabilityModif
5d440 69 65 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b ier;.}.elseif.('<'.===.$matches[
5d460 31 5d 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 27 20 2e 20 73 65 6c 1]).{.if.(!preg_match('/-'...sel
5d480 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 20 2e 20 27 24 2f 27 2c 20 73 74 72 74 6f 6c f::$modifierRegex...'$/',.strtol
5d4a0 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e ower($matches[2]))).{.$version..
5d4c0 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 =.'-dev';.}.}..return.array(new.
5d4e0 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3f 3a VersionConstraint($matches[1].?:
5d500 20 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 .'=',.$version));.}.catch.(\Exce
5d520 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 75 ption.$e).{.}.}..$message.=.'Cou
5d540 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 ld.not.parse.version.constraint.
5d560 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 29 20 7b 0a '.$constraint;.if.(isset($e)).{.
5d580 24 6d 65 73 73 61 67 65 20 2e 3d 20 27 3a 20 27 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 $message..=.':.'..$e->getMessage
5d5a0 28 29 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 ();.}..throw.new.\UnexpectedValu
5d5c0 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 0a 0a 0a 0a 0a 0a 0a eException($message);.}.........
5d5e0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 56 ....private.function.manipulateV
5d600 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 73 69 74 69 6f 6e ersionString($matches,.$position
5d620 2c 20 24 69 6e 63 72 65 6d 65 6e 74 20 3d 20 30 2c 20 24 70 61 64 20 3d 20 27 30 27 29 0a 7b 0a ,.$increment.=.0,.$pad.=.'0').{.
5d640 66 6f 72 20 28 24 69 20 3d 20 34 3b 20 24 69 20 3e 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 69 66 20 for.($i.=.4;.$i.>.0;.$i--).{.if.
5d660 28 24 69 20 3e 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 ($i.>.$position).{.$matches[$i].
5d680 3d 20 24 70 61 64 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 20 3d 3d 20 24 70 6f 73 69 74 69 6f =.$pad;.}.elseif.($i.==.$positio
5d6a0 6e 20 26 26 20 24 69 6e 63 72 65 6d 65 6e 74 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 n.&&.$increment).{.$matches[$i].
5d6c0 2b 3d 20 24 69 6e 63 72 65 6d 65 6e 74 3b 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 65 73 5b 24 69 +=.$increment;...if.($matches[$i
5d6e0 5d 20 3c 20 30 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 24 70 ].<.0).{.$matches[$i].=.$pad;.$p
5d700 6f 73 69 74 69 6f 6e 2d 2d 3b 0a 0a 0a 20 69 66 20 28 24 69 20 3d 3d 20 31 29 20 7b 0a 72 65 74 osition--;....if.($i.==.1).{.ret
5d720 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d urn;.}.}.}.}..return.$matches[1]
5d740 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 ...'.'...$matches[2]...'.'...$ma
5d760 74 63 68 65 73 5b 33 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 7d 0a tches[3]...'.'...$matches[4];.}.
5d780 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 .private.function.expandStabilit
5d7a0 79 28 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 y($stability).{.$stability.=.str
5d7c0 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 73 tolower($stability);..switch.($s
5d7e0 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 61 73 65 20 27 61 27 3a 0a 72 65 74 75 72 6e 20 27 61 6c tability).{.case.'a':.return.'al
5d800 70 68 61 27 3b 0a 63 61 73 65 20 27 62 27 3a 0a 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b 0a 63 pha';.case.'b':.return.'beta';.c
5d820 61 73 65 20 27 70 27 3a 0a 63 61 73 65 20 27 70 6c 27 3a 0a 72 65 74 75 72 6e 20 27 70 61 74 63 ase.'p':.case.'pl':.return.'patc
5d840 68 27 3b 0a 63 61 73 65 20 27 72 63 27 3a 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 64 65 66 61 h';.case.'rc':.return.'RC';.defa
5d860 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ult:.return.$stability;.}.}.....
5d880 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4e 61 6d 65 56 65 72 73 ...public.function.parseNameVers
5d8a0 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 20 24 70 61 69 72 73 29 0a 7b 0a 24 70 61 69 72 73 20 ionPairs(array.$pairs).{.$pairs.
5d8c0 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 70 61 69 72 73 29 3b 0a 24 72 65 73 75 6c 74 20 =.array_values($pairs);.$result.
5d8e0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 =.array();..for.($i.=.0,.$count.
5d900 3d 20 63 6f 75 6e 74 28 24 70 61 69 72 73 29 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 24 69 =.count($pairs);.$i.<.$count;.$i
5d920 2b 2b 29 20 7b 0a 24 70 61 69 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b ++).{.$pair.=.preg_replace('{^([
5d940 5e 3d 3a 20 5d 2b 29 5b 3d 3a 20 5d 28 2e 2a 29 24 7d 27 2c 20 27 24 31 20 24 32 27 2c 20 74 72 ^=:.]+)[=:.](.*)$}',.'$1.$2',.tr
5d960 69 6d 28 24 70 61 69 72 73 5b 24 69 5d 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 im($pairs[$i]));.if.(false.===.s
5d980 74 72 70 6f 73 28 24 70 61 69 72 2c 20 27 20 27 29 20 26 26 20 69 73 73 65 74 28 24 70 61 69 72 trpos($pair,.'.').&&.isset($pair
5d9a0 73 5b 24 69 2b 31 5d 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 s[$i+1]).&&.false.===.strpos($pa
5d9c0 69 72 73 5b 24 69 2b 31 5d 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 69 72 20 2e 3d 20 27 20 27 2e irs[$i+1],.'/')).{.$pair..=.'.'.
5d9e0 24 70 61 69 72 73 5b 24 69 2b 31 5d 3b 0a 24 69 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f $pairs[$i+1];.$i++;.}..if.(strpo
5da00 73 28 24 70 61 69 72 2c 20 27 20 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 76 65 s($pair,.'.')).{.list($name,.$ve
5da20 72 73 69 6f 6e 29 20 3d 20 65 78 70 6c 6f 64 65 28 22 20 22 2c 20 24 70 61 69 72 2c 20 32 29 3b rsion).=.explode(".",.$pair,.2);
5da40 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 .$result[].=.array('name'.=>.$na
5da60 6d 65 2c 20 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c me,.'version'.=>.$version);.}.el
5da80 73 65 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e se.{.$result[].=.array('name'.=>
5daa0 20 24 70 61 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a .$pair);.}.}..return.$result;.}.
5dac0 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
5dae0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 poser\Package;.......interface.C
5db00 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 ompletePackageInterface.extends.
5db20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 PackageInterface.{......public.f
5db40 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 unction.getScripts();.........pu
5db60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b blic.function.getRepositories();
5db80 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 69 63 65 6e 73 .......public.function.getLicens
5dba0 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 4b 65 e();.......public.function.getKe
5dbc0 79 77 6f 72 64 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ywords();.......public.function.
5dbe0 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 getDescription();.......public.f
5dc00 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 unction.getHomepage();.........p
5dc20 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 3b 0a 0a 0a 0a ublic.function.getAuthors();....
5dc40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 3b ...public.function.getSupport();
5dc60 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e 64 6f 6e .......public.function.isAbandon
5dc80 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 67 65 74 52 ed();.......public.function.getR
5dca0 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a eplacementPackage();.}.<?php....
5dcc0 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
5dce0 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 ge;.......interface.RootPackageI
5dd00 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 nterface.extends.CompletePackage
5dd20 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Interface.{......public.function
5dd40 20 67 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 .getAliases();.......public.func
5dd60 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 3b 0a 0a 0a 0a 0a tion.getMinimumStability();.....
5dd80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 ....public.function.getStability
5dda0 46 6c 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Flags();.........public.function
5ddc0 20 67 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 .getReferences();.......public.f
5dde0 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 3b 0a 0a 0a 0a 0a 0a unction.getPreferStable();......
5de00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 .public.function.setRequires(arr
5de20 61 79 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 ay.$requires);.......public.func
5de40 74 69 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 tion.setDevRequires(array.$devRe
5de60 71 75 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 quires);.}.<?php............name
5de80 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 0a 0a 0a 0a 0a 63 6c space.Composer\Package;.......cl
5dea0 61 73 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 ass.RootPackage.extends.Complete
5dec0 50 61 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 Package.implements.RootPackageIn
5dee0 74 65 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 terface.{.protected.$minimumStab
5df00 69 6c 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 ility.=.'stable';.protected.$pre
5df20 66 65 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 ferStable.=.false;.protected.$st
5df40 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 abilityFlags.=.array();.protecte
5df60 64 20 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 d.$references.=.array();.protect
5df80 65 64 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 ed.$aliases.=.array();.......pub
5dfa0 6c 69 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 lic.function.setMinimumStability
5dfc0 28 24 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 ($minimumStability).{.$this->min
5dfe0 69 6d 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 imumStability.=.$minimumStabilit
5e000 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 4d 69 6e 69 y;.}.....public.function.getMini
5e020 6d 75 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 mumStability().{.return.$this->m
5e040 69 6e 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 inimumStability;.}.......public.
5e060 66 75 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 function.setStabilityFlags(array
5e080 20 24 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 .$stabilityFlags).{.$this->stabi
5e0a0 6c 69 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 lityFlags.=.$stabilityFlags;.}..
5e0c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 ...public.function.getStabilityF
5e0e0 6c 61 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 lags().{.return.$this->stability
5e100 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 Flags;.}.......public.function.s
5e120 65 74 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 etPreferStable($preferStable).{.
5e140 24 74 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 $this->preferStable.=.$preferSta
5e160 62 6c 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 ble;.}.....public.function.getPr
5e180 65 66 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 eferStable().{.return.$this->pre
5e1a0 66 65 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 ferStable;.}.......public.functi
5e1c0 6f 6e 20 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 on.setReferences(array.$referenc
5e1e0 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 72 65 66 65 72 es).{.$this->references.=.$refer
5e200 65 6e 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ences;.}.....public.function.get
5e220 52 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 References().{.return.$this->ref
5e240 65 72 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 erences;.}.......public.function
5e260 20 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 24 74 .setAliases(array.$aliases).{.$t
5e280 68 69 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 his->aliases.=.$aliases;.}.....p
5e2a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 ublic.function.getAliases().{.re
5e2c0 74 75 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 turn.$this->aliases;.}.}.<?php..
5e2e0 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
5e300 6b 61 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 kage\Archiver;.......interface.A
5e320 72 63 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 rchiverInterface.{...........pub
5e340 6c 69 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 lic.function.archive($sources,.$
5e360 74 61 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 target,.$format,.array.$excludes
5e380 20 3d 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 .=.array());..........public.fun
5e3a0 63 74 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 ction.supports($format,.$sourceT
5e3c0 79 70 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 ype);.}.<?php............namespa
5e3e0 63 65 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 ce.Composer\Package\Archiver;...
5e400 0a 0a 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 ....class.ComposerExcludeFilter.
5e420 65 78 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 extends.BaseExcludeFilter.{.....
5e440 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 6f 75 public.function.__construct($sou
5e460 72 63 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 rcePath,.array.$excludeRules).{.
5e480 70 61 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 parent::__construct($sourcePath)
5e4a0 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 24 74 68 69 73 ;.$this->excludePatterns.=.$this
5e4c0 2d 3e 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 ->generatePatterns($excludeRules
5e4e0 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 );.}.}.<?php............namespac
5e500 65 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 e.Composer\Package\Archiver;....
5e520 0a 0a 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 ...class.PharArchiver.implements
5e540 20 41 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 .ArchiverInterface.{.protected.s
5e560 74 61 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 tatic.$formats.=.array(.'zip'.=>
5e580 20 5c 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 .\Phar::ZIP,.'tar'.=>.\Phar::TAR
5e5a0 2c 0a 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 ,.);.....public.function.archive
5e5c0 28 24 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 ($sources,.$target,.$format,.arr
5e5e0 61 79 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 ay.$excludes.=.array()).{.$sourc
5e600 65 73 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 es.=.realpath($sources);....if.(
5e620 66 69 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 file_exists($target)).{.unlink($
5e640 74 61 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 target);.}..try.{.$phar.=.new.\P
5e660 68 61 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 harData($target,.null,.null,.sta
5e680 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 24 66 69 6c 65 73 20 tic::$formats[$format]);.$files.
5e6a0 3d 20 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 =.new.ArchivableFilesFinder($sou
5e6c0 72 63 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 rces,.$excludes);.$phar->buildFr
5e6e0 6f 6d 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 omIterator($files,.$sources);..r
5e700 65 74 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 eturn.$target;.}.catch.(\Unexpec
5e720 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 6d 65 73 73 61 67 65 tedValueException.$e).{.$message
5e740 20 3d 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 .=.sprintf("Could.not.create.arc
5e760 68 69 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 hive.'%s'.from.'%s':.%s",.$targe
5e780 74 2c 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 t,.$sources,.$e->getMessage().);
5e7a0 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 6d ..throw.new.\RuntimeException($m
5e7c0 65 73 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 essage,.$e->getCode(),.$e);.}.}.
5e7e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 66 6f ....public.function.supports($fo
5e800 72 6d 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 rmat,.$sourceType).{.return.isse
5e820 74 28 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 t(static::$formats[$format]);.}.
5e840 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
5e860 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 20 53 79 6d poser\Package\Archiver;..use.Sym
5e880 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 61 62 73 74 72 fony\Component\Finder;.....abstr
5e8a0 61 63 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 act.class.BaseExcludeFilter.{...
5e8c0 0a 70 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 .protected.$sourcePath;.....prot
5e8e0 65 63 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 ected.$excludePatterns;.....publ
5e900 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 ic.function.__construct($sourceP
5e920 61 74 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 ath).{.$this->sourcePath.=.$sour
5e940 63 65 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 cePath;.$this->excludePatterns.=
5e960 20 61 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 .array();.}............public.fu
5e980 6e 63 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 nction.filter($relativePath,.$ex
5e9a0 63 6c 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 clude).{.foreach.($this->exclude
5e9c0 50 61 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 Patterns.as.$patternData).{.list
5e9e0 28 24 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 ($pattern,.$negate,.$stripLeadin
5ea00 67 53 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 gSlash).=.$patternData;..if.($st
5ea20 72 69 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 ripLeadingSlash).{.$path.=.subst
5ea40 72 28 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 r($relativePath,.1);.}.else.{.$p
5ea60 61 74 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 ath.=.$relativePath;.}..if.(preg
5ea80 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 24 65 78 63 6c _match($pattern,.$path)).{.$excl
5eaa0 75 64 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 ude.=.!$negate;.}.}..return.$exc
5eac0 6c 75 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 lude;.}..........protected.funct
5eae0 69 6f 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 ion.parseLines(array.$lines,.$li
5eb00 6e 65 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 neParser).{.return.array_filter(
5eb20 0a 61 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 .array_map(.function.($line).use
5eb40 20 28 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 .($lineParser).{.$line.=.trim($l
5eb60 69 6e 65 29 3b 0a 0a 69 66 20 28 21 24 6c 69 6e 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f ine);..if.(!$line.||.0.===.strpo
5eb80 73 28 24 6c 69 6e 65 2c 20 27 23 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 s($line,.'#')).{.return;.}..retu
5eba0 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 20 24 rn.call_user_func($lineParser,.$
5ebc0 6c 69 6e 65 29 3b 0a 7d 2c 0a 24 6c 69 6e 65 73 0a 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 70 line);.},.$lines.),.function.($p
5ebe0 61 74 74 65 72 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 74 65 72 6e 20 21 3d 3d 20 6e 75 attern).{.return.$pattern.!==.nu
5ec00 6c 6c 3b 0a 7d 0a 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 ll;.}.);.}.........protected.fun
5ec20 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 73 28 24 72 75 6c 65 73 29 0a 7b ction.generatePatterns($rules).{
5ec40 0a 24 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 .$patterns.=.array();.foreach.($
5ec60 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 rules.as.$rule).{.$patterns[].=.
5ec80 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 72 75 6c 65 29 3b 0a 7d $this->generatePattern($rule);.}
5eca0 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 74 65 72 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ..return.$patterns;.}.........pr
5ecc0 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 61 74 74 65 72 6e otected.function.generatePattern
5ece0 28 24 72 75 6c 65 29 0a 7b 0a 24 6e 65 67 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 61 74 74 ($rule).{.$negate.=.false;.$patt
5ed00 65 72 6e 20 3d 20 27 23 27 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 26 26 ern.=.'#';..if.(strlen($rule).&&
5ed20 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 21 27 29 20 7b 0a 24 6e 65 67 61 74 65 20 3d 20 74 .$rule[0].===.'!').{.$negate.=.t
5ed40 72 75 65 3b 0a 24 72 75 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 75 6c 65 2c 20 31 29 3b 0a 7d rue;.$rule.=.substr($rule,.1);.}
5ed60 0a 0a 69 66 20 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 ..if.(strlen($rule).&&.$rule[0].
5ed80 3d 3d 3d 20 27 2f 27 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 27 5e 2f 27 3b 0a 24 72 75 ===.'/').{.$pattern..=.'^/';.$ru
5eda0 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 75 6c 65 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 69 66 20 le.=.substr($rule,.1);.}.elseif.
5edc0 28 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 2d 20 31 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 (strlen($rule).-.1.===.strpos($r
5ede0 75 6c 65 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 27 2f 27 3b 0a 24 72 ule,.'/')).{.$pattern..=.'/';.$r
5ee00 75 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 75 6c 65 2c 20 30 2c 20 2d 31 29 3b 0a 7d 20 65 6c ule.=.substr($rule,.0,.-1);.}.el
5ee20 73 65 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 75 6c 65 2c 20 27 2f seif.(false.===.strpos($rule,.'/
5ee40 27 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 27 2f 27 3b 0a 7d 0a 0a 0a 20 24 70 61 74 ')).{.$pattern..=.'/';.}....$pat
5ee60 74 65 72 6e 20 2e 3d 20 73 75 62 73 74 72 28 46 69 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 tern..=.substr(Finder\Glob::toRe
5ee80 67 65 78 28 24 72 75 6c 65 29 2c 20 32 2c 20 2d 32 29 20 2e 20 27 28 3f 3d 24 7c 2f 29 27 3b 0a gex($rule),.2,.-2)...'(?=$|/)';.
5eea0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 20 2e 20 27 23 27 2c 20 24 6e .return.array($pattern...'#',.$n
5eec0 65 67 61 74 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a egate,.false);.}.}.<?php........
5eee0 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 41 ....namespace.Composer\Package\A
5ef00 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 45 78 63 6c 75 64 rchiver;.........class.GitExclud
5ef20 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 eFilter.extends.BaseExcludeFilte
5ef40 72 0a 7b 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 r.{......public.function.__const
5ef60 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 63 6f ruct($sourcePath).{.parent::__co
5ef80 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 69 66 20 28 66 69 6c 65 5f nstruct($sourcePath);..if.(file_
5efa0 65 78 69 73 74 73 28 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 exists($sourcePath.'/.gitignore'
5efc0 29 29 20 7b 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 24 74 )).{.$this->excludePatterns.=.$t
5efe0 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 his->parseLines(.file($sourcePat
5f000 68 2e 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 h.'/.gitignore'),.array($this,.'
5f020 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d 0a 69 66 20 28 66 69 parseGitIgnoreLine').);.}.if.(fi
5f040 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 67 69 74 61 74 74 72 le_exists($sourcePath.'/.gitattr
5f060 69 62 75 74 65 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 ibutes')).{.$this->excludePatter
5f080 6e 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 ns.=.array_merge(.$this->exclude
5f0a0 50 61 74 74 65 72 6e 73 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c Patterns,.$this->parseLines(.fil
5f0c0 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 74 74 72 69 62 75 74 65 73 27 29 e($sourcePath.'/.gitattributes')
5f0e0 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 ,.array($this,.'parseGitAttribut
5f100 65 73 4c 69 6e 65 27 29 0a 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 esLine').));.}.}.........public.
5f120 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 28 24 6c 69 6e function.parseGitIgnoreLine($lin
5f140 65 29 0a 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 e).{.return.$this->generatePatte
5f160 72 6e 28 24 6c 69 6e 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 rn($line);.}.........public.func
5f180 74 69 6f 6e 20 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 65 73 4c 69 6e 65 28 24 6c 69 6e tion.parseGitAttributesLine($lin
5f1a0 65 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 23 5c 73 2b 23 27 e).{.$parts.=.preg_split('#\s+#'
5f1c0 2c 20 24 6c 69 6e 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 72 74 73 29 20 21 3d 20 ,.$line);..if.(count($parts).!=.
5f1e0 32 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 72 74 73 5b 2).{.return.null;.}..if.($parts[
5f200 31 5d 20 3d 3d 3d 20 27 65 78 70 6f 72 74 2d 69 67 6e 6f 72 65 27 29 20 7b 0a 72 65 74 75 72 6e 1].===.'export-ignore').{.return
5f220 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 70 61 72 74 73 5b 30 .$this->generatePattern($parts[0
5f240 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ]);.}.}.}.<?php............names
5f260 70 61 63 65 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 pace.Composer\Package\Archiver;.
5f280 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 0a .use.Composer\Util\Filesystem;..
5f2a0 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 3b 0a 0a 0a use.Symfony\Component\Finder;...
5f2c0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 .......class.ArchivableFilesFind
5f2e0 65 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 er.extends.\FilterIterator.{....
5f300 70 72 6f 74 65 63 74 65 64 20 24 66 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 protected.$finder;........public
5f320 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 73 2c 20 .function.__construct($sources,.
5f340 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 29 0a 7b 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c array.$excludes).{.$fs.=.new.Fil
5f360 65 73 79 73 74 65 6d 28 29 3b 0a 0a 24 73 6f 75 72 63 65 73 20 3d 20 24 66 73 2d 3e 6e 6f 72 6d esystem();..$sources.=.$fs->norm
5f380 61 6c 69 7a 65 50 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 24 66 69 6c 74 65 72 73 20 3d alizePath($sources);..$filters.=
5f3a0 20 61 72 72 61 79 28 0a 6e 65 77 20 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 .array(.new.HgExcludeFilter($sou
5f3c0 72 63 65 73 29 2c 0a 6e 65 77 20 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 rces),.new.GitExcludeFilter($sou
5f3e0 72 63 65 73 29 2c 0a 6e 65 77 20 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 rces),.new.ComposerExcludeFilter
5f400 28 24 73 6f 75 72 63 65 73 2c 20 24 65 78 63 6c 75 64 65 73 29 2c 0a 29 3b 0a 0a 24 74 68 69 73 ($sources,.$excludes),.);..$this
5f420 2d 3e 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 28 29 3b 0a ->finder.=.new.Finder\Finder();.
5f440 0a 24 66 69 6c 74 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 5c 53 70 6c 46 69 6c 65 49 6e 66 .$filter.=.function.(\SplFileInf
5f460 6f 20 24 66 69 6c 65 29 20 75 73 65 20 28 24 73 6f 75 72 63 65 73 2c 20 24 66 69 6c 74 65 72 73 o.$file).use.($sources,.$filters
5f480 2c 20 24 66 73 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 4c 69 6e 6b 28 29 20 26 26 20 ,.$fs).{.if.($file->isLink().&&.
5f4a0 73 74 72 70 6f 73 28 24 66 69 6c 65 2d 3e 67 65 74 4c 69 6e 6b 54 61 72 67 65 74 28 29 2c 20 24 strpos($file->getLinkTarget(),.$
5f4c0 73 6f 75 72 63 65 73 29 20 21 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a sources).!==.0).{.return.false;.
5f4e0 7d 0a 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 }..$relativePath.=.preg_replace(
5f500 0a 27 23 5e 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 6f 75 72 63 65 73 2c 20 27 23 27 29 2e .'#^'.preg_quote($sources,.'#').
5f520 27 23 27 2c 0a 27 27 2c 0a 24 66 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c '#',.'',.$fs->normalizePath($fil
5f540 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 0a 29 3b 0a 0a 24 65 78 63 6c 75 64 65 20 3d e->getRealPath()).);..$exclude.=
5f560 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 .false;.foreach.($filters.as.$fi
5f580 6c 74 65 72 29 20 7b 0a 24 65 78 63 6c 75 64 65 20 3d 20 24 66 69 6c 74 65 72 2d 3e 66 69 6c 74 lter).{.$exclude.=.$filter->filt
5f5a0 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a er($relativePath,.$exclude);.}..
5f5c0 72 65 74 75 72 6e 20 21 24 65 78 63 6c 75 64 65 3b 0a 7d 3b 0a 0a 69 66 20 28 6d 65 74 68 6f 64 return.!$exclude;.};..if.(method
5f5e0 5f 65 78 69 73 74 73 28 24 66 69 6c 74 65 72 2c 20 27 62 69 6e 64 54 6f 27 29 29 20 7b 0a 24 66 _exists($filter,.'bindTo')).{.$f
5f600 69 6c 74 65 72 20 3d 20 24 66 69 6c 74 65 72 2d 3e 62 69 6e 64 54 6f 28 6e 75 6c 6c 29 3b 0a 7d ilter.=.$filter->bindTo(null);.}
5f620 0a 0a 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 0a 2d 3e 69 6e 28 24 73 6f 75 72 63 65 73 29 0a 2d ..$this->finder.->in($sources).-
5f640 3e 66 69 6c 74 65 72 28 24 66 69 6c 74 65 72 29 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 74 72 75 >filter($filter).->ignoreVCS(tru
5f660 65 29 0a 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 0a 70 61 72 e).->ignoreDotFiles(false);..par
5f680 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 2d 3e ent::__construct($this->finder->
5f6a0 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 getIterator());.}..public.functi
5f6c0 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 on.accept().{.return.!$this->get
5f6e0 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 69 73 44 69 InnerIterator()->current()->isDi
5f700 72 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 r();.}.}.<?php............namesp
5f720 61 63 65 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 ace.Composer\Package\Archiver;..
5f740 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 use.Composer\Downloader\Download
5f760 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 50 61 Manager;.use.Composer\Package\Pa
5f780 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
5f7a0 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 kage\RootPackageInterface;.use.C
5f7c0 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
5f7e0 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 73 20 poser\Json\JsonFile;......class.
5f800 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 64 20 24 64 6f 77 6e ArchiveManager.{.protected.$down
5f820 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 61 72 63 68 69 76 65 loadManager;..protected.$archive
5f840 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 65 64 20 24 6f 76 65 rs.=.array();.....protected.$ove
5f860 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 75 62 6c 69 63 20 66 rwriteFiles.=.true;.....public.f
5f880 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 6f 61 64 4d 61 6e 61 unction.__construct(DownloadMana
5f8a0 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 74 68 69 73 2d 3e 64 ger.$downloadManager).{.$this->d
5f8c0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 ownloadManager.=.$downloadManage
5f8e0 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 61 64 64 41 72 63 68 r;.}.....public.function.addArch
5f900 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 72 63 68 69 76 65 72 iver(ArchiverInterface.$archiver
5f920 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 24 61 72 63 68 69 76 ).{.$this->archivers[].=.$archiv
5f940 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 74 69 6f 6e 20 73 65 er;.}.........public.function.se
5f960 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 65 46 69 6c 65 73 29 tOverwriteFiles($overwriteFiles)
5f980 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 3d 20 24 6f 76 65 72 .{.$this->overwriteFiles.=.$over
5f9a0 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 3b 0a 7d 0a 0a 0a 0a writeFiles;..return.$this;.}....
5f9c0 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 46 .....public.function.getPackageF
5f9e0 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 24 70 61 63 6b 61 67 ilename(PackageInterface.$packag
5fa00 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 72 65 67 5f 72 65 70 e).{.$nameParts.=.array(preg_rep
5fa20 6c 61 63 65 28 27 23 5b 5e 61 2d 7a 30 2d 39 2d 5f 5d 23 69 27 2c 20 27 2d 27 2c 20 24 70 61 63 lace('#[^a-z0-9-_]#i',.'-',.$pac
5fa40 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 kage->getName()));..if.(preg_mat
5fa60 63 68 28 27 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 ch('{^[a-f0-9]{40}$}',.$package-
5fa80 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 >getDistReference())).{.$namePar
5faa0 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 61 72 72 ts.=.array_merge($nameParts,.arr
5fac0 61 79 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 2c ay($package->getDistReference(),
5fae0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 29 3b 0a 7d 20 65 6c .$package->getDistType()));.}.el
5fb00 73 65 20 7b 0a 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 se.{.$nameParts.=.array_merge($n
5fb20 61 6d 65 50 61 72 74 73 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 ameParts,.array($package->getPre
5fb40 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 ttyVersion(),.$package->getDistR
5fb60 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 eference()));.}..if.($package->g
5fb80 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 74 etSourceReference()).{.$namePart
5fba0 73 5b 5d 20 3d 20 73 75 62 73 74 72 28 73 68 61 31 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 s[].=.substr(sha1($package->getS
5fbc0 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 2c 20 30 2c 20 36 29 3b 0a 7d 0a 0a 24 6e 61 ourceReference()),.0,.6);.}..$na
5fbe0 6d 65 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2d 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 me.=.implode('-',.array_filter($
5fc00 6e 61 6d 65 50 61 72 74 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 0a 72 65 74 75 72 nameParts,.function.($p).{.retur
5fc20 6e 20 21 65 6d 70 74 79 28 24 70 29 3b 0a 7d 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 n.!empty($p);.}));..return.str_r
5fc40 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 2d 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a eplace('/',.'-',.$name);.}......
5fc60 0a 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 50 61 ......public.function.archive(Pa
5fc80 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 66 6f 72 6d 61 74 ckageInterface.$package,.$format
5fca0 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 66 6f 72 6d 61 ,.$targetDir).{.if.(empty($forma
5fcc0 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 74 t)).{.throw.new.\InvalidArgument
5fce0 45 78 63 65 70 74 69 6f 6e 28 27 46 6f 72 6d 61 74 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 66 Exception('Format.must.be.specif
5fd00 69 65 64 27 29 3b 0a 7d 0a 0a 0a 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 6e 75 ied');.}....$usableArchiver.=.nu
5fd20 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 20 61 73 ll;.foreach.($this->archivers.as
5fd40 20 24 61 72 63 68 69 76 65 72 29 20 7b 0a 69 66 20 28 24 61 72 63 68 69 76 65 72 2d 3e 73 75 70 .$archiver).{.if.($archiver->sup
5fd60 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 ports($format,.$package->getSour
5fd80 63 65 54 79 70 65 28 29 29 29 20 7b 0a 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 24 ceType())).{.$usableArchiver.=.$
5fda0 61 72 63 68 69 76 65 72 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c archiver;.break;.}.}....if.(null
5fdc0 20 3d 3d 3d 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .===.$usableArchiver).{.throw.ne
5fde0 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4e 6f 20 w.\RuntimeException(sprintf('No.
5fe00 61 72 63 68 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 73 75 70 70 6f 72 74 20 25 73 20 66 6f 72 archiver.found.to.support.%s.for
5fe20 6d 61 74 27 2c 20 24 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 mat',.$format));.}..$filesystem.
5fe40 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 =.new.Filesystem();.$packageName
5fe60 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 46 69 6c 65 6e 61 6d 65 28 24 70 61 .=.$this->getPackageFilename($pa
5fe80 63 6b 61 67 65 29 3b 0a 0a 0a 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 ckage);....$filesystem->ensureDi
5fea0 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 61 72 67 rectoryExists($targetDir);.$targ
5fec0 65 74 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2e 27 2f 27 2e 24 70 et.=.realpath($targetDir).'/'.$p
5fee0 61 63 6b 61 67 65 4e 61 6d 65 2e 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a 24 66 69 6c 65 73 79 73 ackageName.'.'.$format;.$filesys
5ff00 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 6e 61 tem->ensureDirectoryExists(dirna
5ff20 6d 65 28 24 74 61 72 67 65 74 29 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 me($target));..if.(!$this->overw
5ff40 72 69 74 65 46 69 6c 65 73 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 61 72 67 65 74 riteFiles.&&.file_exists($target
5ff60 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 )).{.return.$target;.}..if.($pac
5ff80 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 49 6e 74 65 72 kage.instanceof.RootPackageInter
5ffa0 66 61 63 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 face).{.$sourcePath.=.realpath('
5ffc0 2e 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 .');.}.else.{...$sourcePath.=.sy
5ffe0 73 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 s_get_temp_dir().'/composer_arch
60000 69 76 65 27 2e 75 6e 69 71 69 64 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 ive'.uniqid();.$filesystem->ensu
60020 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 74 68 29 3b 0a reDirectoryExists($sourcePath);.
60040 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 64 6f 77 6e 6c ...$this->downloadManager->downl
60060 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 0a 0a 0a 20 69 oad($package,.$sourcePath);....i
60080 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 6e 50 61 74 68 f.(file_exists($composerJsonPath
600a0 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 73 6f 6e 27 29 .=.$sourcePath.'/composer.json')
600c0 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 65 28 24 63 6f ).{.$jsonFile.=.new.JsonFile($co
600e0 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 3d 20 24 6a 73 mposerJsonPath);.$jsonData.=.$js
60100 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 24 6a 73 6f 6e onFile->read();.if.(!empty($json
60120 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 29 20 7b 0a 24 Data['archive']['exclude'])).{.$
60140 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 28 24 6a 73 6f package->setArchiveExcludes($jso
60160 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 3b 0a 7d 0a nData['archive']['exclude']);.}.
60180 7d 0a 7d 0a 0a 0a 20 24 74 65 6d 70 54 61 72 67 65 74 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d }.}....$tempTarget.=.sys_get_tem
601a0 70 5f 64 69 72 28 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 5f 61 72 63 68 69 76 65 27 2e 75 6e 69 71 p_dir().'/composer_archive'.uniq
601c0 69 64 28 29 2e 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 id().'.'.$format;.$filesystem->e
601e0 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 65 nsureDirectoryExists(dirname($te
60200 6d 70 54 61 72 67 65 74 29 29 3b 0a 0a 24 61 72 63 68 69 76 65 50 61 74 68 20 3d 20 24 75 73 61 mpTarget));..$archivePath.=.$usa
60220 62 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 bleArchiver->archive($sourcePath
60240 2c 20 24 74 65 6d 70 54 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 ,.$tempTarget,.$format,.$package
60260 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 3b 0a 72 65 6e 61 6d 65 28 ->getArchiveExcludes());.rename(
60280 24 61 72 63 68 69 76 65 50 61 74 68 2c 20 24 74 61 72 67 65 74 29 3b 0a 0a 0a 20 69 66 20 28 21 $archivePath,.$target);....if.(!
602a0 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 61 67 65 49 $package.instanceof.RootPackageI
602c0 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 nterface).{.$filesystem->removeD
602e0 69 72 65 63 74 6f 72 79 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 7d 0a 24 66 69 6c 65 73 79 irectory($sourcePath);.}.$filesy
60300 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 28 24 74 65 6d 70 54 61 72 67 65 74 29 3b 0a 0a 72 65 74 75 stem->remove($tempTarget);..retu
60320 72 6e 20 24 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 rn.$target;.}.}.<?php...........
60340 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 41 72 63 68 .namespace.Composer\Package\Arch
60360 69 76 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 iver;..use.Symfony\Component\Fin
60380 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 der;.......class.HgExcludeFilter
603a0 20 65 78 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 63 6f 6e .extends.BaseExcludeFilter.{.con
603c0 73 74 20 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 48 47 st.HG_IGNORE_REGEX.=.1;.const.HG
603e0 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 _IGNORE_GLOB.=.2;......protected
60400 20 24 70 61 74 74 65 72 6e 4d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$patternMode;.......public.func
60420 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 68 29 0a 7b 0a tion.__construct($sourcePath).{.
60440 70 61 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 parent::__construct($sourcePath)
60460 3b 0a 0a 24 74 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 ;..$this->patternMode.=.self::HG
60480 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 3b 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 _IGNORE_REGEX;..if.(file_exists(
604a0 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 29 20 7b 0a 24 74 68 $sourcePath.'/.hgignore')).{.$th
604c0 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 70 61 72 is->excludePatterns.=.$this->par
604e0 73 65 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 68 67 69 seLines(.file($sourcePath.'/.hgi
60500 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 48 67 49 67 gnore'),.array($this,.'parseHgIg
60520 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 noreLine').);.}.}.........public
60540 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 48 67 49 67 6e 6f 72 65 4c 69 6e 65 28 24 6c 69 6e .function.parseHgIgnoreLine($lin
60560 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 73 79 6e 74 61 78 5c 73 2a e).{.if.(preg_match('#^syntax\s*
60580 3a 5c 73 2a 28 67 6c 6f 62 7c 72 65 67 65 78 70 29 24 23 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 :\s*(glob|regexp)$#',.$line,.$ma
605a0 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 67 tches)).{.if.($matches[1].===.'g
605c0 6c 6f 62 27 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c lob').{.$this->patternMode.=.sel
605e0 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 f::HG_IGNORE_GLOB;.}.else.{.$thi
60600 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 52 45 s->patternMode.=.self::HG_IGNORE
60620 5f 52 45 47 45 58 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 _REGEX;.}..return.null;.}..if.($
60640 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 this->patternMode.==.self::HG_IG
60660 4e 4f 52 45 5f 47 4c 4f 42 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 NORE_GLOB).{.return.$this->patte
60680 72 6e 46 72 6f 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 rnFromGlob($line);.}.else.{.retu
606a0 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 78 28 24 6c 69 6e 65 rn.$this->patternFromRegex($line
606c0 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f );.}.}.........protected.functio
606e0 6e 20 70 61 74 74 65 72 6e 46 72 6f 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 0a 7b 0a 24 70 61 74 74 n.patternFromGlob($line).{.$patt
60700 65 72 6e 20 3d 20 27 23 27 2e 73 75 62 73 74 72 28 46 69 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f ern.=.'#'.substr(Finder\Glob::to
60720 52 65 67 65 78 28 24 6c 69 6e 65 29 2c 20 32 2c 20 2d 31 29 2e 27 23 27 3b 0a 24 70 61 74 74 65 Regex($line),.2,.-1).'#';.$patte
60740 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5b 5e 2f 5d 2a 27 2c 20 27 2e 2a 27 2c 20 rn.=.str_replace('[^/]*',.'.*',.
60760 24 70 61 74 74 65 72 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 $pattern);..return.array($patter
60780 6e 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 n,.false,.true);.}.........publi
607a0 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 78 28 24 6c 69 6e c.function.patternFromRegex($lin
607c0 65 29 0a 7b 0a 0a 20 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 2e 70 72 65 67 5f 72 65 70 6c 61 e).{...$pattern.=.'#'.preg_repla
607e0 63 65 28 27 2f 28 28 3f 3a 5c 5c 5c 5c 5c 5c 5c 5c 29 2a 29 28 5c 5c 5c 5c 3f 29 23 2f 27 2c 20 ce('/((?:\\\\\\\\)*)(\\\\?)#/',.
60800 27 5c 31 5c 32 5c 32 5c 5c 23 27 2c 20 24 6c 69 6e 65 29 2e 27 23 27 3b 0a 0a 72 65 74 75 72 6e '\1\2\2\\#',.$line).'#';..return
60820 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29 3b 0a 7d .array($pattern,.false,.true);.}
60840 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
60860 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 41 6c mposer\Package;.....class.RootAl
60880 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 iasPackage.extends.AliasPackage.
608a0 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 72 66 61 63 65 0a implements.RootPackageInterface.
608c0 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 6f {.public.function.__construct(Ro
608e0 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 otPackageInterface.$aliasOf,.$ve
60900 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a rsion,.$prettyVersion).{.parent:
60920 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c :__construct($aliasOf,.$version,
60940 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$prettyVersion);.}.....public.f
60960 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 unction.getAliases().{.return.$t
60980 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 0a his->aliasOf->getAliases();.}...
609a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 ..public.function.getMinimumStab
609c0 69 6c 69 74 79 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 ility().{.return.$this->aliasOf-
609e0 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 >getMinimumStability();.}.....pu
60a00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 blic.function.getStabilityFlags(
60a20 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 74 ).{.return.$this->aliasOf->getSt
60a40 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e abilityFlags();.}.....public.fun
60a60 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ction.getReferences().{.return.$
60a80 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a this->aliasOf->getReferences();.
60aa0 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 65 72 53 }.....public.function.getPreferS
60ac0 74 61 62 6c 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 table().{.return.$this->aliasOf-
60ae0 3e 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 >getPreferStable();.}.....public
60b00 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 20 24 72 65 71 .function.setRequires(array.$req
60b20 75 69 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 uire).{.return.$this->aliasOf->s
60b40 65 74 52 65 71 75 69 72 65 73 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c etRequires($require);.}.....publ
60b60 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 ic.function.setDevRequires(array
60b80 20 24 64 65 76 52 65 71 75 69 72 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c .$devRequire).{.return.$this->al
60ba0 69 61 73 4f 66 2d 3e 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 24 64 65 76 52 65 71 75 69 72 iasOf->setDevRequires($devRequir
60bc0 65 29 3b 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 e);.}..public.function.__clone()
60be0 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6c 6f 6e 65 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 .{.parent::__clone();.$this->ali
60c00 61 73 4f 66 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 7d asOf.=.clone.$this->aliasOf;.}.}
60c20 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
60c40 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 50 61 63 6b oser\Package;..use.Composer\Pack
60c60 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
60c80 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 43 6f 6d 70 6f 73 65 72 4d 69 72 72 6f 72 3b 0a 0a 0a 0a omposer\Util\ComposerMirror;....
60ca0 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 ...class.Package.extends.BasePac
60cc0 6b 61 67 65 0a 7b 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 kage.{.protected.$type;.protecte
60ce0 64 20 24 74 61 72 67 65 74 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c d.$targetDir;.protected.$install
60d00 61 74 69 6f 6e 53 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 54 79 ationSource;.protected.$sourceTy
60d20 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 55 72 6c 3b 0a 70 72 6f 74 65 63 pe;.protected.$sourceUrl;.protec
60d40 74 65 64 20 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 ted.$sourceReference;.protected.
60d60 24 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 54 $sourceMirrors;.protected.$distT
60d80 79 70 65 3b 0a 70 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 ype;.protected.$distUrl;.protect
60da0 65 64 20 24 64 69 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 ed.$distReference;.protected.$di
60dc0 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 4d stSha1Checksum;.protected.$distM
60de0 69 72 72 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 irrors;.protected.$version;.prot
60e00 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 64 20 ected.$prettyVersion;.protected.
60e20 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 20 3d $releaseDate;.protected.$extra.=
60e40 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 3d 20 .array();.protected.$binaries.=.
60e60 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 63 74 array();.protected.$dev;.protect
60e80 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 66 69 ed.$stability;.protected.$notifi
60ea0 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 73 20 cationUrl;..protected.$requires.
60ec0 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 73 20 =.array();.protected.$conflicts.
60ee0 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 20 3d =.array();.protected.$provides.=
60f00 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 3d 20 .array();.protected.$replaces.=.
60f20 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 73 20 array();.protected.$devRequires.
60f40 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 20 3d =.array();.protected.$suggests.=
60f60 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 3d 20 .array();.protected.$autoload.=.
60f80 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 41 75 74 6f 6c 6f 61 64 20 array();.protected.$devAutoload.
60fa0 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
60fc0 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
60fe0 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
61000 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,.$
61020 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
61040 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
61060 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
61080 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
610a0 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
610c0 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
610e0 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';.
61100 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().{.
61120 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.
61140 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-
61160 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
61180 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
611a0 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
611c0 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.
611e0 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
61200 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)
61220 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
61240 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
61260 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
61280 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
612a0 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('{.(?:^|[\\\\/]+)
612c0 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 .\.\.?.(?:[\\\\/]+|$).(?:\.\.?.(
612e0 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-
61300 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.
61320 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).
61340 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
61360 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
61380 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
613a0 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
613c0 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
613e0 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
61400 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;
61420 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
61440 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
61460 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
61480 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
614a0 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
614c0 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
614e0 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
61500 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.
61520 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
61540 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
61560 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).{.
61580 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
615a0 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().{.
615c0 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
615e0 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
61600 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
61620 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
61640 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().
61660 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;
61680 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 .}.....public.function.setSource
616a0 4d 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 Mirrors($mirrors).{.$this->sourc
616c0 65 4d 69 72 72 6f 72 73 20 3d 20 24 6d 69 72 72 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 eMirrors.=.$mirrors;.}.....publi
616e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 29 0a 7b 0a c.function.getSourceMirrors().{.
61700 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 3b 0a 7d 0a 0a return.$this->sourceMirrors;.}..
61720 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 73 ...public.function.getSourceUrls
61740 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 73 28 24 74 68 69 73 ().{.return.$this->getUrls($this
61760 2d 3e 73 6f 75 72 63 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 ->sourceUrl,.$this->sourceMirror
61780 73 2c 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 2c 20 24 74 68 69 73 s,.$this->sourceReference,.$this
617a0 2d 3e 73 6f 75 72 63 65 54 79 70 65 2c 20 27 73 6f 75 72 63 65 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ->sourceType,.'source');.}.....p
617c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 70 65 28 24 74 79 70 65 ublic.function.setDistType($type
617e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a ).{.$this->distType.=.$type;.}..
61800 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 54 79 70 65 28 29 ...public.function.getDistType()
61820 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 3b 0a 7d 0a 0a 0a 0a .{.return.$this->distType;.}....
61840 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 55 72 6c 28 24 75 72 6c .public.function.setDistUrl($url
61860 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a ).{.$this->distUrl.=.$url;.}....
61880 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 7b 0a .public.function.getDistUrl().{.
618a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 return.$this->distUrl;.}.....pub
618c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 lic.function.setDistReference($r
618e0 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 eference).{.$this->distReference
61900 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .=.$reference;.}.....public.func
61920 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e tion.getDistReference().{.return
61940 20 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 .$this->distReference;.}.....pub
61960 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d lic.function.setDistSha1Checksum
61980 28 24 73 68 61 31 63 68 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 ($sha1checksum).{.$this->distSha
619a0 31 43 68 65 63 6b 73 75 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 1Checksum.=.$sha1checksum;.}....
619c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 .public.function.getDistSha1Chec
619e0 6b 73 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 ksum().{.return.$this->distSha1C
61a00 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 hecksum;.}.....public.function.s
61a20 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d etDistMirrors($mirrors).{.$this-
61a40 3e 64 69 73 74 4d 69 72 72 6f 72 73 20 3d 20 24 6d 69 72 72 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 >distMirrors.=.$mirrors;.}.....p
61a60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 0a ublic.function.getDistMirrors().
61a80 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 3b 0a 7d 0a 0a {.return.$this->distMirrors;.}..
61aa0 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 73 28 29 ...public.function.getDistUrls()
61ac0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 73 28 24 74 68 69 73 2d 3e .{.return.$this->getUrls($this->
61ae0 64 69 73 74 55 72 6c 2c 20 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 2c 20 24 74 68 distUrl,.$this->distMirrors,.$th
61b00 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 2c 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 is->distReference,.$this->distTy
61b20 70 65 2c 20 27 64 69 73 74 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 pe,.'dist');.}.....public.functi
61b40 6f 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getVersion().{.return.$this->
61b60 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 version;.}.....public.function.g
61b80 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 etPrettyVersion().{.return.$this
61ba0 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ->prettyVersion;.}.......public.
61bc0 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 5c 44 61 74 65 54 69 6d function.setReleaseDate(\DateTim
61be0 65 20 24 72 65 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 e.$releaseDate).{.$this->release
61c00 44 61 74 65 20 3d 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 Date.=.$releaseDate;.}.....publi
61c20 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 c.function.getReleaseDate().{.re
61c40 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 0a turn.$this->releaseDate;.}......
61c60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 .public.function.setRequires(arr
61c80 61 79 20 24 72 65 71 75 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 ay.$requires).{.$this->requires.
61ca0 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$requires;.}.....public.functi
61cc0 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d on.getRequires().{.return.$this-
61ce0 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 >requires;.}.......public.functi
61d00 6f 6e 20 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 61 79 20 24 63 6f 6e 66 6c 69 63 74 73 on.setConflicts(array.$conflicts
61d20 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 ).{.$this->conflicts.=.$conflict
61d40 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 s;.}.....public.function.getConf
61d60 6c 69 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 licts().{.return.$this->conflict
61d80 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 50 72 s;.}.......public.function.setPr
61da0 6f 76 69 64 65 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 0a 7b 0a 24 74 68 69 73 2d ovides(array.$provides).{.$this-
61dc0 3e 70 72 6f 76 69 64 65 73 20 3d 20 24 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 >provides.=.$provides;.}.....pub
61de0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a 7b 0a 72 65 74 lic.function.getProvides().{.ret
61e00 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 urn.$this->provides;.}.......pub
61e20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 61 79 20 24 lic.function.setReplaces(array.$
61e40 72 65 70 6c 61 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 3d 20 24 72 replaces).{.$this->replaces.=.$r
61e60 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 eplaces;.}.....public.function.g
61e80 65 74 52 65 70 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 etReplaces().{.return.$this->rep
61ea0 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 laces;.}.......public.function.s
61ec0 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 73 etDevRequires(array.$devRequires
61ee0 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 24 64 65 76 52 65 71 ).{.$this->devRequires.=.$devReq
61f00 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 uires;.}.....public.function.get
61f20 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 DevRequires().{.return.$this->de
61f40 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 vRequires;.}.......public.functi
61f60 6f 6e 20 73 65 74 53 75 67 67 65 73 74 73 28 61 72 72 61 79 20 24 73 75 67 67 65 73 74 73 29 0a on.setSuggests(array.$suggests).
61f80 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 20 3d 20 24 73 75 67 67 65 73 74 73 3b 0a 7d {.$this->suggests.=.$suggests;.}
61fa0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 .....public.function.getSuggests
61fc0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 3b 0a 7d 0a 0a ().{.return.$this->suggests;.}..
61fe0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 .....public.function.setAutoload
62000 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c (array.$autoload).{.$this->autol
62020 6f 61 64 20 3d 20 24 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 oad.=.$autoload;.}.....public.fu
62040 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getAutoload().{.return.$t
62060 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->autoload;.}.......public.fu
62080 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 20 24 64 65 76 nction.setDevAutoload(array.$dev
620a0 41 75 74 6f 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 41 75 74 6f 6c 6f 61 64 20 3d Autoload).{.$this->devAutoload.=
620c0 20 24 64 65 76 41 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$devAutoload;.}.....public.func
620e0 74 69 6f 6e 20 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getDevAutoload().{.return.$
62100 74 68 69 73 2d 3e 64 65 76 41 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 this->devAutoload;.}.......publi
62120 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
62140 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
62160 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
62180 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().{
621a0 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;.}..
621c0 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
621e0 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
62200 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
62220 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
62240 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
62260 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
62280 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
622a0 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
622c0 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
622e0 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().
62300 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;
62320 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 70 6c 61 .}.........public.function.repla
62340 63 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 ceVersion($version,.$prettyVersi
62360 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 65 72 73 69 6f 6e 3b on).{.$this->version.=.$version;
62380 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 .$this->prettyVersion.=.$prettyV
623a0 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 ersion;..$this->stability.=.Vers
623c0 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 ionParser::parseStability($versi
623e0 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 on);.$this->dev.=.$this->stabili
62400 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ty.===.'dev';.}..protected.funct
62420 69 6f 6e 20 67 65 74 55 72 6c 73 28 24 75 72 6c 2c 20 24 6d 69 72 72 6f 72 73 2c 20 24 72 65 66 ion.getUrls($url,.$mirrors,.$ref
62440 2c 20 24 74 79 70 65 2c 20 24 75 72 6c 54 79 70 65 29 0a 7b 0a 69 66 20 28 21 24 75 72 6c 29 20 ,.$type,.$urlType).{.if.(!$url).
62460 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 75 72 6c 73 20 3d 20 61 72 72 61 {.return.array();.}.$urls.=.arra
62480 79 28 24 75 72 6c 29 3b 0a 69 66 20 28 24 6d 69 72 72 6f 72 73 29 20 7b 0a 66 6f 72 65 61 63 68 y($url);.if.($mirrors).{.foreach
624a0 20 28 24 6d 69 72 72 6f 72 73 20 61 73 20 24 6d 69 72 72 6f 72 29 20 7b 0a 69 66 20 28 24 75 72 .($mirrors.as.$mirror).{.if.($ur
624c0 6c 54 79 70 65 20 3d 3d 3d 20 27 64 69 73 74 27 29 20 7b 0a 24 6d 69 72 72 6f 72 55 72 6c 20 3d lType.===.'dist').{.$mirrorUrl.=
624e0 20 43 6f 6d 70 6f 73 65 72 4d 69 72 72 6f 72 3a 3a 70 72 6f 63 65 73 73 55 72 6c 28 24 6d 69 72 .ComposerMirror::processUrl($mir
62500 72 6f 72 5b 27 75 72 6c 27 5d 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e ror['url'],.$this->name,.$this->
62520 76 65 72 73 69 6f 6e 2c 20 24 72 65 66 2c 20 24 74 79 70 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 version,.$ref,.$type);.}.elseif.
62540 28 24 75 72 6c 54 79 70 65 20 3d 3d 3d 20 27 73 6f 75 72 63 65 27 20 26 26 20 24 74 79 70 65 20 ($urlType.===.'source'.&&.$type.
62560 3d 3d 3d 20 27 67 69 74 27 29 20 7b 0a 24 6d 69 72 72 6f 72 55 72 6c 20 3d 20 43 6f 6d 70 6f 73 ===.'git').{.$mirrorUrl.=.Compos
62580 65 72 4d 69 72 72 6f 72 3a 3a 70 72 6f 63 65 73 73 47 69 74 55 72 6c 28 24 6d 69 72 72 6f 72 5b erMirror::processGitUrl($mirror[
625a0 27 75 72 6c 27 5d 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 75 72 6c 2c 20 24 74 79 70 65 'url'],.$this->name,.$url,.$type
625c0 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 75 72 6c 54 79 70 65 20 3d 3d 3d 20 27 73 6f 75 72 63 );.}.elseif.($urlType.===.'sourc
625e0 65 27 20 26 26 20 24 74 79 70 65 20 3d 3d 3d 20 27 68 67 27 29 20 7b 0a 24 6d 69 72 72 6f 72 55 e'.&&.$type.===.'hg').{.$mirrorU
62600 72 6c 20 3d 20 43 6f 6d 70 6f 73 65 72 4d 69 72 72 6f 72 3a 3a 70 72 6f 63 65 73 73 48 67 55 72 rl.=.ComposerMirror::processHgUr
62620 6c 28 24 6d 69 72 72 6f 72 5b 27 75 72 6c 27 5d 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 l($mirror['url'],.$this->name,.$
62640 75 72 6c 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6d 69 url,.$type);.}.if.(!in_array($mi
62660 72 72 6f 72 55 72 6c 2c 20 24 75 72 6c 73 29 29 20 7b 0a 24 66 75 6e 63 20 3d 20 24 6d 69 72 72 rrorUrl,.$urls)).{.$func.=.$mirr
62680 6f 72 5b 27 70 72 65 66 65 72 72 65 64 27 5d 20 3f 20 27 61 72 72 61 79 5f 75 6e 73 68 69 66 74 or['preferred'].?.'array_unshift
626a0 27 20 3a 20 27 61 72 72 61 79 5f 70 75 73 68 27 3b 0a 24 66 75 6e 63 28 24 75 72 6c 73 2c 20 24 '.:.'array_push';.$func($urls,.$
626c0 6d 69 72 72 6f 72 55 72 6c 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 73 3b mirrorUrl);.}.}.}..return.$urls;
626e0 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.
62700 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\
62720 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
62740 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
62760 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.
62780 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
627a0 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
627c0 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
627e0 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.$
62800 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
62820 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
62840 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.$
62860 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;.
62880 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.$
628a0 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;
628c0 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
628e0 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
62900 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,.$
62920 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
62940 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
62960 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
62980 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
629a0 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->
629c0 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
629e0 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.
62a00 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';...
62a20 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
62a40 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.=.
62a60 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)}
62a80 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.=>
62aa0 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'.=
62ac0 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())
62ae0 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
62b00 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
62b20 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('=',.
62b40 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
62b60 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
62b80 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
62ba0 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.
62bc0 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
62be0 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.
62c00 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
62c20 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'.===.
62c40 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()).{.
62c60 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
62c80 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
62ca0 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-
62cc0 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
62ce0 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
62d00 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
62d20 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
62d40 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
62d60 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
62d80 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
62da0 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
62dc0 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
62de0 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.$
62e00 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
62e20 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
62e40 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
62e60 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
62e80 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
62ea0 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
62ec0 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
62ee0 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
62f00 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
62f20 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
62f40 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
62f60 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
62f80 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
62fa0 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).{.
62fc0 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.=
62fe0 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.
63000 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
63020 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
63040 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
63060 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
63080 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
630a0 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
630c0 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
630e0 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
63100 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
63120 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->
63140 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($
63160 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
63180 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-
631a0 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(
631c0 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
631e0 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
63200 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
63220 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->
63240 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
63260 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 0a 7b 0a 72 65 74 c.function.getSourceUrls().{.ret
63280 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c urn.$this->aliasOf->getSourceUrl
632a0 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 6f 75 72 63 65 s();.}.public.function.getSource
632c0 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
632e0 73 4f 66 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 0a 70 75 62 sOf->getSourceReference();.}.pub
63300 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 lic.function.setSourceReference(
63320 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 $reference).{.return.$this->alia
63340 73 4f 66 2d 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 sOf->setSourceReference($referen
63360 63 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 ce);.}.public.function.setSource
63380 4d 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 Mirrors($mirrors).{.return.$this
633a0 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 24 6d 69 72 ->aliasOf->setSourceMirrors($mir
633c0 72 6f 72 73 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 rors);.}.public.function.getSour
633e0 63 65 4d 69 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 ceMirrors().{.return.$this->alia
63400 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 sOf->getSourceMirrors();.}.publi
63420 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
63440 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();
63460 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().
63480 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
634a0 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
634c0 55 72 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e Urls().{.return.$this->aliasOf->
634e0 67 65 74 44 69 73 74 55 72 6c 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e getDistUrls();.}.public.function
63500 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 .getDistReference().{.return.$th
63520 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b is->aliasOf->getDistReference();
63540 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 .}.public.function.setDistRefere
63560 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e nce($reference).{.return.$this->
63580 61 6c 69 61 73 4f 66 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 aliasOf->setDistReference($refer
635a0 65 6e 63 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 44 69 73 74 ence);.}.public.function.getDist
635c0 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 61 Sha1Checksum().{.return.$this->a
635e0 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d liasOf->getDistSha1Checksum();.}
63600 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 .public.function.setTransportOpt
63620 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ions(array.$options).{.return.$t
63640 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e his->aliasOf->setTransportOption
63660 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 s($options);.}.public.function.g
63680 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 etTransportOptions().{.return.$t
636a0 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e his->aliasOf->getTransportOption
636c0 73 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 44 69 73 74 4d 69 s();.}.public.function.setDistMi
636e0 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e rrors($mirrors).{.return.$this->
63700 61 6c 69 61 73 4f 66 2d 3e 73 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 aliasOf->setDistMirrors($mirrors
63720 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 4d 69 72 72 );.}.public.function.getDistMirr
63740 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 ors().{.return.$this->aliasOf->g
63760 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 etDistMirrors();.}.public.functi
63780 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->
637a0 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.
637c0 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.$
637e0 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
63800 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
63820 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
63840 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 44 65 76 41 75 74 d();.}.public.function.getDevAut
63860 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d oload().{.return.$this->aliasOf-
63880 3e 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 >getDevAutoload();.}.public.func
638a0 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 tion.getIncludePaths().{.return.
638c0 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 $this->aliasOf->getIncludePaths(
638e0 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 70 6f 73 69 74 6f );.}.public.function.getReposito
63900 72 69 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 66 2d 3e ries().{.return.$this->aliasOf->
63920 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 getRepositories();.}.public.func
63940 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getReleaseDate().{.return.$
63960 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b this->aliasOf->getReleaseDate();
63980 0a 7d 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 73 28 29 .}.public.function.getBinaries()
639a0 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 42 69 6e .{.return.$this->aliasOf->getBin
639c0 61 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 aries();.}.public.function.getKe
639e0 79 77 6f 72 64 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 ywords().{.return.$this->aliasOf
63a00 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->getKeywords();.}.public.functi
63a20 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 on.getDescription().{.return.$th
63a40 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 7d is->aliasOf->getDescription();.}
63a60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b .public.function.getHomepage().{
63a80 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 48 6f 6d 65 70 .return.$this->aliasOf->getHomep
63aa0 61 67 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 age();.}.public.function.getSugg
63ac0 65 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e ests().{.return.$this->aliasOf->
63ae0 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e getSuggests();.}.public.function
63b00 20 67 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c .getAuthors().{.return.$this->al
63b20 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 iasOf->getAuthors();.}.public.fu
63b40 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 20 24 74 68 nction.getSupport().{.return.$th
63b60 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 70 75 62 is->aliasOf->getSupport();.}.pub
63b80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 lic.function.getNotificationUrl(
63ba0 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 4e 6f ).{.return.$this->aliasOf->getNo
63bc0 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tificationUrl();.}.public.functi
63be0 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e on.getArchiveExcludes().{.return
63c00 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 .$this->aliasOf->getArchiveExclu
63c20 64 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e 64 des();.}.public.function.isAband
63c40 6f 6e 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e oned().{.return.$this->aliasOf->
63c60 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e isAbandoned();.}.public.function
63c80 20 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 .getReplacementPackage().{.retur
63ca0 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 n.$this->aliasOf->getReplacement
63cc0 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 Package();.}.public.function.__t
63ce0 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 5f 5f 74 6f 53 oString().{.return.parent::__toS
63d00 74 72 69 6e 67 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 61 6c 69 tring().'.(alias.of.'.$this->ali
63d20 61 73 4f 66 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 asOf->getVersion().')';.}.}.<?ph
63d40 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\
63d60 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c Package;..use.Composer\Package\L
63d80 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 6e 74 65 inkConstraint\LinkConstraintInte
63da0 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 6e 6b 0a 7b 0a 70 72 6f 74 65 63 rface;.......class.Link.{.protec
63dc0 74 65 64 20 24 73 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 3b 0a ted.$source;.protected.$target;.
63de0 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 6f 74 65 63 74 65 64 protected.$constraint;.protected
63e00 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 70 72 65 74 74 79 .$description;.protected.$pretty
63e20 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e Constraint;...........public.fun
63e40 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 ction.__construct($source,.$targ
63e60 65 74 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e et,.LinkConstraintInterface.$con
63e80 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 straint.=.null,.$description.=.'
63ea0 72 65 6c 61 74 65 73 20 74 6f 27 2c 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d relates.to',.$prettyConstraint.=
63ec0 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 20 3d 20 73 74 72 74 6f 6c 6f .null).{.$this->source.=.strtolo
63ee0 77 65 72 28 24 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 73 74 wer($source);.$this->target.=.st
63f00 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 rtolower($target);.$this->constr
63f20 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 aint.=.$constraint;.$this->descr
63f40 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 iption.=.$description;.$this->pr
63f60 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 ettyConstraint.=.$prettyConstrai
63f80 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 53 6f 75 72 63 65 nt;.}..public.function.getSource
63fa0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 ().{.return.$this->source;.}..pu
63fc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 75 blic.function.getTarget().{.retu
63fe0 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rn.$this->target;.}..public.func
64000 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 tion.getConstraint().{.return.$t
64020 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 his->constraint;.}..public.funct
64040 69 6f 6e 20 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 69 66 20 28 ion.getPrettyConstraint().{.if.(
64060 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 null.===.$this->prettyConstraint
64080 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
640a0 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 69 6e 6b 20 25 73 20 68 61 73 20 62 65 65 ception(sprintf('Link.%s.has.bee
640c0 6e 20 6d 69 73 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 20 68 61 64 20 6e 6f 20 70 72 65 74 74 n.misconfigured.and.had.no.prett
640e0 79 43 6f 6e 73 74 72 61 69 6e 74 20 67 69 76 65 6e 2e 27 2c 20 24 74 68 69 73 29 29 3b 0a 7d 0a yConstraint.given.',.$this));.}.
64100 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b .return.$this->prettyConstraint;
64120 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 .}..public.function.__toString()
64140 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 2e 27 20 27 2e 24 74 68 69 .{.return.$this->source.'.'.$thi
64160 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 s->description.'.'.$this->target
64180 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2e 27 29 27 3b 0a 7d 0a 0a .'.('.$this->constraint.')';.}..
641a0 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(
641c0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 29 PackageInterface.$sourcePackage)
641e0 0a 7b 0a 72 65 74 75 72 6e 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 .{.return.$sourcePackage->getPre
64200 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 ttyString().'.'.$this->descripti
64220 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 27 2e 24 74 68 69 73 2d 3e on.'.'.$this->target.'.'.$this->
64240 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 27 constraint->getPrettyString().''
64260 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
64280 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
642a0 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d ;.......class.EmptyConstraint.im
642c0 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
642e0 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 70 75 62 .{.protected.$prettyString;..pub
64300 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 6f 6e 73 74 72 61 lic.function.matches(LinkConstra
64320 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 72 65 74 75 72 6e intInterface.$provider).{.return
64340 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 .true;.}..public.function.setPre
64360 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 ttyString($prettyString).{.$this
64380 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a ->prettyString.=.$prettyString;.
643a0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 }..public.function.getPrettyStri
643c0 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 ng().{.if.($this->prettyString).
643e0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a {.return.$this->prettyString;.}.
64400 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a .return.$this->__toString();.}..
64420 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 72 public.function.__toString().{.r
64440 65 74 75 72 6e 20 27 5b 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eturn.'[]';.}.}.<?php...........
64460 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b .namespace.Composer\Package\Link
64480 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 43 6f Constraint;........class.MultiCo
644a0 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 nstraint.implements.LinkConstrai
644c0 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 6f 6e 73 74 72 61 ntInterface.{.protected.$constra
644e0 69 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 70 ints;.protected.$prettyString;.p
64500 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rotected.$conjunctive;........pu
64520 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.
64540 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 74 72 75 $constraints,.$conjunctive.=.tru
64560 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 63 6f 6e 73 74 e).{.$this->constraints.=.$const
64580 72 61 69 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 24 63 6f raints;.$this->conjunctive.=.$co
645a0 6e 6a 75 6e 63 74 69 76 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 njunctive;.}..public.function.ma
645c0 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 tches(LinkConstraintInterface.$p
645e0 72 6f 76 69 64 65 72 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 rovider).{.if.(false.===.$this->
64600 63 6f 6e 6a 75 6e 63 74 69 76 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 conjunctive).{.foreach.($this->c
64620 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 onstraints.as.$constraint).{.if.
64640 28 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 ($constraint->matches($provider)
64660 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c ).{.return.true;.}.}..return.fal
64680 73 65 3b 0a 7d 0a 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 se;.}..foreach.($this->constrain
646a0 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 63 6f 6e 73 74 ts.as.$constraint).{.if.(!$const
646c0 72 61 69 6e 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 raint->matches($provider)).{.ret
646e0 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;.}..
64700 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 public.function.setPrettyString(
64720 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 $prettyString).{.$this->prettySt
64740 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ring.=.$prettyString;.}..public.
64760 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 function.getPrettyString().{.if.
64780 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 ($this->prettyString).{.return.$
647a0 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 this->prettyString;.}..return.$t
647c0 68 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 his->__toString();.}..public.fun
647e0 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 ction.__toString().{.$constraint
64800 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e s.=.array();.foreach.($this->con
64820 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 straints.as.$constraint).{.$cons
64840 74 72 61 69 6e 74 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 5f 5f 74 6f 53 74 72 traints[].=.$constraint->__toStr
64860 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 24 74 68 ing();.}..return.'['.implode($th
64880 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3f 20 27 20 27 20 3a 20 27 20 7c 7c 20 27 2c 20 is->conjunctive.?.'.'.:.'.||.',.
648a0 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 2e 27 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a $constraints).']';.}.}.<?php....
648c0 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
648e0 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 0a 0a 63 6c 61 73 73 ge\LinkConstraint;.........class
64900 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 53 70 65 63 69 .VersionConstraint.extends.Speci
64920 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f ficConstraint.{.private.$operato
64940 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c r;.private.$version;........publ
64960 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 6f 70 65 72 61 74 6f ic.function.__construct($operato
64980 72 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 27 3d 27 20 3d 3d 3d 20 24 6f 70 65 72 r,.$version).{.if.('='.===.$oper
649a0 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 20 ator).{.$operator.=.'==';.}..if.
649c0 28 27 3c 3e 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 ('<>'.===.$operator).{.$operator
649e0 20 3d 20 27 21 3d 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f .=.'!=';.}..$this->operator.=.$o
64a00 70 65 72 61 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 perator;.$this->version.=.$versi
64a20 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f on;.}..public.function.versionCo
64a40 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 2c 20 24 63 6f 6d 70 61 72 mpare($a,.$b,.$operator,.$compar
64a60 65 42 72 61 6e 63 68 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 61 49 73 42 72 61 6e 63 68 20 eBranches.=.false).{.$aIsBranch.
64a80 3d 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 2c 20 30 2c 20 34 29 3b 0a 24 =.'dev-'.===.substr($a,.0,.4);.$
64aa0 62 49 73 42 72 61 6e 63 68 20 3d 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 bIsBranch.=.'dev-'.===.substr($b
64ac0 2c 20 30 2c 20 34 29 3b 0a 69 66 20 28 24 61 49 73 42 72 61 6e 63 68 20 26 26 20 24 62 49 73 42 ,.0,.4);.if.($aIsBranch.&&.$bIsB
64ae0 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 6f 72 20 3d 3d 20 27 3d 3d ranch).{.return.$operator.==.'==
64b00 27 20 26 26 20 24 61 20 3d 3d 3d 20 24 62 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 63 6f 6d 70 61 '.&&.$a.===.$b;.}....if.(!$compa
64b20 72 65 42 72 61 6e 63 68 65 73 20 26 26 20 28 24 61 49 73 42 72 61 6e 63 68 20 7c 7c 20 24 62 49 reBranches.&&.($aIsBranch.||.$bI
64b40 73 42 72 61 6e 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 sBranch)).{.return.false;.}..ret
64b60 75 72 6e 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 urn.version_compare($a,.$b,.$ope
64b80 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rator);.}.......public.function.
64ba0 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 matchSpecific(VersionConstraint.
64bc0 24 70 72 6f 76 69 64 65 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 3d 20 66 61 $provider,.$compareBranches.=.fa
64be0 6c 73 65 29 0a 7b 0a 73 74 61 74 69 63 20 24 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a lse).{.static.$cache.=.array();.
64c00 69 66 20 28 69 73 73 65 74 28 24 63 61 63 68 65 5b 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 if.(isset($cache[$this->operator
64c20 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 6f 70 65 ][$this->version][$provider->ope
64c40 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 6f 6d 70 rator][$provider->version][$comp
64c60 61 72 65 42 72 61 6e 63 68 65 73 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 61 63 68 65 5b 24 areBranches])).{.return.$cache[$
64c80 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 6e 5d 5b this->operator][$this->version][
64ca0 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 72 2d 3e $provider->operator][$provider->
64cc0 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 3b 0a 7d 0a 0a 72 version][$compareBranches];.}..r
64ce0 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 74 6f 72 5d 5b 24 74 eturn.$cache[$this->operator][$t
64d00 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 6f 70 65 72 61 74 6f his->version][$provider->operato
64d20 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 6f 6d 70 61 72 65 42 r][$provider->version][$compareB
64d40 72 61 6e 63 68 65 73 5d 20 3d 0a 24 74 68 69 73 2d 3e 64 6f 4d 61 74 63 68 53 70 65 63 69 66 69 ranches].=.$this->doMatchSpecifi
64d60 63 28 24 70 72 6f 76 69 64 65 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 3b 0a c($provider,.$compareBranches);.
64d80 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 64 6f 4d 61 74 63 68 }.......private.function.doMatch
64da0 53 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 76 Specific(VersionConstraint.$prov
64dc0 69 64 65 72 2c 20 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 ider,.$compareBranches.=.false).
64de0 7b 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 {.$noEqualOp.=.str_replace('=',.
64e00 27 27 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 24 70 72 6f 76 69 64 65 72 4e '',.$this->operator);.$providerN
64e20 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 oEqualOp.=.str_replace('=',.'',.
64e40 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 0a 24 69 73 45 71 75 61 6c 4f $provider->operator);..$isEqualO
64e60 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 p.=.'=='.===.$this->operator;.$i
64e80 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 sNonEqualOp.=.'!='.===.$this->op
64ea0 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 20 3d 20 27 3d 3d erator;.$isProviderEqualOp.=.'==
64ec0 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 '.===.$provider->operator;.$isPr
64ee0 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d 20 24 70 72 6f oviderNonEqualOp.=.'!='.===.$pro
64f00 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 69 73 4e 6f 6e vider->operator;......if.($isNon
64f20 45 71 75 61 6c 4f 70 20 7c 7c 20 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 EqualOp.||.$isProviderNonEqualOp
64f40 29 20 7b 0a 72 65 74 75 72 6e 20 21 24 69 73 45 71 75 61 6c 4f 70 20 26 26 20 21 24 69 73 50 72 ).{.return.!$isEqualOp.&&.!$isPr
64f60 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 0a 7c 7c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 oviderEqualOp.||.$this->versionC
64f80 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 ompare($provider->version,.$this
64fa0 2d 3e 76 65 72 73 69 6f 6e 2c 20 27 21 3d 27 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 ->version,.'!=',.$compareBranche
64fc0 73 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 s);.}......if.($this->operator.!
64fe0 3d 20 27 3d 3d 27 20 26 26 20 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 =.'=='.&&.$noEqualOp.==.$provide
65000 72 4e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 rNoEqualOp).{.return.true;.}..if
65020 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 70 72 6f 76 69 64 65 .($this->versionCompare($provide
65040 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 24 74 68 69 r->version,.$this->version,.$thi
65060 73 2d 3e 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 29 29 20 s->operator,.$compareBranches)).
65080 7b 0a 0a 20 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d 20 {.....if.($provider->version.==.
650a0 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 $this->version.&&.$provider->ope
650c0 72 61 74 6f 72 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 26 26 20 24 rator.==.$providerNoEqualOp.&&.$
650e0 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 6e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a this->operator.!=.$noEqualOp).{.
65100 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;.}.
65120 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 6f .return.false;.}..public.functio
65140 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f n.__toString().{.return.$this->o
65160 70 65 72 61 74 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a perator.'.'.$this->version;.}.}.
65180 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
651a0 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a ser\Package\LinkConstraint;.....
651c0 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 ..abstract.class.SpecificConstra
651e0 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 int.implements.LinkConstraintInt
65200 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 erface.{.protected.$prettyString
65220 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 ;..public.function.matches(LinkC
65240 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).{.
65260 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 4d 75 6c 74 69 43 6f if.($provider.instanceof.MultiCo
65280 6e 73 74 72 61 69 6e 74 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 2d 3e nstraint).{...return.$provider->
652a0 6d 61 74 63 68 65 73 28 24 74 68 69 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 72 6f 76 69 matches($this);.}.elseif.($provi
652c0 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 74 68 69 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 der.instanceof.$this).{.return.$
652e0 74 68 69 73 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 72 6f 76 69 64 65 72 29 3b 0a this->matchSpecific($provider);.
65300 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 }..return.true;.}..public.functi
65320 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 on.setPrettyString($prettyString
65340 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 ).{.$this->prettyString.=.$prett
65360 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 yString;.}..public.function.getP
65380 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 rettyString().{.if.($this->prett
653a0 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 yString).{.return.$this->prettyS
653c0 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 tring;.}..return.$this->__toStri
653e0 6e 67 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ng();.}.......}.<?php...........
65400 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b .namespace.Composer\Package\Link
65420 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 69 6e 6b Constraint;.......interface.Link
65440 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e ConstraintInterface.{.public.fun
65460 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 74 65 ction.matches(LinkConstraintInte
65480 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rface.$provider);.public.functio
654a0 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 n.setPrettyString($prettyString)
654c0 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e ;.public.function.getPrettyStrin
654e0 67 28 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 g();.public.function.__toString(
65500 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 );.}.<?php............namespace.
65520 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 Composer;..use.Composer\IO\IOInt
65540 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 erface;.use.Composer\Util\Filesy
65560 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 74 5c 46 69 6e 64 stem;.use.Symfony\Component\Find
65580 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 61 63 68 65 0a 7b 0a 70 er\Finder;.......class.Cache.{.p
655a0 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 rivate.static.$cacheCollected.=.
655c0 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f false;.private.$io;.private.$roo
655e0 74 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 t;.private.$enabled.=.true;.priv
65600 61 74 65 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 ate.$whitelist;.private.$filesys
65620 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f tem;........public.function.__co
65640 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 24 63 61 63 68 65 44 nstruct(IOInterface.$io,.$cacheD
65660 69 72 2c 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 27 61 2d 7a 30 2d 39 2e 27 2c 20 46 69 6c 65 ir,.$whitelist.=.'a-z0-9.',.File
65680 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 system.$filesystem.=.null).{.$th
656a0 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 20 3d 20 72 74 72 69 is->io.=.$io;.$this->root.=.rtri
656c0 6d 28 24 63 61 63 68 65 44 69 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 24 74 68 69 73 m($cacheDir,.'/\\')...'/';.$this
656e0 2d 3e 77 68 69 74 65 6c 69 73 74 20 3d 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 24 74 68 69 73 2d ->whitelist.=.$whitelist;.$this-
65700 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 >filesystem.=.$filesystem.?:.new
65720 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 74 68 69 .Filesystem();..if.(!is_dir($thi
65740 73 2d 3e 72 6f 6f 74 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 74 68 69 73 2d 3e 72 s->root)).{.if.(!@mkdir($this->r
65760 6f 6f 74 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c oot,.0777,.true)).{.$this->enabl
65780 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ed.=.false;.}.}.}..public.functi
657a0 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 on.isEnabled().{.return.$this->e
657c0 6e 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f nabled;.}..public.function.getRo
657e0 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 3b 0a 7d 0a 0a 70 75 ot().{.return.$this->root;.}..pu
65800 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c blic.function.read($file).{.$fil
65820 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 2d 3e 77 68 e.=.preg_replace('{[^'.$this->wh
65840 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 69 66 20 28 itelist.']}i',.'-',.$file);.if.(
65860 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 $this->enabled.&&.file_exists($t
65880 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d his->root...$file)).{.if.($this-
658a0 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
658c0 74 65 45 72 72 6f 72 28 27 52 65 61 64 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e teError('Reading.'.$this->root..
658e0 20 24 66 69 6c 65 2e 27 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e .$file.'.from.cache');.}..return
65900 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e .file_get_contents($this->root..
65920 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 75 62 .$file);.}..return.false;.}..pub
65940 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 66 69 6c 65 2c 20 24 63 6f 6e 74 65 lic.function.write($file,.$conte
65960 6e 74 73 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 66 69 nts).{.if.($this->enabled).{.$fi
65980 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 2d 3e 77 le.=.preg_replace('{[^'.$this->w
659a0 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 0a 69 66 hitelist.']}i',.'-',.$file);..if
659c0 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d .($this->io->isDebug()).{.$this-
659e0 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 57 72 69 74 69 6e 67 20 27 2e 24 74 68 69 73 >io->writeError('Writing.'.$this
65a00 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 65 27 29 3b 0a 7d ->root...$file.'.into.cache');.}
65a20 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 ..try.{.return.file_put_contents
65a40 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 74 65 6e 74 73 29 ($this->root...$file,.$contents)
65a60 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b ;.}.catch.(\ErrorException.$e).{
65a80 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 .if.(preg_match('{^file_put_cont
65aa0 65 6e 74 73 5c 28 5c 29 3a 20 4f 6e 6c 79 20 28 5b 30 2d 39 5d 2b 29 20 6f 66 20 28 5b 30 2d 39 ents\(\):.Only.([0-9]+).of.([0-9
65ac0 5d 2b 29 20 62 79 74 65 73 20 77 72 69 74 74 65 6e 7d 27 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 ]+).bytes.written}',.$e->getMess
65ae0 61 67 65 28 29 2c 20 24 6d 29 29 20 7b 0a 0a 20 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f age(),.$m)).{...unlink($this->ro
65b00 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 ot...$file);..$message.=.sprintf
65b20 28 0a 27 3c 77 61 72 6e 69 6e 67 3e 57 72 69 74 69 6e 67 20 25 31 24 73 20 69 6e 74 6f 20 63 61 (.'<warning>Writing.%1$s.into.ca
65b40 63 68 65 20 66 61 69 6c 65 64 20 61 66 74 65 72 20 25 32 24 75 20 6f 66 20 25 33 24 75 20 62 79 che.failed.after.%2$u.of.%3$u.by
65b60 74 65 73 20 77 72 69 74 74 65 6e 2c 20 6f 6e 6c 79 20 25 34 24 75 20 62 79 74 65 73 20 6f 66 20 tes.written,.only.%4$u.bytes.of.
65b80 66 72 65 65 20 73 70 61 63 65 20 61 76 61 69 6c 61 62 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c free.space.available</warning>',
65ba0 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 0a 24 6d 5b 31 5d 2c 0a 24 6d 5b .$this->root...$file,.$m[1],.$m[
65bc0 32 5d 2c 0a 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 2],.@disk_free_space($this->root
65be0 20 2e 20 64 69 72 6e 61 6d 65 28 24 66 69 6c 65 29 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f ...dirname($file)).);..$this->io
65c00 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 ->writeError($message);..return.
65c20 66 61 6c 73 65 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 false;.}..throw.$e;.}.}..return.
65c40 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 63 6f 70 false;.}.....public.function.cop
65c60 79 46 72 6f 6d 28 24 66 69 6c 65 2c 20 24 73 6f 75 72 63 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 yFrom($file,.$source).{.if.($thi
65c80 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
65ca0 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',
65cc0 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d .'-',.$file);.$this->filesystem-
65ce0 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 6e 61 6d 65 28 24 >ensureDirectoryExists(dirname($
65d00 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 this->root...$file));..if.($this
65d20 2d 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 ->io->isDebug()).{.$this->io->wr
65d40 69 74 65 45 72 72 6f 72 28 27 57 72 69 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 iteError('Writing.'.$this->root.
65d60 2e 20 24 66 69 6c 65 2e 27 20 69 6e 74 6f 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 ..$file.'.into.cache');.}..retur
65d80 6e 20 63 6f 70 79 28 24 73 6f 75 72 63 65 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 n.copy($source,.$this->root...$f
65da0 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 0a 0a 0a 70 75 62 ile);.}..return.false;.}.....pub
65dc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 54 6f 28 24 66 69 6c 65 2c 20 24 74 61 72 67 lic.function.copyTo($file,.$targ
65de0 65 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 et).{.$file.=.preg_replace('{[^'
65e00 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 27 2c 20 24 66 .$this->whitelist.']}i',.'-',.$f
65e20 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 ile);.if.($this->enabled.&&.file
65e40 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a _exists($this->root...$file)).{.
65e60 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 0a 69 66 20 touch($this->root...$file);..if.
65e80 28 24 74 68 69 73 2d 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 ($this->io->isDebug()).{.$this->
65ea0 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 52 65 61 64 69 6e 67 20 27 2e 24 74 68 69 73 2d io->writeError('Reading.'.$this-
65ec0 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2e 27 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a >root...$file.'.from.cache');.}.
65ee0 0a 72 65 74 75 72 6e 20 63 6f 70 79 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 .return.copy($this->root...$file
65f00 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ,.$target);.}..return.false;.}..
65f20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 63 49 73 4e 65 63 65 73 73 61 72 79 28 29 0a public.function.gcIsNecessary().
65f40 7b 0a 72 65 74 75 72 6e 20 28 21 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 {.return.(!self::$cacheCollected
65f60 20 26 26 20 21 6d 74 5f 72 61 6e 64 28 30 2c 20 35 30 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 .&&.!mt_rand(0,.50));.}..public.
65f80 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d function.remove($file).{.$file.=
65fa0 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 2d 3e 77 68 69 74 65 .preg_replace('{[^'.$this->white
65fc0 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 69 66 20 28 24 74 68 list.']}i',.'-',.$file);.if.($th
65fe0 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 is->enabled.&&.file_exists($this
66000 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ->root...$file)).{.return.$this-
66020 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 >filesystem->unlink($this->root.
66040 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 75 ..$file);.}..return.false;.}..pu
66060 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 63 28 24 74 74 6c 2c 20 24 6d 61 78 53 69 7a 65 29 blic.function.gc($ttl,.$maxSize)
66080 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 24 65 78 70 69 72 65 .{.if.($this->enabled).{.$expire
660a0 20 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 .=.new.\DateTime();.$expire->mod
660c0 69 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 ify('-'.$ttl.'.seconds');..$find
660e0 65 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 er.=.$this->getFinder()->date('u
66100 6e 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 ntil.'.$expire->format('Y-m-d.H:
66120 69 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 i:s'));.foreach.($finder.as.$fil
66140 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 e).{.$this->filesystem->unlink($
66160 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 24 74 6f 74 61 6c 53 file->getPathname());.}..$totalS
66180 69 7a 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 74 ize.=.$this->filesystem->size($t
661a0 68 69 73 2d 3e 72 6f 6f 74 29 3b 0a 69 66 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 his->root);.if.($totalSize.>.$ma
661c0 78 53 69 7a 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 xSize).{.$iterator.=.$this->getF
661e0 69 6e 64 65 72 28 29 2d 3e 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 2d 3e 67 inder()->sortByAccessedTime()->g
66200 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 77 68 69 6c 65 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 etIterator();.while.($totalSize.
66220 3e 20 24 6d 61 78 53 69 7a 65 20 26 26 20 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 >.$maxSize.&&.$iterator->valid()
66240 29 20 7b 0a 24 66 69 6c 65 70 61 74 68 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 63 75 72 72 65 ).{.$filepath.=.$iterator->curre
66260 6e 74 28 29 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 3b 0a 24 74 6f 74 61 6c 53 69 7a 65 20 nt()->getPathname();.$totalSize.
66280 2d 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 66 69 6c 65 -=.$this->filesystem->size($file
662a0 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b path);.$this->filesystem->unlink
662c0 28 24 66 69 6c 65 70 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 ($filepath);.$iterator->next();.
662e0 7d 0a 7d 0a 0a 73 65 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 }.}..self::$cacheCollected.=.tru
66300 65 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 e;..return.true;.}..return.false
66320 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 31 28 24 66 69 6c 65 29 ;.}..public.function.sha1($file)
66340 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 .{.$file.=.preg_replace('{[^'.$t
66360 68 69 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 his->whitelist.']}i',.'-',.$file
66380 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 );.if.($this->enabled.&&.file_ex
663a0 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 ists($this->root...$file)).{.ret
663c0 75 72 6e 20 73 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c urn.sha1_file($this->root...$fil
663e0 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 75 62 6c 69 63 20 66 e);.}..return.false;.}..public.f
66400 75 6e 63 74 69 6f 6e 20 73 68 61 32 35 36 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 unction.sha256($file).{.$file.=.
66420 70 72 65 67 5f 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 preg_replace('{[^'.$this->whitel
66440 69 73 74 2e 27 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 ist.']}i',.'-',.$file);.if.($thi
66460 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d s->enabled.&&.file_exists($this-
66480 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 68 61 73 68 5f 66 69 >root...$file)).{.return.hash_fi
664a0 6c 65 28 27 73 68 61 32 35 36 27 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 le('sha256',.$this->root...$file
664c0 29 3b 0a 7d 0a 0a 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 );.}..return.false;.}..protected
664e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 46 .function.getFinder().{.return.F
66500 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 69 6e 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 inder::create()->in($this->root)
66520 2d 3e 66 69 6c 65 73 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 ->files();.}.}.<?php............
66540 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 namespace.Composer\DependencyRes
66560 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 olver;..use.Composer\Package\Pac
66580 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 6f 6c kageInterface;.....interface.Pol
665a0 69 63 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 icyInterface.{.public.function.v
665c0 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 ersionCompare(PackageInterface.$
665e0 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f a,.PackageInterface.$b,.$operato
66600 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 r);.public.function.findUpdatePa
66620 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c ckages(Pool.$pool,.array.$instal
66640 6c 65 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 ledMap,.PackageInterface.$packag
66660 65 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 e);.public.function.selectPrefer
66680 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 6e edPackages(Pool.$pool,.array.$in
666a0 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a stalledMap,.array.$literals);.}.
666c0 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
666e0 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 ser\DependencyResolver;.....clas
66700 73 20 52 75 6c 65 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 s.RuleSet.implements.\IteratorAg
66720 67 72 65 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 20 63 6f 6e 73 74 20 54 59 gregate,.\Countable.{...const.TY
66740 50 45 5f 50 41 43 4b 41 47 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4a 4f 42 20 3d PE_PACKAGE.=.0;.const.TYPE_JOB.=
66760 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 20 34 3b 0a 0a 0a 0a 0a .1;.const.TYPE_LEARNED.=.4;.....
66780 0a 0a 70 75 62 6c 69 63 20 24 72 75 6c 65 42 79 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 ..public.$ruleById;..protected.s
667a0 74 61 74 69 63 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 2d 31 20 3d 3e 20 27 55 4e 4b tatic.$types.=.array(.-1.=>.'UNK
667c0 4e 4f 57 4e 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 3e 20 27 50 41 NOWN',.self::TYPE_PACKAGE.=>.'PA
667e0 43 4b 41 47 45 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4a 4f 42 20 3d 3e 20 27 4a 4f 42 27 2c CKAGE',.self::TYPE_JOB.=>.'JOB',
66800 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3e 20 27 4c 45 41 52 4e 45 44 27 .self::TYPE_LEARNED.=>.'LEARNED'
66820 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 ,.);..protected.$rules;.protecte
66840 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 72 75 6c 65 73 d.$nextRuleId;..protected.$rules
66860 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 63 6f 6e 73 74 ByHash;..public.function.__const
66880 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 3d 20 30 3b 0a ruct().{.$this->nextRuleId.=.0;.
668a0 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 20 61 73 20 24 .foreach.($this->getTypes().as.$
668c0 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 20 3d 20 61 72 type).{.$this->rules[$type].=.ar
668e0 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 68 20 3d 20 61 ray();.}..$this->rulesByHash.=.a
66900 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 61 64 64 28 52 rray();.}..public.function.add(R
66920 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 73 65 74 28 73 ule.$rule,.$type).{.if.(!isset(s
66940 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 77 20 6e 65 77 elf::$types[$type])).{.throw.new
66960 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 6e 6f 77 6e 20 .\OutOfBoundsException('Unknown.
66980 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 66 20 28 21 69 rule.type:.'...$type);.}..if.(!i
669a0 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 7b 0a 24 74 68 sset($this->rules[$type])).{.$th
669c0 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 is->rules[$type].=.array();.}..$
669e0 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 65 3b 0a 24 74 this->rules[$type][].=.$rule;.$t
66a00 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 6c 65 49 64 5d his->ruleById[$this->nextRuleId]
66a20 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 79 70 65 29 3b .=.$rule;.$rule->setType($type);
66a40 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 75 6c 65 49 64 ..$rule->setId($this->nextRuleId
66a60 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 61 73 68 20 3d );.$this->nextRuleId++;..$hash.=
66a80 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 65 74 28 24 74 .$rule->getHash();.if.(!isset($t
66aa0 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 0a 24 74 68 69 his->rulesByHash[$hash])).{.$thi
66ac0 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 61 79 28 24 72 s->rulesByHash[$hash].=.array($r
66ae0 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 42 79 48 61 73 ule);.}.else.{.$this->rulesByHas
66b00 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 62 6c 69 63 20 h[$hash][].=.$rule;.}.}..public.
66b20 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 74 68 69 73 2d function.count().{.return.$this-
66b40 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 74 69 6f 6e 20 >nextRuleId;.}..public.function.
66b60 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 73 2d 3e 72 75 ruleById($id).{.return.$this->ru
66b80 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 74 69 6f 6e 20 leById[$id];.}..public.function.
66ba0 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 72 75 6c 65 73 getRules().{.return.$this->rules
66bc0 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 72 61 74 6f 72 ;.}..public.function.getIterator
66be0 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 61 74 6f 72 28 ().{.return.new.RuleSetIterator(
66c00 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 69 63 20 66 75 $this->getRules());.}..public.fu
66c20 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 73 29 0a 7b 0a nction.getIteratorFor($types).{.
66c40 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.
66c60 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 65 73 20 3d 20 =.array($types);.}..$allRules.=.
66c80 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 20 61 72 72 61 $this->getRules();.$rules.=.arra
66ca0 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 79 70 65 29 20 y();..foreach.($types.as.$type).
66cc0 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 5b 24 74 79 70 {.$rules[$type].=.$allRules[$typ
66ce0 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 65 72 61 74 6f e];.}..return.new.RuleSetIterato
66d00 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 6f 6e 20 67 65 r($rules);.}..public.function.ge
66d20 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 69 66 20 28 21 tIteratorWithout($types).{.if.(!
66d40 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 is_array($types)).{.$types.=.arr
66d60 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 69 73 2d 3e 67 ay($types);.}..$rules.=.$this->g
66d80 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 20 61 73 20 24 etRules();..foreach.($types.as.$
66da0 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 29 3b 0a 7d 0a type).{.unset($rules[$type]);.}.
66dc0 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c .return.new.RuleSetIterator($rul
66de0 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 54 79 70 65 73 es);.}..public.function.getTypes
66e00 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 0a 75 6e 73 65 ().{.$types.=.self::$types;.unse
66e20 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 79 5f 6b 65 79 t($types[-1]);..return.array_key
66e40 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 6f 6e 20 63 6f s($types);.}..public.function.co
66e60 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 73 65 74 28 24 ntainsEqual($rule).{.if.(isset($
66e80 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 74 48 61 73 68 this->rulesByHash[$rule->getHash
66ea0 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 73 20 3d 20 24 ()])).{.$potentialDuplicates.=.$
66ec0 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 74 48 61 73 68 this->rulesByHash[$rule->getHash
66ee0 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 6c 69 63 61 74 ()];.foreach.($potentialDuplicat
66f00 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 7b 0a 69 66 20 es.as.$potentialDuplicate).{.if.
66f20 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 70 6c 69 63 61 ($rule->equals($potentialDuplica
66f40 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 72 65 74 75 72 te)).{.return.true;.}.}.}..retur
66f60 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 n.false;.}..public.function.getP
66f80 72 65 74 74 79 53 74 72 69 6e 67 28 50 6f 6f 6c 20 24 70 6f 6f 6c 20 3d 20 6e 75 6c 6c 29 0a 7b rettyString(Pool.$pool.=.null).{
66fa0 0a 24 73 74 72 69 6e 67 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d .$string.=."\n";.foreach.($this-
66fc0 3e 72 75 6c 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 72 75 6c 65 73 29 20 7b 0a 24 73 74 >rules.as.$type.=>.$rules).{.$st
66fe0 72 69 6e 67 20 2e 3d 20 73 74 72 5f 70 61 64 28 73 65 6c 66 3a 3a 24 74 79 70 65 73 5b 24 74 79 ring..=.str_pad(self::$types[$ty
67000 70 65 5d 2c 20 38 2c 20 27 20 27 29 20 2e 20 22 3a 20 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 pe],.8,.'.')...":.";.foreach.($r
67020 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 28 24 70 6f ules.as.$rule).{.$string..=.($po
67040 6f 6c 20 3f 20 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 6f 6f ol.?.$rule->getPrettyString($poo
67060 6c 29 20 3a 20 24 72 75 6c 65 29 2e 22 5c 6e 22 3b 0a 7d 0a 24 73 74 72 69 6e 67 20 2e 3d 20 22 l).:.$rule)."\n";.}.$string..=."
67080 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 0a 0a 70 75 62 \n\n";.}..return.$string;.}..pub
670a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 lic.function.__toString().{.retu
670c0 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 6e 75 6c 6c 29 3b rn.$this->getPrettyString(null);
670e0 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.
67100 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 0a Composer\DependencyResolver;....
67120 0a 63 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 .class.SolverBugException.extend
67140 73 20 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 s.\RuntimeException.{.public.fun
67160 63 74 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 ction.__construct($message).{.pa
67180 72 65 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 rent::__construct(.$message."\nT
671a0 68 69 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 his.exception.was.most.likely.ca
671c0 75 73 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 used.by.a.bug.in.Composer.\n".."
671e0 50 6c 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 Please.report.the.command.you.ra
67200 6e 2c 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 n,.the.exact.error.you.received,
67220 20 61 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 .and.your.composer.json.on.https
67240 3a 2f 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 ://github.com/composer/composer/
67260 69 73 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 issues.-.thank.you!\n");.}.}.<?p
67280 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
672a0 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 \DependencyResolver;..use.Compos
672c0 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
672e0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a .Composer\Package\AliasPackage;.
67300 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 65 use.Composer\Package\BasePackage
67320 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 ;.use.Composer\Package\LinkConst
67340 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 63 6c raint\VersionConstraint;......cl
67360 61 73 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 ass.DefaultPolicy.implements.Pol
67380 69 63 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 icyInterface.{.private.$preferSt
673a0 61 62 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 3b 0a 0a 70 75 able;.private.$preferLowest;..pu
673c0 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
673e0 72 53 74 61 62 6c 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d rStable.=.false,.$preferLowest.=
67400 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 .false).{.$this->preferStable.=.
67420 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 4c 6f 77 65 $preferStable;.$this->preferLowe
67440 73 74 20 3d 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 st.=.$preferLowest;.}..public.fu
67460 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
67480 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,.
674a0 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 $operator).{.if.($this->preferSt
674c0 61 62 6c 65 20 26 26 20 28 24 73 74 61 62 41 20 3d 20 24 61 2d 3e 67 65 74 53 74 61 62 69 6c 69 able.&&.($stabA.=.$a->getStabili
674e0 74 79 28 29 29 20 21 3d 3d 20 28 24 73 74 61 62 42 20 3d 20 24 62 2d 3e 67 65 74 53 74 61 62 69 ty()).!==.($stabB.=.$b->getStabi
67500 6c 69 74 79 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 lity())).{.return.BasePackage::$
67520 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 41 5d 20 3c 20 42 61 73 65 50 61 63 6b 61 67 stabilities[$stabA].<.BasePackag
67540 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 42 5d 3b 0a 7d 0a 0a 24 63 6f 6e e::$stabilities[$stabB];.}..$con
67560 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 28 straint.=.new.VersionConstraint(
67580 24 6f 70 65 72 61 74 6f 72 2c 20 24 62 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 $operator,.$b->getVersion());.$v
675a0 65 72 73 69 6f 6e 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 ersion.=.new.VersionConstraint('
675c0 3d 3d 27 2c 20 24 61 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 ==',.$a->getVersion());..return.
675e0 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 $constraint->matchSpecific($vers
67600 69 6f 6e 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 ion,.true);.}..public.function.f
67620 69 6e 64 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 indUpdatePackages(Pool.$pool,.ar
67640 72 61 79 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 ray.$installedMap,.PackageInterf
67660 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 20 3d 20 66 ace.$package,.$mustMatchName.=.f
67680 61 6c 73 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f alse).{.$packages.=.array();..fo
676a0 72 65 61 63 68 20 28 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b reach.($pool->whatProvides($pack
676c0 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 2c 20 24 6d 75 73 74 4d 61 74 63 68 age->getName(),.null,.$mustMatch
676e0 4e 61 6d 65 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 Name).as.$candidate).{.if.($cand
67700 69 64 61 74 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b idate.!==.$package).{.$packages[
67720 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 ].=.$candidate;.}.}..return.$pac
67740 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 kages;.}..public.function.getPri
67760 6f 72 69 74 79 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 ority(Pool.$pool,.PackageInterfa
67780 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c 2d 3e 67 65 74 ce.$package).{.return.$pool->get
677a0 50 72 69 6f 72 69 74 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 Priority($package->getRepository
677c0 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 ());.}..public.function.selectPr
677e0 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 eferedPackages(Pool.$pool,.array
67800 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c .$installedMap,.array.$literals,
67820 20 24 72 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 .$requiredPackage.=.null).{.$pac
67840 6b 61 67 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 kages.=.$this->groupLiteralsByNa
67860 6d 65 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 6c mePreferInstalled($pool,.$instal
67880 6c 65 64 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 ledMap,.$literals);..foreach.($p
678a0 61 63 6b 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 ackages.as.&$literals).{.$policy
678c0 20 3d 20 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 .=.$this;.usort($literals,.funct
678e0 69 6f 6e 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 ion.($a,.$b).use.($policy,.$pool
67900 2c 20 24 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 ,.$installedMap,.$requiredPackag
67920 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 e).{.return.$policy->compareByPr
67940 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e iorityPreferInstalled($pool,.$in
67960 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b stalledMap,.$pool->literalToPack
67980 61 67 65 28 24 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 age($a),.$pool->literalToPackage
679a0 28 24 62 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 ($b),.$requiredPackage,.true);.}
679c0 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c 69 );.}..foreach.($packages.as.&$li
679e0 74 65 72 61 6c 73 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 terals).{.$literals.=.$this->pru
67a00 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 neToBestVersion($pool,.$literals
67a20 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 48 69 );..$literals.=.$this->pruneToHi
67a40 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 ghestPriorityOrInstalled($pool,.
67a60 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 $installedMap,.$literals);..$lit
67a80 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 erals.=.$this->pruneRemoteAliase
67aa0 73 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 s($pool,.$literals);.}..$selecte
67ac0 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f d.=.call_user_func_array('array_
67ae0 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 0a 20 75 73 6f 72 74 28 24 73 65 merge',.$packages);....usort($se
67b00 6c 65 63 74 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 lected,.function.($a,.$b).use.($
67b20 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 20 24 72 policy,.$pool,.$installedMap,.$r
67b40 65 71 75 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 equiredPackage).{.return.$policy
67b60 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c ->compareByPriorityPreferInstall
67b80 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e ed($pool,.$installedMap,.$pool->
67ba0 6c 69 74 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 literalToPackage($a),.$pool->lit
67bc0 65 72 61 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 eralToPackage($b),.$requiredPack
67be0 61 67 65 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 age);.});..return.$selected;.}..
67c00 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 protected.function.groupLiterals
67c20 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c ByNamePreferInstalled(Pool.$pool
67c40 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 ,.array.$installedMap,.$literals
67c60 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 ).{.$packages.=.array();.foreach
67c80 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b .($literals.as.$literal).{.$pack
67ca0 61 67 65 4e 61 6d 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 ageName.=.$pool->literalToPackag
67cc0 65 28 24 6c 69 74 65 72 61 6c 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 e($literal)->getName();..if.(!is
67ce0 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 29 29 20 7b 0a set($packages[$packageName])).{.
67d00 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 $packages[$packageName].=.array(
67d20 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 );.}..if.(isset($installedMap[ab
67d40 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 s($literal)])).{.array_unshift($
67d60 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 2c 20 24 6c 69 74 65 72 61 6c packages[$packageName],.$literal
67d80 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 );.}.else.{.$packages[$packageNa
67da0 6d 65 5d 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 me][].=.$literal;.}.}..return.$p
67dc0 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 6e 20 63 ackages;.}.....public.function.c
67de0 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(
67e00 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c Pool.$pool,.array.$installedMap,
67e20 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 .PackageInterface.$a,.PackageInt
67e40 65 72 66 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 erface.$b,.$requiredPackage.=.nu
67e60 6c 6c 2c 20 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 ll,.$ignoreReplace.=.false).{.if
67e80 20 28 24 61 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 .($a->getRepository().===.$b->ge
67ea0 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 4e 61 tRepository()).{...if.($a->getNa
67ec0 6d 65 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 61 41 6c 69 61 me().===.$b->getName()).{.$aAlia
67ee0 73 65 64 20 3d 20 24 61 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 sed.=.$a.instanceof.AliasPackage
67f00 3b 0a 24 62 41 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 ;.$bAliased.=.$b.instanceof.Alia
67f20 73 50 61 63 6b 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 61 73 65 64 20 26 26 20 21 24 62 41 6c sPackage;.if.($aAliased.&&.!$bAl
67f40 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 69 66 20 28 21 24 61 41 iased).{.return.-1;...}.if.(!$aA
67f60 6c 69 61 73 65 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b liased.&&.$bAliased).{.return.1;
67f80 20 0a 20 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 29 20 7b 0a 0a ...}.}..if.(!$ignoreReplace).{..
67fa0 20 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 61 2c 20 24 62 29 29 20 7b 0a .if.($this->replaces($a,.$b)).{.
67fc0 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 return.1;...}.if.($this->replace
67fe0 73 28 24 62 2c 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 0a 0a 20 0a s($b,.$a)).{.return.-1;...}.....
68000 20 69 66 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 .if.($requiredPackage.&&.false.!
68020 3d 3d 20 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 ==.($pos.=.strpos($requiredPacka
68040 67 65 2c 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 ge,.'/'))).{.$requiredVendor.=.s
68060 75 62 73 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 ubstr($requiredPackage,.0,.$pos)
68080 3b 0a 0a 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 ;..$aIsSameVendor.=.substr($a->g
680a0 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 65 64 etName(),.0,.$pos).===.$required
680c0 56 65 6e 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 Vendor;.$bIsSameVendor.=.substr(
680e0 24 62 2d 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 $b->getName(),.0,.$pos).===.$req
68100 75 69 72 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 uiredVendor;..if.($bIsSameVendor
68120 20 21 3d 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 .!==.$aIsSameVendor).{.return.$a
68140 49 73 53 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 IsSameVendor.?.-1.:.1;.}.}.}....
68160 69 66 20 28 24 61 2d 3e 69 64 20 3d 3d 3d 20 24 62 2d 3e 69 64 29 20 7b 0a 72 65 74 75 72 6e 20 if.($a->id.===.$b->id).{.return.
68180 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 69 64 20 3c 20 24 62 2d 3e 69 64 29 20 3f 0;.}..return.($a->id.<.$b->id).?
681a0 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 .-1.:.1;.}..if.(isset($installed
681c0 4d 61 70 5b 24 61 2d 3e 69 64 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a 69 66 Map[$a->id])).{.return.-1;.}..if
681e0 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 62 2d 3e 69 64 5d 29 29 20 .(isset($installedMap[$b->id])).
68200 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 67 65 {.return.1;.}..return.($this->ge
68220 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 61 29 20 3e 20 24 74 68 69 73 2d 3e 67 65 tPriority($pool,.$a).>.$this->ge
68240 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 62 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a tPriority($pool,.$b)).?.-1.:.1;.
68260 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 }............protected.function.
68280 72 65 70 6c 61 63 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 replaces(PackageInterface.$sourc
682a0 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 66 e,.PackageInterface.$target).{.f
682c0 6f 72 65 61 63 68 20 28 24 73 6f 75 72 63 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 oreach.($source->getReplaces().a
682e0 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 s.$link).{.if.($link->getTarget(
68300 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 0a 0a 20 29 20 7b 0a ).===.$target->getName()....).{.
68320 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a return.true;.}.}..return.false;.
68340 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 42 65 73 }..protected.function.pruneToBes
68360 74 56 65 72 73 69 6f 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a tVersion(Pool.$pool,.$literals).
68380 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 4c 6f 77 65 73 {.$operator.=.$this->preferLowes
683a0 74 20 3f 20 27 3c 27 20 3a 20 27 3e 27 3b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 t.?.'<'.:.'>';.$bestLiterals.=.a
683c0 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 rray($literals[0]);.$bestPackage
683e0 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 .=.$pool->literalToPackage($lite
68400 72 61 6c 73 5b 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 rals[0]);.foreach.($literals.as.
68420 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 $i.=>.$literal).{.if.(0.===.$i).
68440 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d {.continue;.}..$package.=.$pool-
68460 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
68480 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 70 61 63 6b 61 67 65 .($this->versionCompare($package
684a0 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 24 6f 70 65 72 61 74 6f 72 29 29 20 7b 0a 24 62 ,.$bestPackage,.$operator)).{.$b
684c0 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 62 65 73 74 4c 69 74 65 estPackage.=.$package;.$bestLite
684e0 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 rals.=.array($literal);.}.elseif
68500 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 70 61 63 6b 61 67 65 .($this->versionCompare($package
68520 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 62 65 73 74 4c 69 ,.$bestPackage,.'==')).{.$bestLi
68540 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e terals[].=.$literal;.}.}..return
68560 20 24 62 65 73 74 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 .$bestLiterals;.}.....protected.
68580 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f function.pruneToHighestPriorityO
685a0 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e rInstalled(Pool.$pool,.array.$in
685c0 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 stalledMap,.array.$literals).{.$
685e0 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d selected.=.array();..$priority.=
68600 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c .null;..foreach.($literals.as.$l
68620 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 3e 6c 69 74 65 iteral).{.$package.=.$pool->lite
68640 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 69 73 73 ralToPackage($literal);..if.(iss
68660 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 et($installedMap[$package->id]))
68680 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 6e 74 69 .{.$selected[].=.$literal;.conti
686a0 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 79 29 20 nue;.}..if.(null.===.$priority).
686c0 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 69 74 79 {.$priority.=.$this->getPriority
686e0 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 69 73 2d ($pool,.$package);.}..if.($this-
68700 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 20 21 3d >getPriority($pool,.$package).!=
68720 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 63 74 65 .$priority).{.break;.}..$selecte
68740 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 6c 65 63 d[].=.$literal;.}..return.$selec
68760 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 6f 6e 20 ted;.}.......protected.function.
68780 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 2c 20 61 pruneRemoteAliases(Pool.$pool,.a
687a0 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 69 61 73 rray.$literals).{.$hasLocalAlias
687c0 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 20 61 73 .=.false;..foreach.($literals.as
687e0 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 3e 6c .$literal).{.$package.=.$pool->l
68800 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 iteralToPackage($literal);..if.(
68820 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 $package.instanceof.AliasPackage
68840 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 61 73 .&&.$package->isRootPackageAlias
68860 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 62 72 65 ()).{.$hasLocalAlias.=.true;.bre
68880 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 20 7b 0a ak;.}.}..if.(!$hasLocalAlias).{.
688a0 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 64 20 3d return.$literals;.}..$selected.=
688c0 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 61 73 20 .array();.foreach.($literals.as.
688e0 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 3e 6c 69 $literal).{.$package.=.$pool->li
68900 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 teralToPackage($literal);..if.($
68920 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 package.instanceof.AliasPackage.
68940 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 61 73 28 &&.$package->isRootPackageAlias(
68960 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 7d 0a 7d )).{.$selected[].=.$literal;.}.}
68980 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 0a 0a 0a ..return.$selected;.}.}.<?php...
689a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
689c0 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 65 63 69 ndencyResolver;.......class.Deci
689e0 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 43 6f 75 sions.implements.\Iterator,.\Cou
68a00 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 41 4c 20 ntable.{.const.DECISION_LITERAL.
68a20 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 31 3b 0a =.0;.const.DECISION_REASON.=.1;.
68a40 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 64 65 63 .protected.$pool;.protected.$dec
68a60 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 51 75 65 isionMap;.protected.$decisionQue
68a80 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 6e 20 5f ue.=.array();..public.function._
68aa0 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 6f 6c 20 _construct($pool).{.$this->pool.
68ac0 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 20 61 72 =.$pool;.$this->decisionMap.=.ar
68ae0 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 69 64 65 ray();.}..public.function.decide
68b00 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 68 69 73 ($literal,.$level,.$why).{.$this
68b20 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 6c 29 3b ->addDecision($literal,.$level);
68b40 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 61 79 28 .$this->decisionQueue[].=.array(
68b60 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 69 74 65 .self::DECISION_LITERAL.=>.$lite
68b80 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 20 24 77 ral,.self::DECISION_REASON.=>.$w
68ba0 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 69 73 66 hy,.);.}..public.function.satisf
68bc0 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 73 28 24 y($literal).{.$packageId.=.abs($
68be0 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 3e 20 30 literal);..return.(.$literal.>.0
68c00 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 70 61 .&&.isset($this->decisionMap[$pa
68c20 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[
68c40 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 20 30 20 $packageId].>.0.||.$literal.<.0.
68c60 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 70 61 63 &&.isset($this->decisionMap[$pac
68c80 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 24 kageId]).&&.$this->decisionMap[$
68ca0 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 75 6e 63 packageId].<.0.);.}..public.func
68cc0 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 63 6b 61 tion.conflict($literal).{.$packa
68ce0 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 20 28 0a geId.=.abs($literal);..return.(.
68d00 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 63 6b 61 (isset($this->decisionMap[$packa
68d20 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 24 70 61 geId]).&&.$this->decisionMap[$pa
68d40 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 20 7c 7c ckageId].>.0.&&.$literal.<.0).||
68d60 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 63 6b .(isset($this->decisionMap[$pack
68d80 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 24 70 ageId]).&&.$this->decisionMap[$p
68da0 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 29 0a 29 ackageId].<.0.&&.$literal.>.0).)
68dc0 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 24 6c 69 ;.}..public.function.decided($li
68de0 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 6d 70 74 teralOrPackageId).{.return.!empt
68e00 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 65 72 61 y($this->decisionMap[abs($litera
68e20 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 6e 63 74 lOrPackageId)]);.}..public.funct
68e40 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 67 65 49 ion.undecided($literalOrPackageI
68e60 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 73 69 6f d).{.return.empty($this->decisio
68e80 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 5d 29 3b nMap[abs($literalOrPackageId)]);
68ea0 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 73 74 61 .}..public.function.decidedInsta
68ec0 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 63 6b 61 ll($literalOrPackageId).{.$packa
68ee0 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 64 29 3b geId.=.abs($literalOrPackageId);
68f00 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 6e 4d 61 ..return.isset($this->decisionMa
68f20 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 73 69 6f p[$packageId]).&&.$this->decisio
68f40 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 69 63 20 nMap[$packageId].>.0;.}..public.
68f60 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 61 6c 4f function.decisionLevel($literalO
68f80 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 73 28 24 rPackageId).{.$packageId.=.abs($
68fa0 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 74 28 24 literalOrPackageId);.if.(isset($
68fc0 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 29 20 this->decisionMap[$packageId])).
68fe0 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 61 70 5b {.return.abs($this->decisionMap[
69000 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 0a 70 75 $packageId]);.}..return.0;.}..pu
69020 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 blic.function.decisionRule($lite
69040 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 ralOrPackageId).{.$packageId.=.a
69060 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 66 6f 72 65 61 63 bs($literalOrPackageId);..foreac
69080 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e h.($this->decisionQueue.as.$i.=>
690a0 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d .$decision).{.if.($packageId.===
690c0 20 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 .abs($decision[self::DECISION_LI
690e0 54 45 52 41 4c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 TERAL])).{.return.$decision[self
69100 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ::DECISION_REASON];.}.}..return.
69120 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 74 4f 66 66 73 65 null;.}..public.function.atOffse
69140 74 28 24 71 75 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e t($queueOffset).{.return.$this->
69160 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 24 71 75 65 75 65 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a decisionQueue[$queueOffset];.}..
69180 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 4f 66 66 73 65 74 28 24 71 75 65 public.function.validOffset($que
691a0 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 ueOffset).{.return.$queueOffset.
691c0 3e 3d 20 30 20 26 26 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3c 20 63 6f 75 6e 74 28 24 74 68 >=.0.&&.$queueOffset.<.count($th
691e0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 is->decisionQueue);.}..public.fu
69200 6e 63 74 69 6f 6e 20 6c 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.lastReason().{.return.$th
69220 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 is->decisionQueue[count($this->d
69240 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f ecisionQueue).-.1][self::DECISIO
69260 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 61 N_REASON];.}..public.function.la
69280 73 74 4c 69 74 65 72 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 stLiteral().{.return.$this->deci
692a0 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 sionQueue[count($this->decisionQ
692c0 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 ueue).-.1][self::DECISION_LITERA
692e0 4c 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b L];.}..public.function.reset().{
69300 0a 77 68 69 6c 65 20 28 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 .while.($decision.=.array_pop($t
69320 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 his->decisionQueue)).{.$this->de
69340 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 cisionMap[abs($decision[self::DE
69360 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c CISION_LITERAL])].=.0;.}.}..publ
69380 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 6f 66 66 73 65 ic.function.resetToOffset($offse
693a0 74 29 0a 7b 0a 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f t).{.while.(count($this->decisio
693c0 6e 51 75 65 75 65 29 20 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 29 20 7b 0a 24 64 65 63 69 73 69 nQueue).>.$offset.+.1).{.$decisi
693e0 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 on.=.array_pop($this->decisionQu
69400 65 75 65 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 64 65 eue);.$this->decisionMap[abs($de
69420 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d cision[self::DECISION_LITERAL])]
69440 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 72 .=.0;.}.}..public.function.rever
69460 74 4c 61 73 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 tLast().{.$this->decisionMap[abs
69480 28 24 74 68 69 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 29 5d 20 3d 20 30 3b 0a 61 72 72 ($this->lastLiteral())].=.0;.arr
694a0 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a ay_pop($this->decisionQueue);.}.
694c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 .public.function.count().{.retur
694e0 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d n.count($this->decisionQueue);.}
69500 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 65 6e 64 ..public.function.rewind().{.end
69520 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 ($this->decisionQueue);.}..publi
69540 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 75 c.function.current().{.return.cu
69560 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a rrent($this->decisionQueue);.}..
69580 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6b public.function.key().{.return.k
695a0 65 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 ey($this->decisionQueue);.}..pub
695c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 lic.function.next().{.return.pre
695e0 76 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c v($this->decisionQueue);.}..publ
69600 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c ic.function.valid().{.return.fal
69620 73 65 20 21 3d 3d 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 se.!==.current($this->decisionQu
69640 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6d 70 74 79 eue);.}..public.function.isEmpty
69660 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f ().{.return.count($this->decisio
69680 6e 51 75 65 75 65 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 nQueue).===.0;.}..protected.func
696a0 74 69 6f 6e 20 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 tion.addDecision($literal,.$leve
696c0 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b l).{.$packageId.=.abs($literal);
696e0 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 74 68 69 ..$previousDecision.=.isset($thi
69700 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 20 24 74 s->decisionMap[$packageId]).?.$t
69720 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 3a 20 6e his->decisionMap[$packageId].:.n
69740 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 20 30 29 ull;.if.($previousDecision.!=.0)
69760 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 6f 6c 2d .{.$literalString.=.$this->pool-
69780 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 70 61 63 >literalToString($literal);.$pac
697a0 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 63 kage.=.$this->pool->literalToPac
697c0 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 76 65 72 kage($literal);.throw.new.Solver
697e0 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 64 65 20 BugException(."Trying.to.decide.
69800 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 6c 2c 20 $literalString.on.level.$level,.
69820 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 69 6f 75 even.though.$package.was.previou
69840 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 6f 75 73 sly.decided.as.".(int).$previous
69860 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 61 6c 20 Decision.".".);.}..if.($literal.
69880 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 63 6b 61 >.0).{.$this->decisionMap[$packa
698a0 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 73 2d 3e geId].=.$level;.}.else.{.$this->
698c0 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 65 76 65 decisionMap[$packageId].=.-$leve
698e0 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 65 73 70 l;.}.}.}.<?php............namesp
69900 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b ace.Composer\DependencyResolver;
69920 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 7b 0a 70 .........class.RuleWatchNode.{.p
69940 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 3b 0a 0a ublic.$watch1;.public.$watch2;..
69960 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 20 66 75 protected.$rule;.......public.fu
69980 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 74 68 69 nction.__construct($rule).{.$thi
699a0 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 20 24 72 s->rule.=.$rule;..$literals.=.$r
699c0 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 ule->literals;..$this->watch1.=.
699e0 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 30 20 3f 20 24 6c 69 74 65 72 61 6c 73 count($literals).>.0.?.$literals
69a00 5b 30 5d 20 3a 20 30 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 63 6f 75 6e 74 28 24 [0].:.0;.$this->watch2.=.count($
69a20 6c 69 74 65 72 61 6c 73 29 20 3e 20 31 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 31 5d 20 3a 20 30 literals).>.1.?.$literals[1].:.0
69a40 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 77 61 74 ;.}..........public.function.wat
69a60 63 68 32 4f 6e 48 69 67 68 65 73 74 28 44 65 63 69 73 69 6f 6e 73 20 24 64 65 63 69 73 69 6f 6e ch2OnHighest(Decisions.$decision
69a80 73 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 6c 69 s).{.$literals.=.$this->rule->li
69aa0 74 65 72 61 6c 73 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 terals;....if.(count($literals).
69ac0 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 76 65 6c 20 3d 20 <.3).{.return;.}..$watchLevel.=.
69ae0 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 24 6c 69 74 65 72 0;..foreach.($literals.as.$liter
69b00 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 3e 64 65 63 69 73 al).{.$level.=.$decisions->decis
69b20 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 6c 65 76 65 6c 20 ionLevel($literal);..if.($level.
69b40 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 74 63 68 32 20 3d >.$watchLevel).{.$this->watch2.=
69b60 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 6c 65 76 65 6c 3b .$literal;.$watchLevel.=.$level;
69b80 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 6f 6e 20 67 65 74 .}.}.}.......public.function.get
69ba0 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 65 3b 0a 7d 0a 0a Rule().{.return.$this->rule;.}..
69bc0 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 74 68 65 72 57 61 ......public.function.getOtherWa
69be0 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 3e 77 61 74 63 68 tch($literal).{.if.($this->watch
69c00 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 68 69 73 2d 3e 77 1.==.$literal).{.return.$this->w
69c20 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 69 73 2d 3e 77 61 atch2;.}.else.{.return.$this->wa
69c40 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 6e 63 74 69 6f 6e tch1;.}.}........public.function
69c60 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 66 20 28 24 74 68 .moveWatch($from,.$to).{.if.($th
69c80 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 69 73 2d 3e 77 61 is->watch1.==.$from).{.$this->wa
69ca0 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 2d 3e 77 61 74 63 tch1.=.$to;.}.else.{.$this->watc
69cc0 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 0a 0a 0a 0a 0a 0a h2.=.$to;.}.}.}.<?php...........
69ce0 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
69d00 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 6f 62 6c 65 6d 73 solver;.....class.SolverProblems
69d20 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 Exception.extends.\RuntimeExcept
69d40 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 0a 70 72 6f 74 65 ion.{.protected.$problems;.prote
69d60 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 cted.$installedMap;..public.func
69d80 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 6f 62 6c 65 6d 73 tion.__construct(array.$problems
69da0 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 74 68 69 73 2d 3e ,.array.$installedMap).{.$this->
69dc0 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 73 2d 3e 69 6e 73 problems.=.$problems;.$this->ins
69de0 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 0a 0a 70 61 72 65 talledMap.=.$installedMap;..pare
69e00 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 61 74 65 4d 65 73 nt::__construct($this->createMes
69e20 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 75 6e 63 74 69 6f sage(),.2);.}..protected.functio
69e40 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 3d 20 22 5c 6e 22 n.createMessage().{.$text.=."\n"
69e60 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 20 61 73 20 24 69 ;.foreach.($this->problems.as.$i
69e80 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 20 20 50 72 6f 62 .=>.$problem).{.$text..=."..Prob
69ea0 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 50 72 65 74 74 79 lem.".($i+1).$problem->getPretty
69ec0 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 29 2e 22 5c 6e 22 String($this->installedMap)."\n"
69ee0 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 75 6c 64 20 6e 6f ;.}..if.(strpos($text,.'could.no
69f00 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 78 74 2c 20 27 6e t.be.found').||.strpos($text,.'n
69f20 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 29 20 7b 0a 24 74 o.matching.package.found')).{.$t
69f40 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 3a 5c 6e 20 2d 20 ext..=."\nPotential.causes:\n.-.
69f60 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 5c 6e 20 2d 20 54 A.typo.in.the.package.name\n.-.T
69f80 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 65 20 69 6e 20 61 he.package.is.not.available.in.a
69fa0 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 6f 72 64 69 6e 67 .stable-enough.version.according
69fc0 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 20 73 65 74 74 69 .to.your.minimum-stability.setti
69fe0 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 2e 67 6f 6f 67 6c ng\n...see.<https://groups.googl
6a000 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 2f 5f 67 33 41 53 e.com/d/topic/composer-dev/_g3AS
6a020 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 65 20 64 65 74 61 eIFlrc/discussion>.for.more.deta
6a040 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 6d 70 6f 73 65 72 ils.\n\nRead.<http://getcomposer
6a060 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 68 6f 6f 74 69 6e .org/doc/articles/troubleshootin
6a080 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 72 6f 62 6c 65 6d g.md>.for.further.common.problem
6a0a0 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 75 62 6c 69 63 20 s.";.}..return.$text;.}..public.
6a0c0 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 65 74 75 72 6e 20 function.getProblems().{.return.
6a0e0 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 0a 0a 0a 0a 0a 0a $this->problems;.}.}.<?php......
6a100 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
6a120 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ncyResolver;..use.Composer\Packa
6a140 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 54 72 61 6e 73 ge\AliasPackage;.....class.Trans
6a160 61 63 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 action.{.protected.$policy;.prot
6a180 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 ected.$pool;.protected.$installe
6a1a0 64 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 dMap;.protected.$decisions;.prot
6a1c0 65 63 74 65 64 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ected.$transaction;..public.func
6a1e0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c tion.__construct($policy,.$pool,
6a200 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 74 .$installedMap,.$decisions).{.$t
6a220 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f his->policy.=.$policy;.$this->po
6a240 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 ol.=.$pool;.$this->installedMap.
6a260 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e =.$installedMap;.$this->decision
6a280 73 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 s.=.$decisions;.$this->transacti
6a2a0 6f 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e on.=.array();.}..public.function
6a2c0 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 .getOperations().{.$installMeans
6a2e0 55 70 64 61 74 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 55 70 64 61 74 65 73 28 29 UpdateMap.=.$this->findUpdates()
6a300 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 73 74 61 6c ;..$updateMap.=.array();.$instal
6a320 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 lMap.=.array();.$uninstallMap.=.
6a340 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 array();..foreach.($this->decisi
6a360 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 ons.as.$i.=>.$decision).{.$liter
6a380 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 al.=.$decision[Decisions::DECISI
6a3a0 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 73 69 6f 6e ON_LITERAL];.$reason.=.$decision
6a3c0 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 [Decisions::DECISION_REASON];..$
6a3e0 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
6a400 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 0a 20 69 66 20 28 28 24 6c 69 74 65 Package($literal);....if.(($lite
6a420 72 61 6c 20 3e 20 30 29 20 3d 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c ral.>.0).==.(isset($this->instal
6a440 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 6e ledMap[$package->id]))).{.contin
6a460 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 69 66 20 28 69 ue;.}..if.($literal.>.0).{.if.(i
6a480 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 sset($installMeansUpdateMap[abs(
6a4a0 24 6c 69 74 65 72 61 6c 29 5d 29 20 26 26 20 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 $literal)]).&&.!$package.instanc
6a4c0 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 73 6f 75 72 63 65 20 3d 20 24 69 eof.AliasPackage).{.$source.=.$i
6a4e0 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 nstallMeansUpdateMap[abs($litera
6a500 6c 29 5d 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d l)];..$updateMap[$package->id].=
6a520 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 .array(.'package'.=>.$package,.'
6a540 73 6f 75 72 63 65 27 20 3d 3e 20 24 73 6f 75 72 63 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 source'.=>.$source,.'reason'.=>.
6a560 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 0a 20 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 $reason,.);....unset($installMea
6a580 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 29 3b 0a 24 69 67 nsUpdateMap[abs($literal)]);.$ig
6a5a0 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 73 6f 75 72 63 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a noreRemove[$source->id].=.true;.
6a5c0 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 69 }.else.{.$installMap[$package->i
6a5e0 64 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 d].=.array(.'package'.=>.$packag
6a600 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 7d e,.'reason'.=>.$reason,.);.}.}.}
6a620 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 ..foreach.($this->decisions.as.$
6a640 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 i.=>.$decision).{.$literal.=.$de
6a660 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 cision[Decisions::DECISION_LITER
6a680 41 4c 5d 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f AL];.$reason.=.$decision[Decisio
6a6a0 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 24 70 61 63 6b 61 67 65 20 3d ns::DECISION_REASON];.$package.=
6a6c0 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($
6a6e0 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 0a literal);..if.($literal.<=.0.&&.
6a700 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 isset($this->installedMap[$packa
6a720 67 65 2d 3e 69 64 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 ge->id]).&&.!isset($ignoreRemove
6a740 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 [$package->id])).{.$uninstallMap
6a760 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 [$package->id].=.array(.'package
6a780 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 72 65 61 73 '.=>.$package,.'reason'.=>.$reas
6a7a0 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 on,.);.}.}..$this->transactionFr
6a7c0 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 4d 61 70 2c 20 omMaps($installMap,.$updateMap,.
6a7e0 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 69 73 2d 3e 74 $uninstallMap);..return.$this->t
6a800 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 6e 63 74 69 6f ransaction;.}..protected.functio
6a820 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 61 6c 6c 4d 61 n.transactionFromMaps($installMa
6a840 70 2c 20 24 75 70 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 0a 7b 0a p,.$updateMap,.$uninstallMap).{.
6a860 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 20 28 24 6f 70 $queue.=.array_map(function.($op
6a880 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 6e 5b 27 70 61 eration).{.return.$operation['pa
6a8a0 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 50 61 63 6b 61 ckage'];.},.$this->findRootPacka
6a8c0 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 29 0a 29 3b 0a ges($installMap,.$updateMap).);.
6a8e0 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 20 28 21 65 6d .$visited.=.array();..while.(!em
6a900 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 72 72 61 79 5f pty($queue)).{.$package.=.array_
6a920 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 70 61 63 6b 61 pop($queue);.$packageId.=.$packa
6a940 67 65 2d 3e 69 64 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 76 69 73 69 74 65 64 5b 24 70 61 ge->id;..if.(!isset($visited[$pa
6a960 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 ckageId])).{.array_push($queue,.
6a980 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 $package);..if.($package.instanc
6a9a0 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 eof.AliasPackage).{.array_push($
6a9c0 71 75 65 75 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a queue,.$package->getAliasOf());.
6a9e0 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 }.else.{.foreach.($package->getR
6aa00 65 71 75 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 equires().as.$link).{.$possibleR
6aa20 65 71 75 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 equires.=.$this->pool->whatProvi
6aa40 64 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 des($link->getTarget(),.$link->g
6aa60 65 74 43 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 etConstraint());..foreach.($poss
6aa80 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 61 72 72 61 ibleRequires.as.$require).{.arra
6aaa0 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 7d 0a y_push($queue,.$require);.}.}.}.
6aac0 0a 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a .$visited[$package->id].=.true;.
6aae0 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 }.else.{.if.(isset($installMap[$
6ab00 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 0a 24 packageId])).{.$this->install(.$
6ab20 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 installMap[$packageId]['package'
6ab40 5d 2c 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 ],.$installMap[$packageId]['reas
6ab60 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 on'].);.unset($installMap[$packa
6ab80 67 65 49 64 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 geId]);.}.if.(isset($updateMap[$
6aba0 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 28 0a 24 75 packageId])).{.$this->update(.$u
6abc0 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 73 6f 75 72 63 65 27 5d 2c 0a pdateMap[$packageId]['source'],.
6abe0 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 $updateMap[$packageId]['package'
6ac00 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f ],.$updateMap[$packageId]['reaso
6ac20 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 n'].);.unset($updateMap[$package
6ac40 49 64 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 6e 73 74 61 6c 6c Id]);.}.}.}..foreach.($uninstall
6ac60 4d 61 70 20 61 73 20 24 75 6e 69 6e 73 74 61 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e Map.as.$uninstall).{.$this->unin
6ac80 73 74 61 6c 6c 28 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 75 6e stall($uninstall['package'],.$un
6aca0 69 6e 73 74 61 6c 6c 5b 27 72 65 61 73 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 install['reason']);.}.}..protect
6acc0 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e ed.function.findRootPackages($in
6ace0 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 stallMap,.$updateMap).{.$package
6ad00 73 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 61 70 20 2b 20 24 75 70 64 61 74 65 4d 61 70 3b 0a 24 72 s.=.$installMap.+.$updateMap;.$r
6ad20 6f 6f 74 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 oots.=.$packages;..foreach.($pac
6ad40 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f kages.as.$packageId.=>.$operatio
6ad60 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b n).{.$package.=.$operation['pack
6ad80 61 67 65 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 6f 6f 74 73 5b 24 70 61 63 6b 61 age'];..if.(!isset($roots[$packa
6ada0 67 65 49 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 geId])).{.continue;.}..foreach.(
6adc0 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 6e 6b $package->getRequires().as.$link
6ade0 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 3e 70 ).{.$possibleRequires.=.$this->p
6ae00 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 72 67 ool->whatProvides($link->getTarg
6ae20 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a et(),.$link->getConstraint());..
6ae40 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 foreach.($possibleRequires.as.$r
6ae60 65 71 75 69 72 65 29 20 7b 0a 75 6e 73 65 74 28 24 72 6f 6f 74 73 5b 24 72 65 71 75 69 72 65 2d equire).{.unset($roots[$require-
6ae80 3e 69 64 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 6f 74 73 3b 0a 7d 0a 0a >id]);.}.}.}..return.$roots;.}..
6aea0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 73 28 29 protected.function.findUpdates()
6aec0 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 61 72 72 61 .{.$installMeansUpdateMap.=.arra
6aee0 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 y();..foreach.($this->decisions.
6af00 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d as.$i.=>.$decision).{.$literal.=
6af20 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c .$decision[Decisions::DECISION_L
6af40 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 6c 2d ITERAL];.$package.=.$this->pool-
6af60 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
6af80 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
6afa0 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 72 61 ge).{.continue;.}....if.($litera
6afc0 6c 20 3c 3d 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 l.<=.0.&&.isset($this->installed
6afe0 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 75 70 64 61 74 65 73 20 3d Map[$package->id])).{.$updates.=
6b000 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 .$this->policy->findUpdatePackag
6b020 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 es($this->pool,.$this->installed
6b040 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 Map,.$package);..$literals.=.arr
6b060 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 69 64 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 70 64 ay($package->id);..foreach.($upd
6b080 61 74 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 ates.as.$update).{.$literals[].=
6b0a0 20 24 75 70 64 61 74 65 2d 3e 69 64 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 .$update->id;.}..foreach.($liter
6b0c0 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 24 75 70 als.as.$updateLiteral).{.if.($up
6b0e0 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 69 6e 73 dateLiteral.!==.$literal).{.$ins
6b100 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 65 4c 69 tallMeansUpdateMap[abs($updateLi
6b120 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 72 65 74 teral)].=.$package;.}.}.}.}..ret
6b140 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 0a 0a 70 urn.$installMeansUpdateMap;.}..p
6b160 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 63 6b 61 rotected.function.install($packa
6b180 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 74 ge,.$reason).{.if.($package.inst
6b1a0 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 74 anceof.AliasPackage).{.return.$t
6b1c0 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 61 67 65 his->markAliasInstalled($package
6b1e0 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 74 69 6f ,.$reason);.}..$this->transactio
6b200 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 65 72 61 n[].=.new.Operation\InstallOpera
6b220 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 72 6f 74 tion($package,.$reason);.}..prot
6b240 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 24 74 6f ected.function.update($from,.$to
6b260 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b ,.$reason).{.$this->transaction[
6b280 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 74 69 6f ].=.new.Operation\UpdateOperatio
6b2a0 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 6f 74 65 n($from,.$to,.$reason);.}..prote
6b2c0 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 61 67 65 cted.function.uninstall($package
6b2e0 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 74 61 6e ,.$reason).{.if.($package.instan
6b300 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 74 68 69 ceof.AliasPackage).{.return.$thi
6b320 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 61 67 65 s->markAliasUninstalled($package
6b340 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 74 69 6f ,.$reason);.}..$this->transactio
6b360 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 4f 70 65 n[].=.new.Operation\UninstallOpe
6b380 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 72 ration($package,.$reason);.}..pr
6b3a0 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 74 61 6c otected.function.markAliasInstal
6b3c0 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 73 2d 3e led($package,.$reason).{.$this->
6b3e0 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 transaction[].=.new.Operation\Ma
6b400 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 63 6b 61 rkAliasInstalledOperation($packa
6b420 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ge,.$reason);.}..protected.funct
6b440 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 6b 61 67 ion.markAliasUninstalled($packag
6b460 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e e,.$reason).{.$this->transaction
6b480 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 6e 69 6e [].=.new.Operation\MarkAliasUnin
6b4a0 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 65 61 73 stalledOperation($package,.$reas
6b4c0 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 65 73 70 on);.}.}.<?php............namesp
6b4e0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c ace.Composer\DependencyResolver\
6b500 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 61 67 65 Operation;..use.Composer\Package
6b520 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 \PackageInterface;.......class.U
6b540 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 76 65 72 ninstallOperation.extends.Solver
6b560 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 3b 0a Operation.{.protected.$package;.
6b580 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
6b5a0 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 24 72 ct(PackageInterface.$package,.$r
6b5c0 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 eason.=.null).{.parent::__constr
6b5e0 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 uct($reason);..$this->package.=.
6b600 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $package;.}.......public.functio
6b620 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 n.getPackage().{.return.$this->p
6b640 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ackage;.}.......public.function.
6b660 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 61 6c 6c getJobType().{.return.'uninstall
6b680 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
6b6a0 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 27 2e 24 ing().{.return.'Uninstalling.'.$
6b6c0 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 29 2e 27 this->package->getPrettyName().'
6b6e0 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e .('.$this->formatVersion($this->
6b700 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 0a 0a 0a package).')';.}.}.<?php.........
6b720 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 63 79 ...namespace.Composer\Dependency
6b740 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 6f 73 65 Resolver\Operation;..use.Compose
6b760 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;.....
6b780 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 64 73 20 ..class.UpdateOperation.extends.
6b7a0 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 69 6e 69 SolverOperation.{.protected.$ini
6b7c0 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 74 50 61 tialPackage;.protected.$targetPa
6b7e0 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 6e 20 5f ckage;.........public.function._
6b800 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 69 6e 69 _construct(PackageInterface.$ini
6b820 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 tial,.PackageInterface.$target,.
6b840 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
6b860 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 61 6c 50 truct($reason);..$this->initialP
6b880 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 67 65 74 ackage.=.$initial;.$this->target
6b8a0 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 62 6c 69 Package.=.$target;.}.......publi
6b8c0 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 29 0a 7b c.function.getInitialPackage().{
6b8e0 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 3b 0a 7d .return.$this->initialPackage;.}
6b900 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 67 65 74 .......public.function.getTarget
6b920 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 67 65 74 Package().{.return.$this->target
6b940 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 69 6f 6e Package;.}.......public.function
6b960 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 65 27 3b .getJobType().{.return.'update';
6b980 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
6b9a0 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 73 2d 3e g().{.return.'Updating.'.$this->
6b9c0 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 28 29 2e initialPackage->getPrettyName().
6b9e0 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 73 2d '.('.$this->formatVersion($this-
6ba00 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 69 73 2d >initialPackage).').to.'..$this-
6ba20 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 28 29 2e >targetPackage->getPrettyName().
6ba40 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 68 69 73 .'.('.$this->formatVersion($this
6ba60 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 68 70 0a ->targetPackage).')';.}.}.<?php.
6ba80 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
6baa0 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 65 pendencyResolver\Operation;..use
6bac0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a .Composer\Package\AliasPackage;.
6bae0 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 64 4f 70 ......class.MarkAliasInstalledOp
6bb00 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a eration.extends.SolverOperation.
6bb20 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 {.protected.$package;........pub
6bb40 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 73 50 61 lic.function.__construct(AliasPa
6bb60 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 6c 29 0a ckage.$package,.$reason.=.null).
6bb80 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 29 3b 0a {.parent::__construct($reason);.
6bba0 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 0a 0a 0a .$this->package.=.$package;.}...
6bbc0 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 28 29 ....public.function.getPackage()
6bbe0 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 0a 0a .{.return.$this->package;.}.....
6bc00 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 29 0a 7b ..public.function.getJobType().{
6bc20 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 0a 7d 0a .return.'markAliasInstalled';.}.
6bc40 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()
6bc60 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 61 63 6b .{.return.'Marking.'.$this->pack
6bc80 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d age->getPrettyName().'.('.$this-
6bca0 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 >formatVersion($this->package).'
6bcc0 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 68 69 73 ).as.installed,.alias.of.'.$this
6bce0 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 72 65 74 ->package->getAliasOf()->getPret
6bd00 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 tyName().'.('.$this->formatVersi
6bd20 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 28 29 29 on($this->package->getAliasOf())
6bd40 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
6bd60 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 pace.Composer\DependencyResolver
6bd80 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 61 67 \Operation;..use.Composer\Packag
6bda0 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 e\PackageInterface;.......class.
6bdc0 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 65 72 4f InstallOperation.extends.SolverO
6bde0 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 3b 0a 0a peration.{.protected.$package;..
6be00 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
6be20 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 24 72 65 t(PackageInterface.$package,.$re
6be40 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 ason.=.null).{.parent::__constru
6be60 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 ct($reason);..$this->package.=.$
6be80 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 6e package;.}.......public.function
6bea0 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 .getPackage().{.return.$this->pa
6bec0 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ckage;.}.......public.function.g
6bee0 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 27 3b 0a etJobType().{.return.'install';.
6bf00 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 67 }.....public.function.__toString
6bf20 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 69 73 2d ().{.return.'Installing.'.$this-
6bf40 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().'.('.$
6bf60 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
6bf80 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 0a 6e 61 ge).')';.}.}.<?php............na
6bfa0 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
6bfc0 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
6bfe0 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 20 kage\Version\VersionParser;.use.
6c000 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
6c020 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 72 4f 70 e;.......abstract.class.SolverOp
6c040 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 6e 74 65 eration.implements.OperationInte
6c060 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 0a 0a 0a rface.{.protected.$reason;......
6c080 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 .public.function.__construct($re
6c0a0 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 3d 20 24 ason.=.null).{.$this->reason.=.$
6c0c0 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 6f 6e 20 reason;.}.......public.function.
6c0e0 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 65 61 73 getReason().{.return.$this->reas
6c100 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 6d 61 74 on;.}..protected.function.format
6c120 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 Version(PackageInterface.$packag
6c140 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 72 6d 61 e).{.return.VersionParser::forma
6c160 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 0a 0a 0a tVersion($package);.}.}.<?php...
6c180 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
6c1a0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 ndencyResolver\Operation;..use.C
6c1c0 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 0a 0a omposer\Package\AliasPackage;...
6c1e0 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 64 4f 70 ....class.MarkAliasUninstalledOp
6c200 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a eration.extends.SolverOperation.
6c220 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 {.protected.$package;........pub
6c240 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 73 50 61 lic.function.__construct(AliasPa
6c260 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 6c 29 0a ckage.$package,.$reason.=.null).
6c280 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 29 3b 0a {.parent::__construct($reason);.
6c2a0 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 0a 0a 0a .$this->package.=.$package;.}...
6c2c0 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 28 29 ....public.function.getPackage()
6c2e0 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 0a 0a .{.return.$this->package;.}.....
6c300 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 29 0a 7b ..public.function.getJobType().{
6c320 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 27 3b 0a .return.'markAliasUninstalled';.
6c340 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 67 }.....public.function.__toString
6c360 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 61 ().{.return.'Marking.'.$this->pa
6c380 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 69 ckage->getPrettyName().'.('.$thi
6c3a0 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 29 s->formatVersion($this->package)
6c3c0 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 27 2e 24 .').as.uninstalled,.alias.of.'.$
6c3e0 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 67 65 74 this->package->getAliasOf()->get
6c400 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 PrettyName().'.('.$this->formatV
6c420 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 61 73 4f ersion($this->package->getAliasO
6c440 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 0a 0a 6e f()).')';.}.}.<?php............n
6c460 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
6c480 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 63 65 20 lver\Operation;.......interface.
6c4a0 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 6c 69 63 OperationInterface.{......public
6c4c0 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 0a 70 75 .function.getJobType();.......pu
6c4e0 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 0a 0a 0a blic.function.getReason();......
6c500 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 3b 0a 7d .public.function.__toString();.}
6c520 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
6c540 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 43 6f oser\DependencyResolver;..use.Co
6c560 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 mposer\Package\BasePackage;.use.
6c580 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
6c5a0 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
6c5c0 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 67 65 5c ionParser;.use.Composer\Package\
6c5e0 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 6e 74 LinkConstraint\LinkConstraintInt
6c600 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 4c 69 6e erface;.use.Composer\Package\Lin
6c620 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 75 kConstraint\VersionConstraint;.u
6c640 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 69 se.Composer\Package\LinkConstrai
6c660 6e 74 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 nt\EmptyConstraint;.use.Composer
6c680 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 61 63 65 3b \Repository\RepositoryInterface;
6c6a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 .use.Composer\Repository\Composi
6c6c0 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 teRepository;.use.Composer\Repos
6c6e0 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f itory\ComposerRepository;.use.Co
6c700 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 mposer\Repository\InstalledRepos
6c720 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 52 65 70 itoryInterface;.use.Composer\Rep
6c740 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.
6c760 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
6c780 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6f 6f 6c 0a 7b 0a 63 6f 6e 73 74 20 4d 41 54 e;........class.Pool.{.const.MAT
6c7a0 43 48 5f 4e 41 4d 45 20 3d 20 2d 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 4f 4e 45 20 3d CH_NAME.=.-1;.const.MATCH_NONE.=
6c7c0 20 30 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 .0;.const.MATCH.=.1;.const.MATCH
6c7e0 5f 50 52 4f 56 49 44 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 52 45 50 4c 41 43 _PROVIDE.=.2;.const.MATCH_REPLAC
6c800 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 20 3d 20 34 3b E.=.3;.const.MATCH_FILTERED.=.4;
6c820 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 ..protected.$repositories.=.arra
6c840 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 52 65 70 6f 73 20 3d 20 y();.protected.$providerRepos.=.
6c860 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 array();.protected.$packages.=.a
6c880 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 rray();.protected.$packageByName
6c8a0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 .=.array();.protected.$packageBy
6c8c0 45 78 61 63 74 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ExactName.=.array();.protected.$
6c8e0 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 acceptableStabilities;.protected
6c900 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 .$stabilityFlags;.protected.$ver
6c920 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 43 sionParser;.protected.$providerC
6c940 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 66 69 6c 74 65 ache.=.array();.protected.$filte
6c960 72 52 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 68 69 74 65 6c 69 73 74 20 rRequires;.protected.$whitelist.
6c980 3d 20 6e 75 6c 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 20 3d 20 31 3b 0a 0a 70 75 62 6c =.null;.protected.$id.=.1;..publ
6c9a0 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 69 6e 69 6d 75 6d ic.function.__construct($minimum
6c9c0 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 61 72 72 61 79 20 24 73 74 61 Stability.=.'stable',.array.$sta
6c9e0 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 69 bilityFlags.=.array(),.array.$fi
6ca00 6c 74 65 72 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 74 61 62 69 lterRequires.=.array()).{.$stabi
6ca20 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 lities.=.BasePackage::$stabiliti
6ca40 65 73 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 es;.$this->versionParser.=.new.V
6ca60 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 ersionParser;.$this->acceptableS
6ca80 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 tabilities.=.array();.foreach.(B
6caa0 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 20 61 73 20 24 73 74 61 asePackage::$stabilities.as.$sta
6cac0 62 69 6c 69 74 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3c bility.=>.$value).{.if.($value.<
6cae0 3d 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 6d 69 6e =.BasePackage::$stabilities[$min
6cb00 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 imumStability]).{.$this->accepta
6cb20 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3d 20 24 76 61 bleStabilities[$stability].=.$va
6cb40 6c 75 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d lue;.}.}.$this->stabilityFlags.=
6cb60 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 .$stabilityFlags;.$this->filterR
6cb80 65 71 75 69 72 65 73 20 3d 20 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 3b 0a 66 6f 72 65 61 equires.=.$filterRequires;.forea
6cba0 63 68 20 28 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 ch.($filterRequires.as.$name.=>.
6cbc0 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 50 6c $constraint).{.if.(preg_match(Pl
6cbe0 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 atformRepository::PLATFORM_PACKA
6cc00 47 45 5f 52 45 47 45 58 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d GE_REGEX,.$name)).{.unset($this-
6cc20 3e 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a >filterRequires[$name]);.}.}.}..
6cc40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 68 69 74 65 6c 69 73 74 28 24 77 68 public.function.setWhitelist($wh
6cc60 69 74 65 6c 69 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 20 3d 20 24 77 itelist).{.$this->whitelist.=.$w
6cc80 68 69 74 65 6c 69 73 74 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 20 3d hitelist;.$this->providerCache.=
6cca0 20 61 72 72 61 79 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 .array();.}........public.functi
6ccc0 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 on.addRepository(RepositoryInter
6cce0 66 61 63 65 20 24 72 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 face.$repo,.$rootAliases.=.array
6cd00 28 29 29 0a 7b 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f ()).{.if.($repo.instanceof.Compo
6cd20 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
6cd40 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 20 7b 0a 24 72 ->getRepositories();.}.else.{.$r
6cd60 65 70 6f 73 20 3d 20 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 epos.=.array($repo);.}..foreach.
6cd80 28 24 72 65 70 6f 73 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 ($repos.as.$repo).{.$this->repos
6cda0 69 74 6f 72 69 65 73 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 itories[].=.$repo;..$exempt.=.$r
6cdc0 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 epo.instanceof.PlatformRepositor
6cde0 79 20 7c 7c 20 24 72 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 y.||.$repo.instanceof.InstalledR
6ce00 65 70 6f 73 69 74 6f 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 epositoryInterface;..if.($repo.i
6ce20 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 72 79 20 26 26 20 nstanceof.ComposerRepository.&&.
6ce40 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 24 74 68 69 73 2d 3e $repo->hasProviders()).{.$this->
6ce60 70 72 6f 76 69 64 65 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 providerRepos[].=.$repo;.$repo->
6ce80 73 65 74 52 6f 6f 74 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 setRootAliases($rootAliases);.$r
6cea0 65 70 6f 2d 3e 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b epo->resetPackageIds();.}.else.{
6cec0 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 .foreach.($repo->getPackages().a
6cee0 73 20 24 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 s.$package).{.$names.=.$package-
6cf00 3e 67 65 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 >getNames();.$stability.=.$packa
6cf20 67 65 2d 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 ge->getStability();.if.($exempt.
6cf40 7c 7c 20 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 ||.$this->isPackageAcceptable($n
6cf60 61 6d 65 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 ames,.$stability)).{.$package->s
6cf80 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
6cfa0 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 es[].=.$package;.$this->packageB
6cfc0 79 45 78 61 63 74 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 5b yExactName[$package->getName()][
6cfe0 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 $package->id].=.$package;..forea
6d000 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 69 73 ch.($names.as.$provided).{.$this
6d020 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 5d 20 3d 20 24 ->packageByName[$provided][].=.$
6d040 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e package;.}....$name.=.$package->
6d060 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 getName();.if.(isset($rootAliase
6d080 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d s[$name][$package->getVersion()]
6d0a0 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 )).{.$alias.=.$rootAliases[$name
6d0c0 5d 5b 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 69 66 20 28 24 ][$package->getVersion()];.if.($
6d0e0 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 package.instanceof.AliasPackage)
6d100 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 69 61 73 .{.$package.=.$package->getAlias
6d120 4f 66 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 Of();.}.$aliasPackage.=.new.Alia
6d140 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 sPackage($package,.$alias['alias
6d160 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b _normalized'],.$alias['alias']);
6d180 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c .$aliasPackage->setRootPackageAl
6d1a0 69 61 73 28 74 72 75 65 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 ias(true);.$aliasPackage->setId(
6d1c0 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f $this->id++);..$package->getRepo
6d1e0 73 69 74 6f 72 79 28 29 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 sitory()->addPackage($aliasPacka
6d200 67 65 29 3b 0a 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 50 ge);.$this->packages[].=.$aliasP
6d220 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 45 78 61 63 74 4e 61 6d ackage;.$this->packageByExactNam
6d240 65 5b 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 61 6c 69 e[$aliasPackage->getName()][$ali
6d260 61 73 50 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a asPackage->id].=.$aliasPackage;.
6d280 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 .foreach.($aliasPackage->getName
6d2a0 73 28 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 s().as.$name).{.$this->packageBy
6d2c0 4e 61 6d 65 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d Name[$name][].=.$aliasPackage;.}
6d2e0 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 .}.}.}.}.}.}..public.function.ge
6d300 74 50 72 69 6f 72 69 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 tPriority(RepositoryInterface.$r
6d320 65 70 6f 29 0a 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 epo).{.$priority.=.array_search(
6d340 24 72 65 70 6f 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 $repo,.$this->repositories,.true
6d360 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 74 );..if.(false.===.$priority).{.t
6d380 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c hrow.new.\RuntimeException("Coul
6d3a0 64 20 6e 6f 74 20 64 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 20 70 72 69 6f 72 d.not.determine.repository.prior
6d3c0 69 74 79 2e 20 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 6e 6f 74 20 72 65 67 69 ity..The.repository.was.not.regi
6d3e0 73 74 65 72 65 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e stered.in.the.pool.");.}..return
6d400 20 2d 24 70 72 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .-$priority;.}........public.fun
6d420 63 74 69 6f 6e 20 70 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.packageById($id).{.return.
6d440 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 3b 0a 7d 0a 0a 0a 0a 0a $this->packages[$id.-.1];.}.....
6d460 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 .......public.function.whatProvi
6d480 64 65 73 28 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 des($name,.LinkConstraintInterfa
6d4a0 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 75 73 74 4d 61 74 63 ce.$constraint.=.null,.$mustMatc
6d4c0 68 4e 61 6d 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6b 65 79 20 3d 20 28 28 69 6e 74 29 20 24 hName.=.false).{.$key.=.((int).$
6d4e0 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 29 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 69 66 20 28 mustMatchName).$constraint;.if.(
6d500 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 isset($this->providerCache[$name
6d520 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 ][$key])).{.return.$this->provid
6d540 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 24 6b 65 79 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 erCache[$name][$key];.}..return.
6d560 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 24 6b 65 79 $this->providerCache[$name][$key
6d580 5d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 28 24 ].=.$this->computeWhatProvides($
6d5a0 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d name,.$constraint,.$mustMatchNam
6d5c0 65 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 6f 6d 70 75 e);.}.....private.function.compu
6d5e0 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e teWhatProvides($name,.$constrain
6d600 74 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 61 t,.$mustMatchName.=.false).{.$ca
6d620 6e 64 69 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 ndidates.=.array();..foreach.($t
6d640 68 69 73 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 his->providerRepos.as.$repo).{.f
6d660 6f 72 65 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 oreach.($repo->whatProvides($thi
6d680 73 2c 20 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 s,.$name).as.$candidate).{.$cand
6d6a0 69 64 61 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 idates[].=.$candidate;.if.($cand
6d6c0 69 64 61 74 65 2d 3e 69 64 20 3c 20 31 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 2d 3e 73 65 74 idate->id.<.1).{.$candidate->set
6d6e0 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 65 73 Id($this->id++);.$this->packages
6d700 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 7d 0a [$this->id.-.2].=.$candidate;.}.
6d720 7d 0a 7d 0a 0a 69 66 20 28 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 29 20 7b 0a 24 63 61 6e 64 }.}..if.($mustMatchName).{.$cand
6d740 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 63 61 6e 64 69 64 61 74 65 idates.=.array_filter($candidate
6d760 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 63 61 6e 64 69 64 61 74 65 29 20 75 73 65 20 28 24 6e s,.function.($candidate).use.($n
6d780 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d ame).{.return.$candidate->getNam
6d7a0 65 28 29 20 3d 3d 20 24 6e 61 6d 65 3b 0a 7d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 e().==.$name;.});.if.(isset($thi
6d7c0 73 2d 3e 70 61 63 6b 61 67 65 42 79 45 78 61 63 74 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b s->packageByExactName[$name])).{
6d7e0 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 .$candidates.=.array_merge($cand
6d800 69 64 61 74 65 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 45 78 61 63 74 4e 61 6d idates,.$this->packageByExactNam
6d820 65 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 74 68 e[$name]);.}.}.elseif.(isset($th
6d840 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 63 61 is->packageByName[$name])).{.$ca
6d860 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 69 64 61 74 ndidates.=.array_merge($candidat
6d880 65 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 es,.$this->packageByName[$name])
6d8a0 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 20 ;.}..$matches.=.$provideMatches.
6d8c0 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a =.array();.$nameMatch.=.false;..
6d8e0 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 foreach.($candidates.as.$candida
6d900 74 65 29 20 7b 0a 24 61 6c 69 61 73 4f 66 43 61 6e 64 69 64 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a te).{.$aliasOfCandidate.=.null;.
6d920 0a 0a 20 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 .....if.($candidate.instanceof.A
6d940 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 4f 66 43 61 6e 64 69 64 61 74 65 liasPackage).{.$aliasOfCandidate
6d960 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a .=.$candidate->getAliasOf();.}..
6d980 69 66 20 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 20 21 3d 3d 20 6e 75 6c 6c 20 26 26 if.($this->whitelist.!==.null.&&
6d9a0 20 28 0a 28 21 28 24 63 61 6e 64 69 64 61 74 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 .(.(!($candidate.instanceof.Alia
6d9c0 73 50 61 63 6b 61 67 65 29 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 sPackage).&&.!isset($this->white
6d9e0 6c 69 73 74 5b 24 63 61 6e 64 69 64 61 74 65 2d 3e 69 64 5d 29 29 20 7c 7c 0a 28 24 63 61 6e 64 list[$candidate->id])).||.($cand
6da00 69 64 61 74 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 idate.instanceof.AliasPackage.&&
6da20 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 5b 24 61 6c 69 61 73 4f .!isset($this->whitelist[$aliasO
6da40 66 43 61 6e 64 69 64 61 74 65 2d 3e 69 64 5d 29 29 0a 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b fCandidate->id])).)).{.continue;
6da60 0a 7d 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 .}.switch.($this->match($candida
6da80 74 65 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 63 61 73 65 20 te,.$name,.$constraint)).{.case.
6daa0 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 self::MATCH_NONE:.break;..case.s
6dac0 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 41 4d 45 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 elf::MATCH_NAME:.$nameMatch.=.tr
6dae0 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 3a 0a 24 6e ue;.break;..case.self::MATCH:.$n
6db00 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 63 ameMatch.=.true;.$matches[].=.$c
6db20 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 andidate;.break;..case.self::MAT
6db40 43 48 5f 50 52 4f 56 49 44 45 3a 0a 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 5b 5d 20 3d 20 CH_PROVIDE:.$provideMatches[].=.
6db60 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d $candidate;.break;..case.self::M
6db80 41 54 43 48 5f 52 45 50 4c 41 43 45 3a 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 63 61 6e 64 ATCH_REPLACE:.$matches[].=.$cand
6dba0 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f idate;.break;..case.self::MATCH_
6dbc0 46 49 4c 54 45 52 45 44 3a 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 FILTERED:.break;..default:.throw
6dbe0 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('
6dc00 55 6e 65 78 70 65 63 74 65 64 20 6d 61 74 63 68 20 74 79 70 65 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 Unexpected.match.type');.}.}....
6dc20 69 66 20 28 24 6e 61 6d 65 4d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 if.($nameMatch).{.return.$matche
6dc40 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 74 63 68 65 s;.}..return.array_merge($matche
6dc60 73 2c 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 s,.$provideMatches);.}..public.f
6dc80 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 unction.literalToPackage($litera
6dca0 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b l).{.$packageId.=.abs($literal);
6dcc0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 ..return.$this->packageById($pac
6dce0 6b 61 67 65 49 64 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 kageId);.}..public.function.lite
6dd00 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 ralToString($literal).{.return.(
6dd20 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 2b 27 20 3a 20 27 2d 27 29 20 2e 20 24 74 68 69 $literal.>.0.?.'+'.:.'-')...$thi
6dd40 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 3b 0a 7d s->literalToPackage($literal);.}
6dd60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 ..public.function.literalToPrett
6dd80 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 yString($literal,.$installedMap)
6dda0 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 .{.$package.=.$this->literalToPa
6ddc0 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 28 24 69 6e 73 ckage($literal);..if.(isset($ins
6dde0 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 70 72 65 talledMap[$package->id])).{.$pre
6de00 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 27 fix.=.($literal.>.0.?.'keep'.:.'
6de20 72 65 6d 6f 76 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c remove');.}.else.{.$prefix.=.($l
6de40 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 69 6e 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 74 iteral.>.0.?.'install'.:.'don\'t
6de60 20 69 6e 73 74 61 6c 6c 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 20 .install');.}..return.$prefix.'.
6de80 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d '.$package->getPrettyString();.}
6dea0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 ..public.function.isPackageAccep
6dec0 74 61 62 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 66 6f 72 65 61 table($name,.$stability).{.forea
6dee0 63 68 20 28 28 61 72 72 61 79 29 20 24 6e 61 6d 65 20 61 73 20 24 6e 29 20 7b 0a 0a 20 69 66 20 ch.((array).$name.as.$n).{...if.
6df00 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e (!isset($this->stabilityFlags[$n
6df20 5d 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 ]).&&.isset($this->acceptableSta
6df40 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 bilities[$stability])).{.return.
6df60 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 true;.}....if.(isset($this->stab
6df80 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a ilityFlags[$n]).&&.BasePackage::
6dfa0 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3c 3d 20 24 74 68 69 $stabilities[$stability].<=.$thi
6dfc0 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 7b 0a 72 65 74 75 72 6e 20 s->stabilityFlags[$n]).{.return.
6dfe0 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a true;.}.}..return.false;.}......
6e000 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 28 24 63 61 6e .....private.function.match($can
6e020 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 didate,.$name,.LinkConstraintInt
6e040 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 61 erface.$constraint.=.null).{.$ca
6e060 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d ndidateName.=.$candidate->getNam
6e080 65 28 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 63 61 6e 64 69 64 e();.$candidateVersion.=.$candid
6e0a0 61 74 65 2d 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 ate->getVersion();.$isDev.=.$can
6e0c0 64 69 64 61 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 didate->getStability().===.'dev'
6e0e0 3b 0a 24 69 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 ;.$isAlias.=.$candidate.instance
6e100 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 69 66 20 28 21 24 69 73 44 65 76 20 26 26 of.AliasPackage;..if.(!$isDev.&&
6e120 20 21 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 .!$isAlias.&&.isset($this->filte
6e140 72 52 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 rRequires[$name])).{.$requireFil
6e160 74 65 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 ter.=.$this->filterRequires[$nam
6e180 65 5d 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 e];.}.else.{.$requireFilter.=.ne
6e1a0 77 20 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 w.EmptyConstraint;.}..if.($candi
6e1c0 64 61 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 dateName.===.$name).{.$pkgConstr
6e1e0 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 3d aint.=.new.VersionConstraint('==
6e200 27 2c 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 ',.$candidateVersion);..if.($con
6e220 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-
6e240 3e 6d 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 >matches($pkgConstraint)).{.retu
6e260 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 70 6b 67 43 rn.$requireFilter->matches($pkgC
6e280 6f 6e 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 onstraint).?.self::MATCH.:.self:
6e2a0 3a 4d 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 :MATCH_FILTERED;.}..return.self:
6e2c0 3a 4d 41 54 43 48 5f 4e 41 4d 45 3b 0a 7d 0a 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 24 63 61 6e :MATCH_NAME;.}..$provides.=.$can
6e2e0 64 69 64 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 didate->getProvides();.$replaces
6e300 20 3d 20 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 0a 0a .=.$candidate->getReplaces();...
6e320 20 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 .if.(isset($replaces[0]).||.isse
6e340 74 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 t($provides[0])).{.foreach.($pro
6e360 76 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 vides.as.$link).{.if.($link->get
6e380 54 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 Target().===.$name.&&.($constrai
6e3a0 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 61 74 63 nt.===.null.||.$constraint->matc
6e3c0 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a hes($link->getConstraint()))).{.
6e3e0 72 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 return.$requireFilter->matches($
6e400 6c 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 link->getConstraint()).?.self::M
6e420 41 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 ATCH_PROVIDE.:.self::MATCH_FILTE
6e440 52 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 RED;.}.}..foreach.($replaces.as.
6e460 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 $link).{.if.($link->getTarget().
6e480 3d 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 ===.$name.&&.($constraint.===.nu
6e4a0 6c 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 ll.||.$constraint->matches($link
6e4c0 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
6e4e0 65 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 equireFilter->matches($link->get
6e500 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 52 45 50 4c Constraint()).?.self::MATCH_REPL
6e520 41 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 ACE.:.self::MATCH_FILTERED;.}.}.
6e540 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 0a 69 66 20 .return.self::MATCH_NONE;.}..if.
6e560 28 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 (isset($provides[$name]).&&.($co
6e580 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 74 72 61 69 6e 74 nstraint.===.null.||.$constraint
6e5a0 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 3e 67 65 74 43 ->matches($provides[$name]->getC
6e5c0 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 71 75 69 72 65 onstraint()))).{.return.$require
6e5e0 46 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 Filter->matches($provides[$name]
6e600 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 54 43 48 ->getConstraint()).?.self::MATCH
6e620 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 45 44 3b _PROVIDE.:.self::MATCH_FILTERED;
6e640 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d 65 5d 29 20 .}..if.(isset($replaces[$name]).
6e660 26 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 &&.($constraint.===.null.||.$con
6e680 73 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 straint->matches($replaces[$name
6e6a0 5d 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 ]->getConstraint()))).{.return.$
6e6c0 72 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 requireFilter->matches($replaces
6e6e0 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 [$name]->getConstraint()).?.self
6e700 3a 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 ::MATCH_REPLACE.:.self::MATCH_FI
6e720 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 41 54 43 48 5f 4e 4f LTERED;.}..return.self::MATCH_NO
6e740 4e 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 NE;.}.}.<?php............namespa
6e760 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;.
6e780 0a 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 ....class.Rule.{.const.RULE_INTE
6e7a0 52 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 RNAL_ALLOW_UPDATE.=.1;.const.RUL
6e7c0 45 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 E_JOB_INSTALL.=.2;.const.RULE_JO
6e7e0 42 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 B_REMOVE.=.3;.const.RULE_PACKAGE
6e800 5f 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 _CONFLICT.=.6;.const.RULE_PACKAG
6e820 45 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 E_REQUIRES.=.7;.const.RULE_PACKA
6e840 47 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 GE_OBSOLETES.=.8;.const.RULE_INS
6e860 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f TALLED_PACKAGE_OBSOLETES.=.9;.co
6e880 6e 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 nst.RULE_PACKAGE_SAME_NAME.=.10;
6e8a0 0a 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 .const.RULE_PACKAGE_IMPLICIT_OBS
6e8c0 4f 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 OLETES.=.11;.const.RULE_LEARNED.
6e8e0 3d 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 =.12;.const.RULE_PACKAGE_ALIAS.=
6e900 20 31 33 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 24 6c 69 74 65 72 61 6c 73 3b 0a 0a 70 72 6f .13;......public.$literals;..pro
6e920 74 65 63 74 65 64 20 24 64 69 73 61 62 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 tected.$disabled;.protected.$typ
6e940 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 e;.protected.$id;.protected.$rea
6e960 73 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 70 72 6f son;.protected.$reasonData;..pro
6e980 74 65 63 74 65 64 20 24 6a 6f 62 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 48 61 73 tected.$job;..protected.$ruleHas
6e9a0 68 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 h;..public.function.__construct(
6e9c0 61 72 72 61 79 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 array.$literals,.$reason,.$reaso
6e9e0 6e 44 61 74 61 2c 20 24 6a 6f 62 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 73 6f 72 74 28 24 6c 69 nData,.$job.=.null).{...sort($li
6ea00 74 65 72 61 6c 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 3d 20 24 6c 69 74 terals);..$this->literals.=.$lit
6ea20 65 72 61 6c 73 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a erals;.$this->reason.=.$reason;.
6ea40 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 24 72 65 61 73 6f 6e 44 61 74 61 3b $this->reasonData.=.$reasonData;
6ea60 0a 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 74 68 69 ..$this->disabled.=.false;..$thi
6ea80 73 2d 3e 6a 6f 62 20 3d 20 24 6a 6f 62 3b 0a 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 2d 31 s->job.=.$job;..$this->type.=.-1
6eaa0 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 3d 20 73 75 62 73 74 72 28 6d 64 35 28 ;..$this->ruleHash.=.substr(md5(
6eac0 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 29 2c 20 implode(',',.$this->literals)),.
6eae0 30 2c 20 35 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 61 73 0,.5);.}..public.function.getHas
6eb00 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 3b 0a 7d 0a h().{.return.$this->ruleHash;.}.
6eb20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 .public.function.setId($id).{.$t
6eb40 68 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f his->id.=.$id;.}..public.functio
6eb60 6e 20 67 65 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a n.getId().{.return.$this->id;.}.
6eb80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 28 29 0a 7b 0a 72 65 74 75 .public.function.getJob().{.retu
6eba0 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rn.$this->job;.}..public.functio
6ebc0 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 65 n.getReason().{.return.$this->re
6ebe0 61 73 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 ason;.}..public.function.getReas
6ec00 6f 6e 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 onData().{.return.$this->reasonD
6ec20 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 ata;.}..public.function.getRequi
6ec40 72 65 64 50 61 63 6b 61 67 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e redPackage().{.if.($this->reason
6ec60 20 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 29 20 7b 0a 72 .===.self::RULE_JOB_INSTALL).{.r
6ec80 65 74 75 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 69 66 20 28 eturn.$this->reasonData;.}..if.(
6eca0 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 5f 50 41 43 $this->reason.===.self::RULE_PAC
6ecc0 4b 41 47 45 5f 52 45 51 55 49 52 45 53 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 KAGE_REQUIRES).{.return.$this->r
6ece0 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a easonData->getTarget();.}.}.....
6ed00 0a 0a 0a 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 52 75 6c 65 .....public.function.equals(Rule
6ed20 20 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 21 3d .$rule).{.if.($this->ruleHash.!=
6ed40 3d 20 24 72 75 6c 65 2d 3e 72 75 6c 65 48 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 =.$rule->ruleHash).{.return.fals
6ed60 65 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 e;.}..if.(count($this->literals)
6ed80 20 21 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 72 65 .!=.count($rule->literals)).{.re
6eda0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d turn.false;.}..for.($i.=.0,.$n.=
6edc0 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 20 24 69 20 3c 20 24 6e .count($this->literals);.$i.<.$n
6ede0 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 ;.$i++).{.if.($this->literals[$i
6ee00 5d 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 29 20 7b 0a 72 65 74 ].!==.$rule->literals[$i]).{.ret
6ee20 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;.}..
6ee40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b public.function.setType($type).{
6ee60 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 .$this->type.=.$type;.}..public.
6ee80 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
6eea0 73 2d 3e 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 64 69 73 61 s->type;.}..public.function.disa
6eec0 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 20 74 72 75 65 3b 0a ble().{.$this->disabled.=.true;.
6eee0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a 24 74 }..public.function.enable().{.$t
6ef00 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 his->disabled.=.false;.}..public
6ef20 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.isDisabled().{.return.
6ef40 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $this->disabled;.}..public.funct
6ef60 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 21 24 74 68 69 73 2d ion.isEnabled().{.return.!$this-
6ef80 3e 64 69 73 61 62 6c 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 >disabled;.}.....public.function
6efa0 20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c .getLiterals().{.return.$this->l
6efc0 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 iterals;.}..public.function.isAs
6efe0 73 65 72 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 sertion().{.return.1.===.count($
6f000 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 this->literals);.}..public.funct
6f020 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 ion.getPrettyString(Pool.$pool,.
6f040 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()).{
6f060 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 73 2d .$ruleText.=.'';.foreach.($this-
6f080 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 >literals.as.$i.=>.$literal).{.i
6f0a0 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 3b 0a f.($i.!=.0).{.$ruleText..=.'|';.
6f0c0 7d 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 }.$ruleText..=.$pool->literalToP
6f0e0 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 rettyString($literal,.$installed
6f100 4d 61 70 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 29 20 Map);.}..switch.($this->reason).
6f120 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f 57 {.case.self::RULE_INTERNAL_ALLOW
6f140 5f 55 50 44 41 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 0a 63 61 73 65 _UPDATE:.return.$ruleText;..case
6f160 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 72 65 74 75 72 6e 20 .self::RULE_JOB_INSTALL:.return.
6f180 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 "Install.command.rule.($ruleText
6f1a0 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 3a )";..case.self::RULE_JOB_REMOVE:
6f1c0 0a 72 65 74 75 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 .return."Remove.command.rule.($r
6f1e0 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 50 41 43 4b uleText)";..case.self::RULE_PACK
6f200 41 47 45 5f 43 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 65 31 20 3d 20 24 70 6f 6f 6c 2d AGE_CONFLICT:.$package1.=.$pool-
6f220 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c >literalToPackage($this->literal
6f240 73 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 32 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 s[0]);.$package2.=.$pool->litera
6f260 6c 54 6f 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a lToPackage($this->literals[1]);.
6f280 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 31 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 .return.$package1->getPrettyStri
6f2a0 6e 67 28 29 2e 27 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 27 2e 24 74 68 69 73 2d 3e 66 ng().'.conflicts.with.'.$this->f
6f2c0 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 ormatPackagesUnique($pool,.array
6f2e0 28 24 70 61 63 6b 61 67 65 32 29 29 2e 27 2e 27 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 ($package2)).'.';..case.self::RU
6f300 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 3a 0a 24 6c 69 74 65 72 61 6c 73 20 3d LE_PACKAGE_REQUIRES:.$literals.=
6f320 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c .$this->literals;.$sourceLiteral
6f340 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 24 73 6f 75 72 .=.array_shift($literals);.$sour
6f360 63 65 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 6f 50 61 63 6b cePackage.=.$pool->literalToPack
6f380 61 67 65 28 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 29 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 age($sourceLiteral);..$requires.
6f3a0 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 61 73 =.array();.foreach.($literals.as
6f3c0 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 6f 6f 6c .$literal).{.$requires[].=.$pool
6f3e0 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 7d 0a ->literalToPackage($literal);.}.
6f400 0a 24 74 65 78 74 20 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 .$text.=.$this->reasonData->getP
6f420 72 65 74 74 79 53 74 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 rettyString($sourcePackage);.if.
6f440 28 24 72 65 71 75 69 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 ($requires).{.$text..=.'.->.sati
6f460 73 66 69 61 62 6c 65 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 sfiable.by.'...$this->formatPack
6f480 61 67 65 73 55 6e 69 71 75 65 28 24 70 6f 6f 6c 2c 20 24 72 65 71 75 69 72 65 73 29 20 2e 20 27 agesUnique($pool,.$requires)...'
6f4a0 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 .';.}.else.{.$targetName.=.$this
6f4c0 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 0a 0a 20 69 66 ->reasonData->getTarget();....if
6f4e0 20 28 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 27 20 7c 7c 20 24 74 61 72 67 .($targetName.===.'php'.||.$targ
6f500 65 74 4e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 2d 36 34 62 69 74 27 20 7c 7c 20 24 74 61 72 67 65 etName.===.'php-64bit'.||.$targe
6f520 74 4e 61 6d 65 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 tName.===.'hhvm').{.if.(defined(
6f540 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 'HHVM_VERSION')).{.$text..=.'.->
6f560 20 79 6f 75 72 20 48 48 56 4d 20 76 65 72 73 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 73 61 74 69 .your.HHVM.version.does.not.sati
6f580 73 66 79 20 74 68 61 74 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 sfy.that.requirement.';.}.elseif
6f5a0 20 28 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a 24 74 65 78 .($targetName.===.'hhvm').{.$tex
6f5c0 74 20 2e 3d 20 27 20 2d 3e 20 79 6f 75 20 61 72 65 20 72 75 6e 6e 69 6e 67 20 74 68 69 73 20 77 t..=.'.->.you.are.running.this.w
6f5e0 69 74 68 20 50 48 50 20 61 6e 64 20 6e 6f 74 20 48 48 56 4d 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b ith.PHP.and.not.HHVM.';.}.else.{
6f600 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 79 6f 75 72 20 50 48 50 20 76 65 72 73 69 6f 6e 20 .$text..=.'.->.your.PHP.version.
6f620 64 6f 65 73 20 6e 6f 74 20 73 61 74 69 73 66 79 20 74 68 61 74 20 72 65 71 75 69 72 65 6d 65 6e does.not.satisfy.that.requiremen
6f640 74 2e 27 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 t.';.}.}.elseif.(0.===.strpos($t
6f660 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 73 75 62 argetName,.'ext-')).{.$ext.=.sub
6f680 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 20 65 78 str($targetName,.4);.$error.=.ex
6f6a0 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 68 65 20 tension_loaded($ext).?.'has.the.
6f6c0 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 24 65 78 wrong.version.('.(phpversion($ex
6f6e0 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 73 20 6d t).?:.'0').').installed'.:.'is.m
6f700 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 65 78 74 issing.from.your.system';..$text
6f720 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 74 65 6e ..=.'.->.the.requested.PHP.exten
6f740 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 20 65 6c sion.'.$ext.'.'.$error.'.';.}.el
6f760 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 65 2c 20 seif.(0.===.strpos($targetName,.
6f780 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 61 72 67 'lib-')).{...$lib.=.substr($targ
6f7a0 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 65 20 72 etName,.4);..$text..=.'.->.the.r
6f7c0 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 62 2e 27 equested.linked.library.'.$lib.'
6f7e0 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 6c 65 64 .has.the.wrong.version.installed
6f800 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 65 6d 2c .or.is.missing.from.your.system,
6f820 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 69 6f 6e .make.sure.to.have.the.extension
6f840 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 78 74 20 .providing.it.';.}.else.{.$text.
6f860 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 6f 75 6e .=.'.->.no.matching.package.foun
6f880 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 20 73 65 d.';.}.}..return.$text;..case.se
6f8a0 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 65 74 75 lf::RULE_PACKAGE_OBSOLETES:.retu
6f8c0 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 49 4e rn.$ruleText;.case.self::RULE_IN
6f8e0 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 74 75 72 STALLED_PACKAGE_OBSOLETES:.retur
6f900 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 50 41 43 n.$ruleText;.case.self::RULE_PAC
6f920 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 6e 6c 79 KAGE_SAME_NAME:.return.'Can.only
6f940 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 6f 72 6d .install.one.of:.'...$this->form
6f960 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 6c atPackagesUnique($pool,.$this->l
6f980 69 74 65 72 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 iterals)...'.';.case.self::RULE_
6f9a0 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 PACKAGE_IMPLICIT_OBSOLETES:.retu
6f9c0 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 4c 45 rn.$ruleText;.case.self::RULE_LE
6f9e0 41 52 4e 45 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 ARNED:.return.'Conclusion:.'.$ru
6fa00 6c 65 54 65 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 leText;.case.self::RULE_PACKAGE_
6fa20 41 4c 49 41 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 64 65 66 61 75 6c 74 ALIAS:.return.$ruleText;.default
6fa40 3a 0a 72 65 74 75 72 6e 20 27 28 27 2e 24 72 75 6c 65 54 65 78 74 2e 27 29 27 3b 0a 7d 0a 7d 0a :.return.'('.$ruleText.')';.}.}.
6fa60 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 50 61 63 6b 61 67 .protected.function.formatPackag
6fa80 65 73 55 6e 69 71 75 65 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 esUnique($pool,.array.$packages)
6faa0 0a 7b 0a 24 70 72 65 70 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 .{.$prepared.=.array();.foreach.
6fac0 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 ($packages.as.$package).{.if.(!i
6fae0 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d s_object($package)).{.$package.=
6fb00 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 70 61 63 6b 61 67 .$pool->literalToPackage($packag
6fb20 65 29 3b 0a 7d 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 e);.}.$prepared[$package->getNam
6fb40 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 74 50 72 65 74 e()]['name'].=.$package->getPret
6fb60 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 65 2d 3e 67 65 tyName();.$prepared[$package->ge
6fb80 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 67 65 2d 3e 67 tName()]['versions'][$package->g
6fba0 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 74 50 72 65 74 etVersion()].=.$package->getPret
6fbc0 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 65 70 61 72 65 tyVersion();.}.foreach.($prepare
6fbe0 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 70 72 65 70 61 d.as.$name.=>.$package).{.$prepa
6fc00 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 27 5d 2e 27 5b red[$name].=.$package['name'].'[
6fc20 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 65 72 73 69 6f '.implode(',.',.$package['versio
6fc40 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 65 28 27 2c 20 ns']).']';.}..return.implode(',.
6fc60 27 2c 20 24 70 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ',.$prepared);.}.......public.fu
6fc80 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 nction.__toString().{.$result.=.
6fca0 28 24 74 68 69 73 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 ($this->isDisabled()).?.'disable
6fcc0 64 28 27 20 3a 20 27 28 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 d('.:.'(';..foreach.($this->lite
6fce0 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 rals.as.$i.=>.$literal).{.if.($i
6fd00 20 21 3d 20 30 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 .!=.0).{.$result..=.'|';.}.$resu
6fd20 6c 74 20 2e 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 lt..=.$literal;.}..$result..=.')
6fd40 27 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 ';..return.$result;.}.}.<?php...
6fd60 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
6fd80 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 5c 50 61 ndencyResolver;..use.Composer\Pa
6fda0 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 70 ckage\PackageInterface;.use.Comp
6fdc0 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 20 43 oser\Package\AliasPackage;.use.C
6fde0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 omposer\Repository\PlatformRepos
6fe00 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f itory;.....class.RuleSetGenerato
6fe20 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 r.{.protected.$policy;.protected
6fe40 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 .$pool;.protected.$rules;.protec
6fe60 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d ted.$jobs;.protected.$installedM
6fe80 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 3b 0a 70 ap;.protected.$whitelistedMap;.p
6fea0 72 6f 74 65 63 74 65 64 20 24 61 64 64 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rotected.$addedMap;..public.func
6fec0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 tion.__construct(PolicyInterface
6fee0 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 .$policy,.Pool.$pool).{.$this->p
6ff00 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 olicy.=.$policy;.$this->pool.=.$
6ff20 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 pool;.}................protected
6ff40 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 50 61 63 6b .function.createRequireRule(Pack
6ff60 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 72 ageInterface.$package,.array.$pr
6ff80 6f 76 69 64 65 72 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 oviders,.$reason,.$reasonData.=.
6ffa0 6e 75 6c 6c 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 2d 24 70 61 63 6b null).{.$literals.=.array(-$pack
6ffc0 61 67 65 2d 3e 69 64 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 age->id);..foreach.($providers.a
6ffe0 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d s.$provider).{...if.($provider.=
70000 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 24 6c ==.$package).{.return.null;.}.$l
70020 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 69 64 3b 0a 7d 0a 0a 72 65 iterals[].=.$provider->id;.}..re
70040 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e turn.new.Rule($literals,.$reason
70060 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ,.$reasonData);.}..............p
70080 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f rotected.function.createInstallO
700a0 6e 65 4f 66 52 75 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 61 73 6f neOfRule(array.$packages,.$reaso
700c0 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a n,.$job).{.$literals.=.array();.
700e0 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).
70100 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 69 64 3b 0a 7d 0a {.$literals[].=.$package->id;.}.
70120 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 .return.new.Rule($literals,.$rea
70140 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 62 29 3b son,.$job['packageName'],.$job);
70160 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 74 69 6f .}.............protected.functio
70180 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 65 72 66 n.createRemoveRule(PackageInterf
701a0 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 7b 0a 72 ace.$package,.$reason,.$job).{.r
701c0 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e eturn.new.Rule(array(-$package->
701e0 69 64 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 id),.$reason,.$job['packageName'
70200 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 ],.$job);.}................prote
70220 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 cted.function.createConflictRule
70240 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 73 73 75 65 72 2c 20 50 61 63 6b 61 (PackageInterface.$issuer,.Packa
70260 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 geInterface.$provider,.$reason,.
70280 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 69 73 73 $reasonData.=.null).{...if.($iss
702a0 75 65 72 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c uer.===.$provider).{.return.null
702c0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 61 72 72 61 79 28 2d 24 69 73 73 ;.}..return.new.Rule(array(-$iss
702e0 75 65 72 2d 3e 69 64 2c 20 2d 24 70 72 6f 76 69 64 65 72 2d 3e 69 64 29 2c 20 24 72 65 61 73 6f uer->id,.-$provider->id),.$reaso
70300 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 n,.$reasonData);.}...........pri
70320 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 24 74 79 70 65 2c 20 52 75 6c vate.function.addRule($type,.Rul
70340 65 20 24 6e 65 77 52 75 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 6e 65 77 52 75 e.$newRule.=.null).{.if.(!$newRu
70360 6c 65 20 7c 7c 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 63 6f 6e 74 61 69 6e 73 45 71 75 61 le.||.$this->rules->containsEqua
70380 6c 28 24 6e 65 77 52 75 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d l($newRule)).{.return;.}..$this-
703a0 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a >rules->add($newRule,.$type);.}.
703c0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 46 72 6f .protected.function.whitelistFro
703e0 6d 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 mPackage(PackageInterface.$packa
70400 67 65 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 ge).{.$workQueue.=.new.\SplQueue
70420 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 61 63 6b 61 67 65 29 3b ;.$workQueue->enqueue($package);
70440 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 ..while.(!$workQueue->isEmpty())
70460 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 75 65 2d 3e 64 65 71 75 65 75 .{.$package.=.$workQueue->dequeu
70480 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 e();.if.(isset($this->whiteliste
704a0 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b dMap[$package->id])).{.continue;
704c0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 5b 24 70 61 63 6b 61 .}..$this->whitelistedMap[$packa
704e0 67 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 ge->id].=.true;..foreach.($packa
70500 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 ge->getRequires().as.$link).{.$p
70520 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 ossibleRequires.=.$this->pool->w
70540 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 hatProvides($link->getTarget(),.
70560 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2c 20 74 72 75 65 29 3b 0a 0a $link->getConstraint(),.true);..
70580 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 foreach.($possibleRequires.as.$r
705a0 65 71 75 69 72 65 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 equire).{.$workQueue->enqueue($r
705c0 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 equire);.}.}..$obsoleteProviders
705e0 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 .=.$this->pool->whatProvides($pa
70600 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a ckage->getName(),.null,.true);..
70620 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 foreach.($obsoleteProviders.as.$
70640 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 provider).{.if.($provider.===.$p
70660 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 ackage).{.continue;.}..if.(($pac
70680 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 26 26 kage.instanceof.AliasPackage).&&
706a0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f .$package->getAliasOf().===.$pro
706c0 76 69 64 65 72 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 72 vider).{.$workQueue->enqueue($pr
706e0 6f 76 69 64 65 72 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 ovider);.}.}.}.}..protected.func
70700 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 tion.addRulesForPackage(PackageI
70720 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f nterface.$package,.$ignorePlatfo
70740 72 6d 52 65 71 73 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 rmReqs).{.$workQueue.=.new.\SplQ
70760 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 61 63 6b 61 ueue;.$workQueue->enqueue($packa
70780 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 ge);..while.(!$workQueue->isEmpt
707a0 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 75 65 2d 3e 64 65 y()).{.$package.=.$workQueue->de
707c0 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 64 64 65 64 4d queue();.if.(isset($this->addedM
707e0 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d ap[$package->id])).{.continue;.}
70800 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 ..$this->addedMap[$package->id].
70820 3d 20 74 72 75 65 3b 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 =.true;..foreach.($package->getR
70840 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 69 67 6e 6f 72 equires().as.$link).{.if.($ignor
70860 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 ePlatformReqs.&&.preg_match(Plat
70880 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 formRepository::PLATFORM_PACKAGE
708a0 5f 52 45 47 45 58 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 29 20 7b 0a 63 _REGEX,.$link->getTarget())).{.c
708c0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 ontinue;.}..$possibleRequires.=.
708e0 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d $this->pool->whatProvides($link-
70900 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 >getTarget(),.$link->getConstrai
70920 6e 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a nt());..$this->addRule(RuleSet::
70940 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
70960 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 69 62 ateRequireRule($package,.$possib
70980 6c 65 52 65 71 75 69 72 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 leRequires,.Rule::RULE_PACKAGE_R
709a0 45 51 55 49 52 45 53 2c 20 24 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 EQUIRES,.$link));..foreach.($pos
709c0 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 77 6f sibleRequires.as.$require).{.$wo
709e0 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a rkQueue->enqueue($require);.}.}.
70a00 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 .foreach.($package->getConflicts
70a20 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 ().as.$link).{.$possibleConflict
70a40 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c s.=.$this->pool->whatProvides($l
70a60 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 ink->getTarget(),.$link->getCons
70a80 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 43 6f traint());..foreach.($possibleCo
70aa0 6e 66 6c 69 63 74 73 20 61 73 20 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 nflicts.as.$conflict).{.$this->a
70ac0 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 24 74 ddRule(RuleSet::TYPE_PACKAGE,.$t
70ae0 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 his->createConflictRule($package
70b00 2c 20 24 63 6f 6e 66 6c 69 63 74 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f ,.$conflict,.Rule::RULE_PACKAGE_
70b20 43 4f 4e 46 4c 49 43 54 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 69 73 49 6e 73 CONFLICT,.$link));.}.}....$isIns
70b40 74 61 6c 6c 65 64 20 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 talled.=.(isset($this->installed
70b60 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 Map[$package->id]));..foreach.($
70b80 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 package->getReplaces().as.$link)
70ba0 20 7b 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 .{.$obsoleteProviders.=.$this->p
70bc0 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 72 67 ool->whatProvides($link->getTarg
70be0 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a et(),.$link->getConstraint());..
70c00 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 foreach.($obsoleteProviders.as.$
70c20 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 provider).{.if.($provider.===.$p
70c40 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 ackage).{.continue;.}..if.(!$thi
70c60 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 s->obsoleteImpossibleForAlias($p
70c80 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 ackage,.$provider)).{.$reason.=.
70ca0 28 24 69 73 49 6e 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 49 4e 53 54 ($isInstalled).?.Rule::RULE_INST
70cc0 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3a 20 52 75 6c 65 3a 3a ALLED_PACKAGE_OBSOLETES.:.Rule::
70ce0 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 RULE_PACKAGE_OBSOLETES;.$this->a
70d00 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 24 74 ddRule(RuleSet::TYPE_PACKAGE,.$t
70d20 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 his->createConflictRule($package
70d40 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d ,.$provider,.$reason,.$link));.}
70d60 0a 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 .}.}..$obsoleteProviders.=.$this
70d80 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 ->pool->whatProvides($package->g
70da0 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f etName(),.null);..foreach.($obso
70dc0 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 leteProviders.as.$provider).{.if
70de0 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 .($provider.===.$package).{.cont
70e00 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f inue;.}..if.(($package.instanceo
70e20 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 f.AliasPackage).&&.$package->get
70e40 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 7b 0a 24 74 68 69 73 AliasOf().===.$provider).{.$this
70e60 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c ->addRule(RuleSet::TYPE_PACKAGE,
70e80 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c .$rule.=.$this->createRequireRul
70ea0 65 28 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 65 72 29 2c 20 52 75 e($package,.array($provider),.Ru
70ec0 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 24 70 61 63 6b 61 67 65 le::RULE_PACKAGE_ALIAS,.$package
70ee0 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d ));.}.elseif.(!$this->obsoleteIm
70f00 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
70f20 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 ider)).{.$reason.=.($package->ge
70f40 74 4e 61 6d 65 28 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 29 tName().==.$provider->getName())
70f60 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 .?.Rule::RULE_PACKAGE_SAME_NAME.
70f80 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 :.Rule::RULE_PACKAGE_IMPLICIT_OB
70fa0 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a SOLETES;.$this->addRule(RuleSet:
70fc0 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 :TYPE_PACKAGE,.$rule.=.$this->cr
70fe0 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 eateConflictRule($package,.$prov
71000 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 7d ider,.$reason,.$package));.}.}.}
71020 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 73 6f 6c 65 74 65 49 .}..protected.function.obsoleteI
71040 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f mpossibleForAlias($package,.$pro
71060 76 69 64 65 72 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 3d 20 24 70 61 63 6b vider).{.$packageIsAlias.=.$pack
71080 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 3b 0a 24 70 72 age.instanceof.AliasPackage;.$pr
710a0 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e oviderIsAlias.=.$provider.instan
710c0 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 6d 70 6f 73 73 69 62 6c 65 20 ceof.AliasPackage;..$impossible.
710e0 3d 20 28 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 61 63 6b 61 67 65 =.(.($packageIsAlias.&&.$package
71100 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7c 7c ->getAliasOf().===.$provider).||
71120 0a 28 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d .($providerIsAlias.&&.$provider-
71140 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7c 7c 0a 28 >getAliasOf().===.$package).||.(
71160 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 49 73 41 6c $packageIsAlias.&&.$providerIsAl
71180 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d ias.&&.$provider->getAliasOf().=
711a0 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 0a 29 3b 0a 0a 72 ==.$package->getAliasOf()).);..r
711c0 65 74 75 72 6e 20 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 eturn.$impossible;.}..protected.
711e0 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 4a 6f 62 73 28 29 0a 7b 0a 66 function.whitelistFromJobs().{.f
71200 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a 73 oreach.($this->jobs.as.$job).{.s
71220 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 witch.($job['cmd']).{.case.'inst
71240 61 6c 6c 27 3a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 all':.$packages.=.$this->pool->w
71260 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 27 5d 2c hatProvides($job['packageName'],
71280 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 2c 20 74 72 75 65 29 3b 0a 66 6f 72 65 .$job['constraint'],.true);.fore
712a0 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 ach.($packages.as.$package).{.$t
712c0 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 his->whitelistFromPackage($packa
712e0 67 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ge);.}.break;.}.}.}..protected.f
71300 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 24 69 67 6e 6f 72 65 50 unction.addRulesForJobs($ignoreP
71320 6c 61 74 66 6f 72 6d 52 65 71 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a latformReqs).{.foreach.($this->j
71340 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 obs.as.$job).{.switch.($job['cmd
71360 27 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 21 24 6a 6f 62 5b ']).{.case.'install':.if.(!$job[
71380 27 66 69 78 65 64 27 5d 20 26 26 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 'fixed'].&&.$ignorePlatformReqs.
713a0 26 26 20 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 74 6f 72 79 &&.preg_match(PlatformRepository
713c0 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 6a 6f 62 5b 27 ::PLATFORM_PACKAGE_REGEX,.$job['
713e0 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 packageName'])).{.continue;.}..$
71400 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
71420 69 64 65 73 28 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 5b 27 ides($job['packageName'],.$job['
71440 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 29 20 7b 0a constraint']);.if.($packages).{.
71460 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).
71480 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 {.if.(!isset($this->installedMap
714a0 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c [$package->id])).{.$this->addRul
714c0 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 67 6e 6f 72 65 50 6c esForPackage($package,.$ignorePl
714e0 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 7d 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d atformReqs);.}.}..$rule.=.$this-
71500 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 70 61 63 6b 61 67 65 >createInstallOneOfRule($package
71520 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 2c 20 24 6a 6f 62 29 s,.Rule::RULE_JOB_INSTALL,.$job)
71540 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 5f 4a ;.$this->addRule(RuleSet::TYPE_J
71560 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 OB,.$rule);.}.break;.case.'remov
71580 65 27 3a 0a 0a 20 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d e':.....$packages.=.$this->pool-
715a0 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 27 >whatProvides($job['packageName'
715c0 5d 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 66 6f 72 65 61 63 68 20 ],.$job['constraint']);.foreach.
715e0 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 75 6c 65 20 ($packages.as.$package).{.$rule.
71600 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 6b 61 =.$this->createRemoveRule($packa
71620 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 62 29 ge,.Rule::RULE_JOB_REMOVE,.$job)
71640 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 5f 4a ;.$this->addRule(RuleSet::TYPE_J
71660 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 62 6c OB,.$rule);.}.break;.}.}.}..publ
71680 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 20 24 ic.function.getRulesFor($jobs,.$
716a0 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 installedMap,.$ignorePlatformReq
716c0 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 6a 6f 62 73 s.=.false).{.$this->jobs.=.$jobs
716e0 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 3b 0a 24 74 ;.$this->rules.=.new.RuleSet;.$t
71700 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 his->installedMap.=.$installedMa
71720 70 3b 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 20 3d 20 61 72 72 61 p;..$this->whitelistedMap.=.arra
71740 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 y();.foreach.($this->installedMa
71760 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 p.as.$package).{.$this->whitelis
71780 74 46 72 6f 6d 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d tFromPackage($package);.}.$this-
717a0 3e 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 4a 6f 62 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 6f >whitelistFromJobs();..$this->po
717c0 6f 6c 2d 3e 73 65 74 57 68 69 74 65 6c 69 73 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 ol->setWhitelist($this->whitelis
717e0 74 65 64 4d 61 70 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 20 3d 20 61 72 72 61 tedMap);..$this->addedMap.=.arra
71800 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 y();.foreach.($this->installedMa
71820 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 p.as.$package).{.$this->addRules
71840 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 ForPackage($package,.$ignorePlat
71860 66 6f 72 6d 52 65 71 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 formReqs);.}..$this->addRulesFor
71880 4a 6f 62 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 0a 72 65 74 75 Jobs($ignorePlatformReqs);..retu
718a0 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a rn.$this->rules;.}.}.<?php......
718c0 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
718e0 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 62 75 67 53 6f 6c 76 ncyResolver;.....class.DebugSolv
71900 65 72 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 er.extends.Solver.{.protected.fu
71920 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 4d 61 70 28 29 0a 7b 0a 65 63 68 6f nction.printDecisionMap().{.echo
71940 20 22 5c 6e 44 65 63 69 73 69 6f 6e 4d 61 70 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 ."\nDecisionMap:.\n";.foreach.($
71960 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 this->decisionMap.as.$packageId.
71980 3d 3e 20 24 6c 65 76 65 6c 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 =>.$level).{.if.($packageId.===.
719a0 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 30 29 0).{.continue;.}.if.($level.>.0)
719c0 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2b 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 .{.echo.'....+'...$this->pool->p
719e0 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 ackageById($packageId)."\n";.}.e
71a00 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2d lseif.($level.<.0).{.echo.'....-
71a20 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 '...$this->pool->packageById($pa
71a40 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 65 63 68 6f 20 27 20 20 ckageId)."\n";.}.else.{.echo.'..
71a60 20 20 3f 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 ..?'...$this->pool->packageById(
71a80 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b $packageId)."\n";.}.}.echo."\n";
71aa0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 .}..protected.function.printDeci
71ac0 73 69 6f 6e 51 75 65 75 65 28 29 0a 7b 0a 65 63 68 6f 20 22 44 65 63 69 73 69 6f 6e 51 75 65 75 sionQueue().{.echo."DecisionQueu
71ae0 65 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e e:.\n";.foreach.($this->decision
71b00 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 65 63 68 6f 20 Queue.as.$i.=>.$literal).{.echo.
71b20 27 20 20 20 20 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 '....'...$this->pool->literalToS
71b40 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 20 2e 20 27 20 27 20 2e 20 24 74 68 69 73 2d 3e 64 tring($literal)...'.'...$this->d
71b60 65 63 69 73 69 6f 6e 51 75 65 75 65 57 68 79 5b 24 69 5d 2e 22 20 6c 65 76 65 6c 20 22 2e 24 74 ecisionQueueWhy[$i].".level.".$t
71b80 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 2e his->decisionMap[abs($literal)].
71ba0 22 5c 6e 22 3b 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 "\n";.}.echo."\n";.}..protected.
71bc0 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 57 61 74 63 68 65 73 28 29 0a 7b 0a 65 63 68 6f 20 22 function.printWatches().{.echo."
71be0 5c 6e 57 61 74 63 68 65 73 3a 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 77 \nWatches:\n";.foreach.($this->w
71c00 61 74 63 68 65 73 20 61 73 20 24 6c 69 74 65 72 61 6c 49 64 20 3d 3e 20 24 77 61 74 63 68 29 20 atches.as.$literalId.=>.$watch).
71c20 7b 0a 65 63 68 6f 20 27 20 20 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 {.echo.'..'.$this->literalFromId
71c40 28 24 6c 69 74 65 72 61 6c 49 64 29 2e 22 5c 6e 22 3b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 ($literalId)."\n";.$queue.=.arra
71c60 79 28 61 72 72 61 79 28 27 20 20 20 20 27 2c 20 24 77 61 74 63 68 29 29 3b 0a 0a 77 68 69 6c 65 y(array('....',.$watch));..while
71c80 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 6c 69 73 74 28 24 69 6e 64 65 6e 74 .(!empty($queue)).{.list($indent
71ca0 2c 20 24 77 61 74 63 68 29 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a 0a ,.$watch).=.array_pop($queue);..
71cc0 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 24 77 61 74 63 68 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 echo.$indent.$watch;..if.($watch
71ce0 29 20 7b 0a 65 63 68 6f 20 27 20 5b 69 64 3d 27 2e 24 77 61 74 63 68 2d 3e 67 65 74 49 64 28 29 ).{.echo.'.[id='.$watch->getId()
71d00 2e 27 2c 77 61 74 63 68 31 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 .',watch1='.$this->literalFromId
71d20 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 31 29 2e 27 2c 77 61 74 63 68 32 3d 27 2e 24 74 68 69 ($watch->watch1).',watch2='.$thi
71d40 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 32 29 s->literalFromId($watch->watch2)
71d60 2e 22 5d 22 3b 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 20 ."]";.}..echo."\n";..if.($watch.
71d80 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 20 7c 7c 20 24 &&.($watch->next1.==.$watch.||.$
71da0 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 watch->next2.==.$watch)).{.if.($
71dc0 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 24 watch->next1.==.$watch).{.echo.$
71de0 69 6e 64 65 6e 74 2e 22 20 20 20 20 31 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d 0a 69 66 indent."....1.*RECURSION*";.}.if
71e00 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 .($watch->next2.==.$watch).{.ech
71e20 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 32 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d o.$indent."....2.*RECURSION*";.}
71e40 0a 7d 20 65 6c 73 65 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 .}.elseif.($watch.&&.($watch->ne
71e60 78 74 31 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 20 7b 0a 24 69 6e 64 65 6e 74 xt1.||.$watch->next2)).{.$indent
71e80 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 31 27 2c 20 27 32 27 29 2c 20 .=.str_replace(array('1',.'2'),.
71ea0 27 20 27 2c 20 24 69 6e 64 65 6e 74 29 3b 0a 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 '.',.$indent);..array_push($queu
71ec0 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 32 20 27 2c 20 24 77 61 74 63 e,.array($indent.'....2.',.$watc
71ee0 68 2d 3e 6e 65 78 74 32 29 29 3b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 61 h->next2));.array_push($queue,.a
71f00 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 31 20 27 2c 20 24 77 61 74 63 68 2d 3e 6e rray($indent.'....1.',.$watch->n
71f20 65 78 74 31 29 29 3b 0a 7d 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f ext1));.}.}..echo."\n";.}.}.}.<?
71f40 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
71f60 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 r\DependencyResolver;.....class.
71f80 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 RuleSetIterator.implements.\Iter
71fa0 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 ator.{.protected.$rules;.protect
71fc0 65 64 20 24 74 79 70 65 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 4f 66 ed.$types;..protected.$currentOf
71fe0 66 73 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 70 72 fset;.protected.$currentType;.pr
72000 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 3b 0a 0a 70 75 62 otected.$currentTypeOffset;..pub
72020 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.$
72040 72 75 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 72 75 6c 65 73 3b 0a rules).{.$this->rules.=.$rules;.
72060 24 74 68 69 73 2d 3e 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 75 6c 65 73 $this->types.=.array_keys($rules
72080 29 3b 0a 73 6f 72 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 );.sort($this->types);..$this->r
720a0 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 ewind();.}..public.function.curr
720c0 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 ent().{.return.$this->rules[$thi
720e0 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 s->currentType][$this->currentOf
72100 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a fset];.}..public.function.key().
72120 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 7d 0a 0a {.return.$this->currentType;.}..
72140 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e public.function.next().{.$this->
72160 63 75 72 72 65 6e 74 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 currentOffset++;..if.(!isset($th
72180 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 29 29 20 is->rules[$this->currentType])).
721a0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f {.return;.}..if.($this->currentO
721c0 66 66 73 65 74 20 3e 3d 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 ffset.>=.sizeof($this->rules[$th
721e0 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 is->currentType])).{.$this->curr
72200 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 entOffset.=.0;..do.{.$this->curr
72220 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 entTypeOffset++;..if.(!isset($th
72240 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 66 73 is->types[$this->currentTypeOffs
72260 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b et])).{.$this->currentType.=.-1;
72280 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 .break;.}..$this->currentType.=.
722a0 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f $this->types[$this->currentTypeO
722c0 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 ffset];.}.while.(isset($this->ty
722e0 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 20 26 pes[$this->currentTypeOffset]).&
72300 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 &.!sizeof($this->rules[$this->cu
72320 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rrentType]));.}.}..public.functi
72340 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 on.rewind().{.$this->currentOffs
72360 65 74 20 3d 20 30 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 et.=.0;..$this->currentTypeOffse
72380 74 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b t.=.-1;.$this->currentType.=.-1;
723a0 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b ..do.{.$this->currentTypeOffset+
723c0 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 +;..if.(!isset($this->types[$thi
723e0 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d s->currentTypeOffset])).{.$this-
72400 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 >currentType.=.-1;.break;.}..$th
72420 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 is->currentType.=.$this->types[$
72440 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c this->currentTypeOffset];.}.whil
72460 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 e.(isset($this->types[$this->cur
72480 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 rentTypeOffset]).&&.!sizeof($thi
724a0 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 29 29 3b 0a s->rules[$this->currentType]));.
724c0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 }..public.function.valid().{.ret
724e0 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 urn.isset($this->rules[$this->cu
72500 72 72 65 6e 74 54 79 70 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 rrentType]).&&.isset($this->rule
72520 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 75 72 s[$this->currentType][$this->cur
72540 72 65 6e 74 4f 66 66 73 65 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a rentOffset]);.}.}.<?php.........
72560 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 63 79 ...namespace.Composer\Dependency
72580 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 Resolver;..........class.RuleWat
725a0 63 68 43 68 61 69 6e 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 44 6f 75 62 6c 79 4c 69 6e 6b 65 64 chChain.extends.\SplDoublyLinked
725c0 4c 69 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 0a List.{.protected.$offset.=.0;...
725e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 65 6b 28 24 6f 66 66 73 65 74 ....public.function.seek($offset
72600 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 ).{.$this->rewind();.for.($i.=.0
72620 3b 20 24 69 20 3c 20 24 6f 66 66 73 65 74 3b 20 24 69 2b 2b 2c 20 24 74 68 69 73 2d 3e 6e 65 78 ;.$i.<.$offset;.$i++,.$this->nex
72640 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e t());.}..........public.function
72660 20 72 65 6d 6f 76 65 28 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 24 74 68 69 73 2d 3e 6b 65 79 .remove().{.$offset.=.$this->key
72680 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 55 6e 73 65 74 28 24 6f 66 66 73 65 74 29 3b ();.$this->offsetUnset($offset);
726a0 0a 24 74 68 69 73 2d 3e 73 65 65 6b 28 24 6f 66 66 73 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 .$this->seek($offset);.}.}.<?php
726c0 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
726e0 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
72700 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 61 63 65 3b \Repository\RepositoryInterface;
72720 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 6f 72 .use.Composer\Repository\Platfor
72740 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 0a 7b 0a mRepository;.....class.Solver.{.
72760 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a 63 6f 6e 73 74 const.BRANCH_LITERALS.=.0;.const
72780 20 42 52 41 4e 43 48 5f 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 .BRANCH_LEVEL.=.1;..protected.$p
727a0 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 olicy;.protected.$pool;.protecte
727c0 64 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a d.$installed;.protected.$rules;.
727e0 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 3b 0a 70 72 6f protected.$ruleSetGenerator;.pro
72800 74 65 63 74 65 64 20 24 75 70 64 61 74 65 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 tected.$updateAll;..protected.$a
72820 64 64 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 ddedMap.=.array();.protected.$up
72840 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 dateMap.=.array();.protected.$wa
72860 74 63 68 47 72 61 70 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a tchGraph;.protected.$decisions;.
72880 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 72 6f 74 65 63 protected.$installedMap;..protec
728a0 74 65 64 20 24 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ted.$propagateIndex;.protected.$
728c0 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 branches.=.array();.protected.$p
728e0 72 6f 62 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 roblems.=.array();.protected.$le
72900 61 72 6e 65 64 50 6f 6f 6c 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 arnedPool.=.array();.protected.$
72920 6c 65 61 72 6e 65 64 57 68 79 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 learnedWhy.=.array();..public.fu
72940 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 nction.__construct(PolicyInterfa
72960 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 69 74 6f ce.$policy,.Pool.$pool,.Reposito
72980 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 29 0a 7b 0a 24 74 68 69 73 2d ryInterface.$installed).{.$this-
729a0 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d >policy.=.$policy;.$this->pool.=
729c0 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 6e 73 74 .$pool;.$this->installed.=.$inst
729e0 61 6c 6c 65 64 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 20 3d alled;.$this->ruleSetGenerator.=
72a00 20 6e 65 77 20 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 2c 20 24 .new.RuleSetGenerator($policy,.$
72a20 70 6f 6f 6c 29 3b 0a 7d 0a 0a 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b pool);.}....private.function.mak
72a40 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 64 65 63 eAssertionRuleDecisions().{.$dec
72a60 69 73 69 6f 6e 53 74 61 72 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 isionStart.=.count($this->decisi
72a80 6f 6e 73 29 20 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 ons).-.1;..$rulesCount.=.count($
72aa0 74 68 69 73 2d 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 this->rules);.for.($ruleIndex.=.
72ac0 30 3b 20 24 72 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 0;.$ruleIndex.<.$rulesCount;.$ru
72ae0 6c 65 49 6e 64 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 leIndex++).{.$rule.=.$this->rule
72b00 73 2d 3e 72 75 6c 65 42 79 49 64 5b 24 72 75 6c 65 49 6e 64 65 78 5d 3b 0a 0a 69 66 20 28 21 24 s->ruleById[$ruleIndex];..if.(!$
72b20 72 75 6c 65 2d 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 rule->isAssertion().||.$rule->is
72b40 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 6c 69 74 65 Disabled()).{.continue;.}..$lite
72b60 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 6c 69 74 65 72 61 6c rals.=.$rule->literals;.$literal
72b80 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
72ba0 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)))
72bc0 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
72be0 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
72c00 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
72c20 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
72c40 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
72c60 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
72c80 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
72ca0 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);..
72cc0 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
72ce0 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())
72d00 20 7b 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d .{.$problem.=.new.Problem($this-
72d20 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 65 >pool);..$problem->addRule($rule
72d40 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 3b );.$problem->addRule($conflict);
72d60 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 24 .$this->disableProblem($rule);.$
72d80 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 6e this->problems[].=.$problem;.con
72da0 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 6c tinue;.}....$problem.=.new.Probl
72dc0 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 75 em($this->pool);.$problem->addRu
72de0 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 6f le($rule);.$problem->addRule($co
72e00 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 75 nflict);......foreach.($this->ru
72e20 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 50 les->getIteratorFor(RuleSet::TYP
72e40 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 73 E_JOB).as.$assertRule).{.if.($as
72e60 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 65 sertRule->isDisabled().||.!$asse
72e80 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 75 rtRule->isAssertion()).{.continu
72ea0 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 73 e;.}..$assertRuleLiterals.=.$ass
72ec0 65 72 74 52 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 ertRule->literals;.$assertRuleLi
72ee0 74 65 72 61 6c 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a teral.=.$assertRuleLiterals[0];.
72f00 0a 69 66 20 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 20 21 3d 3d 20 61 62 73 28 24 61 73 73 65 .if.(abs($literal).!==.abs($asse
72f20 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 rtRuleLiteral)).{.continue;.}..$
72f40 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 24 problem->addRule($assertRule);.$
72f60 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 61 73 73 65 72 74 52 75 6c 65 this->disableProblem($assertRule
72f80 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 );.}.$this->problems[].=.$proble
72fa0 6d 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 54 6f 4f 66 66 m;..$this->decisions->resetToOff
72fc0 73 65 74 28 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 29 3b 0a 24 72 75 6c 65 49 6e 64 65 78 20 set($decisionStart);.$ruleIndex.
72fe0 3d 20 2d 31 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 =.-1;.}.}..protected.function.se
73000 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 tupInstalledMap().{.$this->insta
73020 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 lledMap.=.array();.foreach.($thi
73040 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 s->installed->getPackages().as.$
73060 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 package).{.$this->installedMap[$
73080 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 70 72 package->id].=.$package;.}.}..pr
730a0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 46 6f 72 52 6f 6f 74 52 65 71 otected.function.checkForRootReq
730c0 75 69 72 65 50 72 6f 62 6c 65 6d 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 uireProblems($ignorePlatformReqs
730e0 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 ).{.foreach.($this->jobs.as.$job
73100 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 73 65 20 ).{.switch.($job['cmd']).{.case.
73120 27 75 70 64 61 74 65 27 3a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 'update':.$packages.=.$this->poo
73140 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d l->whatProvides($job['packageNam
73160 65 27 5d 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 66 6f 72 65 61 63 e'],.$job['constraint']);.foreac
73180 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 h.($packages.as.$package).{.if.(
731a0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 isset($this->installedMap[$packa
731c0 67 65 2d 3e 69 64 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 ge->id])).{.$this->updateMap[$pa
731e0 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 ckage->id].=.true;.}.}.break;..c
73200 61 73 65 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ase.'update-all':.foreach.($this
73220 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 ->installedMap.as.$package).{.$t
73240 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 69 64 5d 20 3d 20 74 his->updateMap[$package->id].=.t
73260 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 rue;.}.break;..case.'install':.i
73280 66 20 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 26 26 20 70 72 65 67 5f 6d f.($ignorePlatformReqs.&&.preg_m
732a0 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 54 46 4f 52 atch(PlatformRepository::PLATFOR
732c0 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 M_PACKAGE_REGEX,.$job['packageNa
732e0 6d 65 27 5d 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 me'])).{.break;.}..if.(!$this->p
73300 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e ool->whatProvides($job['packageN
73320 61 6d 65 27 5d 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 29 20 7b 0a 24 70 ame'],.$job['constraint'])).{.$p
73340 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c roblem.=.new.Problem($this->pool
73360 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 6e 65 77 20 52 75 6c 65 28 61 72 );.$problem->addRule(new.Rule(ar
73380 72 61 79 28 29 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 6a 6f 62 29 29 3b 0a 24 74 68 69 73 ray(),.null,.null,.$job));.$this
733a0 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 7d 0a 62 72 65 61 6b ->problems[].=.$problem;.}.break
733c0 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 73 6f 6c 76 65 28 52 ;.}.}.}..public.function.solve(R
733e0 65 71 75 65 73 74 20 24 72 65 71 75 65 73 74 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d equest.$request,.$ignorePlatform
73400 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 72 Reqs.=.false).{.$this->jobs.=.$r
73420 65 71 75 65 73 74 2d 3e 67 65 74 4a 6f 62 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 75 70 equest->getJobs();..$this->setup
73440 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 InstalledMap();.$this->rules.=.$
73460 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2d 3e 67 65 74 52 75 6c 65 73 this->ruleSetGenerator->getRules
73480 46 6f 72 28 24 74 68 69 73 2d 3e 6a 6f 62 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 For($this->jobs,.$this->installe
734a0 64 4d 61 70 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 dMap,.$ignorePlatformReqs);.$thi
734c0 73 2d 3e 63 68 65 63 6b 46 6f 72 52 6f 6f 74 52 65 71 75 69 72 65 50 72 6f 62 6c 65 6d 73 28 24 s->checkForRootRequireProblems($
734e0 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 ignorePlatformReqs);.$this->deci
73500 73 69 6f 6e 73 20 3d 20 6e 65 77 20 44 65 63 69 73 69 6f 6e 73 28 24 74 68 69 73 2d 3e 70 6f 6f sions.=.new.Decisions($this->poo
73520 6c 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 20 3d 20 6e 65 77 20 52 75 6c 65 l);.$this->watchGraph.=.new.Rule
73540 57 61 74 63 68 47 72 61 70 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c WatchGraph;..foreach.($this->rul
73560 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 es.as.$rule).{.$this->watchGraph
73580 2d 3e 69 6e 73 65 72 74 28 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 72 75 6c 65 ->insert(new.RuleWatchNode($rule
735a0 29 29 3b 0a 7d 0a 0a 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 ));.}...$this->makeAssertionRule
735c0 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 53 61 74 28 74 72 75 65 Decisions();..$this->runSat(true
735e0 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d );....foreach.($this->installedM
73600 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 69 66 20 ap.as.$packageId.=>.$void).{.if.
73620 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 70 61 ($this->decisions->undecided($pa
73640 63 6b 61 67 65 49 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 ckageId)).{.$this->decisions->de
73660 63 69 64 65 28 2d 24 70 61 63 6b 61 67 65 49 64 2c 20 31 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a cide(-$packageId,.1,.null);.}.}.
73680 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .if.($this->problems).{.throw.ne
736a0 77 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d w.SolverProblemsException($this-
736c0 3e 70 72 6f 62 6c 65 6d 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b >problems,.$this->installedMap);
736e0 0a 7d 0a 0a 24 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 6e 65 77 20 54 72 61 6e 73 61 63 74 69 .}..$transaction.=.new.Transacti
73700 6f 6e 28 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 on($this->policy,.$this->pool,.$
73720 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 74 68 69 73 2d 3e 64 65 63 69 73 this->installedMap,.$this->decis
73740 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 2d 3e 67 65 74 ions);..return.$transaction->get
73760 4f 70 65 72 61 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 Operations();.}..protected.funct
73780 69 6f 6e 20 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 69 64 29 0a 7b 0a 24 70 61 63 6b 61 67 ion.literalFromId($id).{.$packag
737a0 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 61 62 73 e.=.$this->pool->packageById(abs
737c0 28 24 69 64 29 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 4c 69 74 65 72 61 6c 28 24 70 61 63 ($id));..return.new.Literal($pac
737e0 6b 61 67 65 2c 20 24 69 64 20 3e 20 30 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 kage,.$id.>.0);.}...........prot
73800 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 ected.function.propagate($level)
73820 0a 7b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 76 61 6c 69 .{.while.($this->decisions->vali
73840 64 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 29 20 dOffset($this->propagateIndex)).
73860 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e {.$decision.=.$this->decisions->
73880 61 74 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 3b atOffset($this->propagateIndex);
738a0 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d ..$conflict.=.$this->watchGraph-
738c0 3e 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 0a 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 >propagateLiteral(.$decision[Dec
738e0 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 2c 0a 24 6c 65 76 65 isions::DECISION_LITERAL],.$leve
73900 6c 2c 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 l,.$this->decisions.);..$this->p
73920 72 6f 70 61 67 61 74 65 49 6e 64 65 78 2b 2b 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 29 ropagateIndex++;..if.($conflict)
73940 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 6c 69 63 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e .{.return.$conflict;.}.}..return
73960 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 .null;.}.....private.function.re
73980 76 65 72 74 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 21 24 74 68 69 73 2d 3e 64 65 vert($level).{.while.(!$this->de
739a0 63 69 73 69 6f 6e 73 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d cisions->isEmpty()).{.$literal.=
739c0 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 .$this->decisions->lastLiteral()
739e0 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 ;..if.($this->decisions->undecid
73a00 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 63 69 73 ed($literal)).{.break;.}..$decis
73a20 69 6f 6e 4c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 ionLevel.=.$this->decisions->dec
73a40 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 64 65 63 69 isionLevel($literal);..if.($deci
73a60 73 69 6f 6e 4c 65 76 65 6c 20 3c 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a sionLevel.<=.$level).{.break;.}.
73a80 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 76 65 72 74 4c 61 73 74 28 29 3b .$this->decisions->revertLast();
73aa0 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 63 6f 75 6e 74 28 24 .$this->propagateIndex.=.count($
73ac0 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 this->decisions);.}..while.(!emp
73ae0 74 79 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 26 26 20 24 74 68 69 73 2d 3e 62 72 ty($this->branches).&&.$this->br
73b00 61 6e 63 68 65 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 anches[count($this->branches).-.
73b20 31 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 45 56 45 4c 5d 20 3e 3d 20 24 6c 65 76 65 6c 1][self::BRANCH_LEVEL].>=.$level
73b40 29 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 3b 0a ).{.array_pop($this->branches);.
73b60 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 }.}.................private.func
73b80 74 69 6f 6e 20 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 tion.setPropagateLearn($level,.$
73ba0 6c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 literal,.$disableRules,.Rule.$ru
73bc0 6c 65 29 0a 7b 0a 24 6c 65 76 65 6c 2b 2b 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e le).{.$level++;..$this->decision
73be0 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 72 75 6c s->decide($literal,.$level,.$rul
73c00 65 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 e);..while.(true).{.$rule.=.$thi
73c20 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c s->propagate($level);..if.(!$rul
73c40 65 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 31 29 20 e).{.break;.}..if.($level.==.1).
73c60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c {.return.$this->analyzeUnsolvabl
73c80 65 28 24 72 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 3b 0a 7d 0a 0a 0a 20 6c 69 e($rule,.$disableRules);.}....li
73ca0 73 74 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6e 65 77 4c 65 76 65 6c 2c 20 24 6e 65 st($learnLiteral,.$newLevel,.$ne
73cc0 77 52 75 6c 65 2c 20 24 77 68 79 29 20 3d 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 28 24 6c wRule,.$why).=.$this->analyze($l
73ce0 65 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 24 6e 65 77 4c 65 76 65 6c 20 3c 3d 20 evel,.$rule);..if.($newLevel.<=.
73d00 30 20 7c 7c 20 24 6e 65 77 4c 65 76 65 6c 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 74 68 72 6f 0.||.$newLevel.>=.$level).{.thro
73d20 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e w.new.SolverBugException(."Tryin
73d40 67 20 74 6f 20 72 65 76 65 72 74 20 74 6f 20 69 6e 76 61 6c 69 64 20 6c 65 76 65 6c 20 22 2e 28 g.to.revert.to.invalid.level.".(
73d60 69 6e 74 29 20 24 6e 65 77 4c 65 76 65 6c 2e 22 20 66 72 6f 6d 20 6c 65 76 65 6c 20 22 2e 28 69 int).$newLevel.".from.level.".(i
73d80 6e 74 29 20 24 6c 65 76 65 6c 2e 22 2e 22 0a 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 6e 65 nt).$level.".".);.}.elseif.(!$ne
73da0 77 52 75 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 wRule).{.throw.new.SolverBugExce
73dc0 70 74 69 6f 6e 28 0a 22 4e 6f 20 72 75 6c 65 20 77 61 73 20 6c 65 61 72 6e 65 64 20 66 72 6f 6d ption(."No.rule.was.learned.from
73de0 20 61 6e 61 6c 79 7a 69 6e 67 20 24 72 75 6c 65 20 61 74 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c .analyzing.$rule.at.level.$level
73e00 2e 22 0a 29 3b 0a 7d 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6e 65 77 4c 65 76 65 6c 3b 0a 0a 24 74 .".);.}..$level.=.$newLevel;..$t
73e20 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c his->revert($level);..$this->rul
73e40 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f es->add($newRule,.RuleSet::TYPE_
73e60 4c 45 41 52 4e 45 44 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 6e 65 LEARNED);..$this->learnedWhy[$ne
73e80 77 52 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 77 68 79 3b 0a 0a 24 72 75 6c 65 4e 6f wRule->getId()].=.$why;..$ruleNo
73ea0 64 65 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 6e 65 77 52 75 6c 65 29 de.=.new.RuleWatchNode($newRule)
73ec0 3b 0a 24 72 75 6c 65 4e 6f 64 65 2d 3e 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 24 74 68 ;.$ruleNode->watch2OnHighest($th
73ee0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 is->decisions);.$this->watchGrap
73f00 68 2d 3e 69 6e 73 65 72 74 28 24 72 75 6c 65 4e 6f 64 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 h->insert($ruleNode);..$this->de
73f20 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 cisions->decide($learnLiteral,.$
73f40 6c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 65 76 level,.$newRule);.}..return.$lev
73f60 65 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 41 6e el;.}..private.function.selectAn
73f80 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 61 72 72 61 79 20 24 64 65 63 69 73 69 6f 6e dInstall($level,.array.$decision
73fa0 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 Queue,.$disableRules,.Rule.$rule
73fc0 29 0a 7b 0a 0a 20 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d ).{...$literals.=.$this->policy-
73fe0 3e 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 >selectPreferedPackages($this->p
74000 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 ool,.$this->installedMap,.$decis
74020 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 72 65 64 50 61 63 6b ionQueue,.$rule->getRequiredPack
74040 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 20 3d 20 61 72 72 61 age());..$selectedLiteral.=.arra
74060 79 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 y_shift($literals);....if.(count
74080 28 24 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 5d ($literals)).{.$this->branches[]
740a0 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a .=.array($literals,.$level);.}..
740c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 return.$this->setPropagateLearn(
740e0 24 6c 65 76 65 6c 2c 20 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 $level,.$selectedLiteral,.$disab
74100 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 leRules,.$rule);.}..protected.fu
74120 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 0a 7b 0a nction.analyze($level,.$rule).{.
74140 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 24 72 75 6c 65 4c 65 76 65 $analyzedRule.=.$rule;.$ruleLeve
74160 6c 20 3d 20 31 3b 0a 24 6e 75 6d 20 3d 20 30 3b 0a 24 6c 31 6e 75 6d 20 3d 20 30 3b 0a 24 73 65 l.=.1;.$num.=.0;.$l1num.=.0;.$se
74180 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 3d en.=.array();.$learnedLiterals.=
741a0 20 61 72 72 61 79 28 6e 75 6c 6c 29 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 20 3d 20 63 6f 75 .array(null);..$decisionId.=.cou
741c0 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 nt($this->decisions);..$this->le
741e0 61 72 6e 65 64 50 6f 6f 6c 5b 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 74 arnedPool[].=.array();..while.(t
74200 72 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 63 6f 75 6e 74 28 rue).{.$this->learnedPool[count(
74220 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 20 2d 20 31 5d 5b 5d 20 3d 20 24 72 75 $this->learnedPool).-.1][].=.$ru
74240 6c 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 le;..foreach.($rule->literals.as
74260 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 .$literal).{...if.($this->decisi
74280 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e ons->satisfy($literal)).{.contin
742a0 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 ue;.}..if.(isset($seen[abs($lite
742c0 72 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 ral)])).{.continue;.}.$seen[abs(
742e0 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 24 6c 20 3d 20 24 74 68 69 73 2d 3e $literal)].=.true;..$l.=.$this->
74300 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 decisions->decisionLevel($litera
74320 6c 29 3b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 29 20 7b 0a 24 6c 31 6e 75 6d 2b 2b 3b 0a 7d l);..if.(1.===.$l).{.$l1num++;.}
74340 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 3d 20 24 6c 29 20 7b 0a 24 6e 75 6d 2b 2b .elseif.($level.===.$l).{.$num++
74360 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 5d 20 ;.}.else.{...$learnedLiterals[].
74380 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 24 6c 20 3e 20 24 72 75 6c 65 4c 65 76 65 6c =.$literal;..if.($l.>.$ruleLevel
743a0 29 20 7b 0a 24 72 75 6c 65 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6c 31 72 ).{.$ruleLevel.=.$l;.}.}.}..$l1r
743c0 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 77 68 69 6c 65 20 28 24 6c 31 72 65 74 72 79 29 20 7b 0a etry.=.true;.while.($l1retry).{.
743e0 24 6c 31 72 65 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 21 24 6e 75 6d 20 26 26 20 $l1retry.=.false;..if.(!$num.&&.
74400 21 2d 2d 24 6c 31 6e 75 6d 29 20 7b 0a 0a 20 62 72 65 61 6b 20 32 3b 0a 7d 0a 0a 77 68 69 6c 65 !--$l1num).{...break.2;.}..while
74420 20 28 74 72 75 65 29 20 7b 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 49 64 20 3c 3d 20 30 29 20 .(true).{.if.($decisionId.<=.0).
74440 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 0a {.throw.new.SolverBugException(.
74460 22 52 65 61 63 68 65 64 20 69 6e 76 61 6c 69 64 20 64 65 63 69 73 69 6f 6e 20 69 64 20 24 64 65 "Reached.invalid.decision.id.$de
74480 63 69 73 69 6f 6e 49 64 20 77 68 69 6c 65 20 6c 6f 6f 6b 69 6e 67 20 74 68 72 6f 75 67 68 20 24 cisionId.while.looking.through.$
744a0 72 75 6c 65 20 66 6f 72 20 61 20 6c 69 74 65 72 61 6c 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 rule.for.a.literal.present.in.th
744c0 65 20 61 6e 61 6c 79 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 2e 22 0a e.analyzed.rule.$analyzedRule.".
744e0 29 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 2d 2d 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 20 );.}..$decisionId--;..$decision.
74500 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 64 65 =.$this->decisions->atOffset($de
74520 63 69 73 69 6f 6e 49 64 29 3b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b cisionId);.$literal.=.$decision[
74540 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 0a 69 Decisions::DECISION_LITERAL];..i
74560 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 f.(isset($seen[abs($literal)])).
74580 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c {.break;.}.}..unset($seen[abs($l
745a0 69 74 65 72 61 6c 29 5d 29 3b 0a 0a 69 66 20 28 24 6e 75 6d 20 26 26 20 30 20 3d 3d 3d 20 2d 2d iteral)]);..if.($num.&&.0.===.--
745c0 24 6e 75 6d 29 20 7b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 20 3d 20 2d 61 $num).{.$learnedLiterals[0].=.-a
745e0 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6c 31 6e 75 6d 29 20 7b 0a 62 72 bs($literal);..if.(!$l1num).{.br
74600 65 61 6b 20 32 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 eak.2;.}..foreach.($learnedLiter
74620 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 20 7b 0a als.as.$i.=>.$learnedLiteral).{.
74640 69 66 20 28 24 69 20 21 3d 3d 20 30 29 20 7b 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 if.($i.!==.0).{.unset($seen[abs(
74660 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 5d 29 3b 0a 7d 0a 7d 0a 0a 20 24 6c 31 6e 75 6d $learnedLiteral)]);.}.}...$l1num
74680 2b 2b 3b 0a 24 6c 31 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 64 65 63 69 73 ++;.$l1retry.=.true;.}.}..$decis
746a0 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 ion.=.$this->decisions->atOffset
746c0 28 24 64 65 63 69 73 69 6f 6e 49 64 29 3b 0a 24 72 75 6c 65 20 3d 20 24 64 65 63 69 73 69 6f 6e ($decisionId);.$rule.=.$decision
746e0 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a [Decisions::DECISION_REASON];.}.
74700 0a 24 77 68 79 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c .$why.=.count($this->learnedPool
74720 29 20 2d 20 31 3b 0a 0a 69 66 20 28 21 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d ).-.1;..if.(!$learnedLiterals[0]
74740 29 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 ).{.throw.new.SolverBugException
74760 28 0a 22 44 69 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 6c 65 61 72 6e 61 62 6c 65 20 6c 69 74 65 (."Did.not.find.a.learnable.lite
74780 72 61 6c 20 69 6e 20 61 6e 61 6c 79 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 ral.in.analyzed.rule.$analyzedRu
747a0 6c 65 2e 22 0a 29 3b 0a 7d 0a 0a 24 6e 65 77 52 75 6c 65 20 3d 20 6e 65 77 20 52 75 6c 65 28 24 le.".);.}..$newRule.=.new.Rule($
747c0 6c 65 61 72 6e 65 64 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 learnedLiterals,.Rule::RULE_LEAR
747e0 4e 45 44 2c 20 24 77 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 NED,.$why);..return.array($learn
74800 65 64 4c 69 74 65 72 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 edLiterals[0],.$ruleLevel,.$newR
74820 75 6c 65 2c 20 24 77 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 ule,.$why);.}..private.function.
74840 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,.
74860 24 63 6f 6e 66 6c 69 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 $conflictRule).{.$why.=.$conflic
74880 74 52 75 6c 65 2d 3e 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 tRule->getId();..if.($conflictRu
748a0 6c 65 2d 3e 67 65 74 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 le->getType().==.RuleSet::TYPE_L
748c0 45 41 52 4e 45 44 29 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 EARNED).{.$learnedWhy.=.$this->l
748e0 65 61 72 6e 65 64 57 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 earnedWhy[$why];.$problemRules.=
74900 20 24 74 68 69 73 2d 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 .$this->learnedPool[$learnedWhy]
74920 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 ;..foreach.($problemRules.as.$pr
74940 6f 62 6c 65 6d 52 75 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 oblemRule).{.$this->analyzeUnsol
74960 76 61 62 6c 65 52 75 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 vableRule($problem,.$problemRule
74980 29 3b 0a 7d 0a 0a 72 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 );.}..return;.}..if.($conflictRu
749a0 6c 65 2d 3e 67 65 74 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 le->getType().==.RuleSet::TYPE_P
749c0 41 43 4b 41 47 45 29 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 ACKAGE).{...return;.}..$problem-
749e0 3e 6e 65 78 74 53 65 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 >nextSection();.$problem->addRul
74a00 65 28 24 63 6f 6e 66 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 e($conflictRule);.}..private.fun
74a20 63 74 69 6f 6e 20 61 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 ction.analyzeUnsolvable($conflic
74a40 74 52 75 6c 65 2c 20 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 tRule,.$disableRules).{.$problem
74a60 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 .=.new.Problem($this->pool);.$pr
74a80 6f 62 6c 65 6d 2d 3e 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 oblem->addRule($conflictRule);..
74aa0 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
74ac0 6f 62 6c 65 6d 2c 20 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 oblem,.$conflictRule);..$this->p
74ae0 72 6f 62 6c 65 6d 73 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 roblems[].=.$problem;..$seen.=.a
74b00 72 72 61 79 28 29 3b 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 rray();.$literals.=.$conflictRul
74b20 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 e->literals;..foreach.($literals
74b40 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 .as.$literal).{...if.($this->dec
74b60 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e isions->satisfy($literal)).{.con
74b80 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 tinue;.}.$seen[abs($literal)].=.
74ba0 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f true;.}..foreach.($this->decisio
74bc0 6e 73 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 ns.as.$decision).{.$literal.=.$d
74be0 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 ecision[Decisions::DECISION_LITE
74c00 52 41 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 RAL];....if.(!isset($seen[abs($l
74c20 69 74 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 iteral)])).{.continue;.}..$why.=
74c40 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 52 .$decision[Decisions::DECISION_R
74c60 45 41 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 EASON];..$problem->addRule($why)
74c80 3b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 ;.$this->analyzeUnsolvableRule($
74ca0 70 72 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 problem,.$why);..$literals.=.$wh
74cc0 79 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 y->literals;..foreach.($literals
74ce0 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 .as.$literal).{...if.($this->dec
74d00 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e isions->satisfy($literal)).{.con
74d20 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 tinue;.}.$seen[abs($literal)].=.
74d40 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 20 7b 0a true;.}.}..if.($disableRules).{.
74d60 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 63 6f 75 6e 74 28 24 foreach.($this->problems[count($
74d80 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 20 24 72 65 61 73 6f 6e 29 this->problems).-.1].as.$reason)
74da0 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 65 61 73 6f 6e .{.$this->disableProblem($reason
74dc0 5b 27 72 75 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 53 6f 6c 76 65 72 ['rule']);.}..$this->resetSolver
74de0 28 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 ();..return.1;.}..return.0;.}..p
74e00 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 rivate.function.disableProblem($
74e20 77 68 79 29 0a 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 65 74 4a 6f 62 28 29 3b 0a 0a 69 why).{.$job.=.$why->getJob();..i
74e40 66 20 28 21 24 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 0a 72 65 f.(!$job).{.$why->disable();..re
74e60 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 turn;.}....foreach.($this->rules
74e80 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 6a 6f 62 20 3d 3d 3d 20 24 72 75 6c 65 2d .as.$rule).{.if.($job.===.$rule-
74ea0 3e 67 65 74 4a 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d >getJob()).{.$rule->disable();.}
74ec0 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 53 6f 6c 76 .}.}..private.function.resetSolv
74ee0 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 28 29 er().{.$this->decisions->reset()
74f00 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 24 74 ;..$this->propagateIndex.=.0;.$t
74f20 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d his->branches.=.array();..$this-
74f40 3e 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 3b 0a 24 74 >enableDisableLearnedRules();.$t
74f60 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 his->makeAssertionRuleDecisions(
74f80 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 65 6e );.}.........private.function.en
74fa0 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 0a 7b 0a 66 6f 72 65 ableDisableLearnedRules().{.fore
74fc0 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f ach.($this->rules->getIteratorFo
74fe0 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 61 73 20 24 72 75 6c r(RuleSet::TYPE_LEARNED).as.$rul
75000 65 29 20 7b 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 72 e).{.$why.=.$this->learnedWhy[$r
75020 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 ule->getId()];.$problemRules.=.$
75040 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 77 68 79 5d 3b 0a 0a 24 66 6f 75 6e 64 this->learnedPool[$why];..$found
75060 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 Disabled.=.false;.foreach.($prob
75080 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 69 66 20 28 lemRules.as.$problemRule).{.if.(
750a0 24 70 72 6f 62 6c 65 6d 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 66 $problemRule->isDisabled()).{.$f
750c0 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a oundDisabled.=.true;.break;.}.}.
750e0 0a 69 66 20 28 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 .if.($foundDisabled.&&.$rule->is
75100 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d Enabled()).{.$rule->disable();.}
75120 20 65 6c 73 65 69 66 20 28 21 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c .elseif.(!$foundDisabled.&&.$rul
75140 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 65 6e 61 62 6c 65 e->isDisabled()).{.$rule->enable
75160 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 53 ();.}.}.}..private.function.runS
75180 61 74 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 at($disableRules.=.true).{.$this
751a0 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a ->propagateIndex.=.0;...........
751c0 20 0a 20 0a 20 0a 20 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 .........$decisionQueue.=.array(
751e0 29 3b 0a 24 64 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 6d 65 6e 74 51 75 65 75 65 20 3d 20 61 72 );.$decisionSupplementQueue.=.ar
75200 72 61 79 28 29 3b 0a 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ray();.$disableRules.=.array();.
75220 0a 24 6c 65 76 65 6c 20 3d 20 31 3b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 .$level.=.1;.$systemLevel.=.$lev
75240 65 6c 20 2b 20 31 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 68 69 6c el.+.1;.$installedPos.=.0;..whil
75260 65 20 28 74 72 75 65 29 20 7b 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 24 e.(true).{.if.(1.===.$level).{.$
75280 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 conflictRule.=.$this->propagate(
752a0 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 52 $level);.if.(null.!==.$conflictR
752c0 75 6c 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 ule).{.if.($this->analyzeUnsolva
752e0 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 ble($conflictRule,.$disableRules
75300 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a )).{.continue;.}..return;.}.}...
75320 20 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 69 .if.($level.<.$systemLevel).{.$i
75340 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 terator.=.$this->rules->getItera
75360 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 3b 0a 66 6f 72 65 61 torFor(RuleSet::TYPE_JOB);.forea
75380 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 ch.($iterator.as.$rule).{.if.($r
753a0 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 ule->isEnabled()).{.$decisionQue
753c0 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 74 ue.=.array();.$noneSatisfied.=.t
753e0 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 20 61 rue;..foreach.($rule->literals.a
75400 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f s.$literal).{.if.($this->decisio
75420 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 24 6e 6f 6e 65 53 61 ns->satisfy($literal)).{.$noneSa
75440 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6c tisfied.=.false;.break;.}.if.($l
75460 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e iteral.>.0.&&.$this->decisions->
75480 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e undecided($literal)).{.$decision
754a0 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f Queue[].=.$literal;.}.}..if.($no
754c0 6e 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 neSatisfied.&&.count($decisionQu
754e0 65 75 65 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 6e 73 eue)).{.....if.(count($this->ins
75500 74 61 6c 6c 65 64 29 20 21 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 talled).!=.count($this->updateMa
75520 70 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f p)).{.$prunedQueue.=.array();.fo
75540 72 65 61 63 68 20 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 6c 69 74 65 72 61 reach.($decisionQueue.as.$litera
75560 6c 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d l).{.if.(isset($this->installedM
75580 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 ap[abs($literal)])).{.$prunedQue
755a0 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 ue[].=.$literal;.if.(isset($this
755c0 2d 3e 75 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 ->updateMap[abs($literal)])).{.$
755e0 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 3b 0a 62 72 prunedQueue.=.$decisionQueue;.br
75600 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 24 70 72 75 eak;.}.}.}.$decisionQueue.=.$pru
75620 6e 65 64 51 75 65 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 nedQueue;.}.}..if.($noneSatisfie
75640 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 6f d.&&.count($decisionQueue)).{.$o
75660 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e Level.=.$level;.$level.=.$this->
75680 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 selectAndInstall($level,.$decisi
756a0 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a onQueue,.$disableRules,.$rule);.
756c0 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 .if.(0.===.$level).{.return;.}.i
756e0 66 20 28 24 6c 65 76 65 6c 20 3c 3d 20 24 6f 4c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d f.($level.<=.$oLevel).{.break;.}
75700 0a 7d 0a 7d 0a 7d 0a 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 .}.}.}..$systemLevel.=.$level.+.
75720 31 3b 0a 0a 0a 20 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 24 69 74 1;....$iterator->next();.if.($it
75740 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d erator->valid()).{.continue;.}.}
75760 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 ..if.($level.<.$systemLevel).{.$
75780 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 systemLevel.=.$level;.}..for.($i
757a0 20 3d 20 30 2c 20 24 6e 20 3d 20 30 3b 20 24 6e 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e .=.0,.$n.=.0;.$n.<.count($this->
757c0 72 75 6c 65 73 29 3b 20 24 69 2b 2b 2c 20 24 6e 2b 2b 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d 20 rules);.$i++,.$n++).{.if.($i.==.
757e0 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 29 20 7b 0a 24 69 20 3d 20 30 3b 0a 7d count($this->rules)).{.$i.=.0;.}
75800 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 ..$rule.=.$this->rules->ruleById
75820 5b 24 69 5d 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c [$i];.$literals.=.$rule->literal
75840 73 3b 0a 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 s;..if.($rule->isDisabled()).{.c
75860 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 ontinue;.}..$decisionQueue.=.arr
75880 61 79 28 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 69 74 ay();..............foreach.($lit
758a0 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 erals.as.$literal).{.if.($litera
758c0 6c 20 3c 3d 20 30 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d l.<=.0).{.if.(!$this->decisions-
758e0 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 >decidedInstall(abs($literal))).
75900 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 {.continue.2;...}.}.else.{.if.($
75920 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 this->decisions->decidedInstall(
75940 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 abs($literal))).{.continue.2;...
75960 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 }.if.($this->decisions->undecide
75980 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 d(abs($literal))).{.$decisionQue
759a0 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f ue[].=.$literal;.}.}.}....if.(co
759c0 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3c 20 32 29 20 7b 0a 63 6f 6e 74 69 unt($decisionQueue).<.2).{.conti
759e0 6e 75 65 3b 0a 7d 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c nue;.}..$oLevel.=.$level;.$level
75a00 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
75a20 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
75a40 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
75a60 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 6e 20 3d 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 eturn;.}....$n.=.-1;.}..if.($lev
75a80 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d el.<.$systemLevel).{.continue;.}
75aa0 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 29 20 ....if.(count($this->branches)).
75ac0 7b 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c 65 76 65 {.$lastLiteral.=.null;.$lastLeve
75ae0 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 30 3b 0a l.=.null;.$lastBranchIndex.=.0;.
75b00 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 3b 0a 0a $lastBranchOffset.=.0;.$l.=.0;..
75b20 66 6f 72 20 28 24 69 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 for.($i.=.count($this->branches)
75b40 20 2d 20 31 3b 20 24 69 20 3e 3d 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 .-.1;.$i.>=.0;.$i--).{.list($lit
75b60 65 72 61 6c 73 2c 20 24 6c 29 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 69 5d erals,.$l).=.$this->branches[$i]
75b80 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6f 66 66 73 65 74 ;..foreach.($literals.as.$offset
75ba0 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 26 26 20 .=>.$literal).{.if.($literal.&&.
75bc0 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 $literal.>.0.&&.$this->decisions
75be0 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 20 3e 20 24 6c 20 2b ->decisionLevel($literal).>.$l.+
75c00 20 31 29 20 7b 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 .1).{.$lastLiteral.=.$literal;.$
75c20 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 24 69 3b 0a 24 6c 61 73 74 42 72 61 6e 63 lastBranchIndex.=.$i;.$lastBranc
75c40 68 4f 66 66 73 65 74 20 3d 20 24 6f 66 66 73 65 74 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 hOffset.=.$offset;.$lastLevel.=.
75c60 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 61 73 74 4c 69 74 65 72 61 6c 29 20 7b 0a 75 $l;.}.}.}..if.($lastLiteral).{.u
75c80 6e 73 65 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 nset($this->branches[$lastBranch
75ca0 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 5b 24 6c Index][self::BRANCH_LITERALS][$l
75cc0 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 5d 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 astBranchOffset]);..$level.=.$la
75ce0 73 74 4c 65 76 65 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a stLevel;.$this->revert($level);.
75d00 0a 24 77 68 79 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 52 65 .$why.=.$this->decisions->lastRe
75d20 61 73 6f 6e 28 29 3b 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 ason();..$oLevel.=.$level;.$leve
75d40 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 l.=.$this->setPropagateLearn($le
75d60 76 65 6c 2c 20 24 6c 61 73 74 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 vel,.$lastLiteral,.$disableRules
75d80 2c 20 24 77 68 79 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 ,.$why);..if.($level.==.0).{.ret
75da0 75 72 6e 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a urn;.}..continue;.}.}..break;.}.
75dc0 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
75de0 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
75e00 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
75e20 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c \LinkConstraintInterface;.....cl
75e40 61 73 73 20 52 65 71 75 65 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 ass.Request.{.protected.$jobs;.p
75e60 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 74 69 6f 6e rotected.$pool;..public.function
75e80 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 74 68 69 73 .__construct(Pool.$pool).{.$this
75ea0 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 ->pool.=.$pool;.$this->jobs.=.ar
75ec0 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 69 6e 73 74 61 6c ray();.}..public.function.instal
75ee0 6c 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e l($packageName,.LinkConstraintIn
75f00 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 terface.$constraint.=.null).{.$t
75f20 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 69 6e 73 74 61 his->addJob($packageName,.'insta
75f40 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ll',.$constraint);.}..public.fun
75f60 63 74 69 6f 6e 20 75 70 64 61 74 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 ction.update($packageName,.LinkC
75f80 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d onstraintInterface.$constraint.=
75fa0 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e .null).{.$this->addJob($packageN
75fc0 61 6d 65 2c 20 27 75 70 64 61 74 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a ame,.'update',.$constraint);.}..
75fe0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e public.function.remove($packageN
76000 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f ame,.LinkConstraintInterface.$co
76020 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 nstraint.=.null).{.$this->addJob
76040 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 ($packageName,.'remove',.$constr
76060 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 aint);.}.......public.function.f
76080 69 78 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 ix($packageName,.LinkConstraintI
760a0 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 nterface.$constraint.=.null).{.$
760c0 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 69 6e 73 74 this->addJob($packageName,.'inst
760e0 61 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 72 6f all',.$constraint,.true);.}..pro
76100 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e tected.function.addJob($packageN
76120 61 6d 65 2c 20 24 63 6d 64 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 ame,.$cmd,.LinkConstraintInterfa
76140 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 66 69 78 65 64 20 3d 20 ce.$constraint.=.null,.$fixed.=.
76160 66 61 6c 73 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 false).{.$packageName.=.strtolow
76180 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d er($packageName);..$this->jobs[]
761a0 20 3d 20 61 72 72 61 79 28 0a 27 63 6d 64 27 20 3d 3e 20 24 63 6d 64 2c 0a 27 70 61 63 6b 61 67 .=.array(.'cmd'.=>.$cmd,.'packag
761c0 65 4e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 27 63 6f 6e 73 74 72 61 eName'.=>.$packageName,.'constra
761e0 69 6e 74 27 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 27 66 69 78 65 64 27 20 3d 3e 20 int'.=>.$constraint,.'fixed'.=>.
76200 24 66 69 78 65 64 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 $fixed.);.}..public.function.upd
76220 61 74 65 41 6c 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 ateAll().{.$this->jobs[].=.array
76240 28 27 63 6d 64 27 20 3d 3e 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 29 3b 0a 7d 0a 0a 70 75 62 6c ('cmd'.=>.'update-all');.}..publ
76260 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ic.function.getJobs().{.return.$
76280 74 68 69 73 2d 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a this->jobs;.}.}.<?php...........
762a0 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
762c0 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a solver;.......class.Problem.{...
762e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 ..protected.$reasonSeen;......pr
76300 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f otected.$reasons.=.array();..pro
76320 74 65 63 74 65 64 20 24 73 65 63 74 69 6f 6e 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 tected.$section.=.0;..protected.
76340 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 $pool;..public.function.__constr
76360 75 63 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 uct(Pool.$pool).{.$this->pool.=.
76380 24 70 6f 6f 6c 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 $pool;.}.......public.function.a
763a0 64 64 52 75 6c 65 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 ddRule(Rule.$rule).{.$this->addR
763c0 65 61 73 6f 6e 28 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 2c 20 61 72 72 61 79 28 0a 27 72 75 eason($rule->getId(),.array(.'ru
763e0 6c 65 27 20 3d 3e 20 24 72 75 6c 65 2c 0a 27 6a 6f 62 27 20 3d 3e 20 24 72 75 6c 65 2d 3e 67 65 le'.=>.$rule,.'job'.=>.$rule->ge
76400 74 4a 6f 62 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tJob(),.));.}.......public.funct
76420 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getReasons().{.return.$this-
76440 3e 72 65 61 73 6f 6e 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 >reasons;.}........public.functi
76460 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c on.getPrettyString(array.$instal
76480 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 65 61 73 6f 6e 73 20 3d 20 63 ledMap.=.array()).{.$reasons.=.c
764a0 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 67 65 all_user_func_array('array_merge
764c0 27 2c 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 29 ',.array_reverse($this->reasons)
764e0 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 72 65 61 73 6f 6e 73 29 20 3d 3d 3d 20 31 29 20 7b );..if.(count($reasons).===.1).{
76500 0a 72 65 73 65 74 28 24 72 65 61 73 6f 6e 73 29 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 63 75 72 72 .reset($reasons);.$reason.=.curr
76520 65 6e 74 28 24 72 65 61 73 6f 6e 73 29 3b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b ent($reasons);..$rule.=.$reason[
76540 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 0a 'rule'];.$job.=.$reason['job'];.
76560 0a 69 66 20 28 69 73 73 65 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 29 20 .if.(isset($job['constraint'])).
76580 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 {.$packages.=.$this->pool->whatP
765a0 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 27 5d 2c 20 24 6a 6f rovides($job['packageName'],.$jo
765c0 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b b['constraint']);.}.else.{.$pack
765e0 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 6a 6f 62 20 26 26 20 24 ages.=.array();.}..if.($job.&&.$
76600 6a 6f 62 5b 27 63 6d 64 27 5d 20 3d 3d 3d 20 27 69 6e 73 74 61 6c 6c 27 20 26 26 20 65 6d 70 74 job['cmd'].===.'install'.&&.empt
76620 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 24 6a 6f 62 5b 27 70 61 63 6b y($packages)).{...if.($job['pack
76640 61 67 65 4e 61 6d 65 27 5d 20 3d 3d 3d 20 27 70 68 70 27 20 7c 7c 20 24 6a 6f 62 5b 27 70 61 63 ageName'].===.'php'.||.$job['pac
76660 6b 61 67 65 4e 61 6d 65 27 5d 20 3d 3d 3d 20 27 70 68 70 2d 36 34 62 69 74 27 20 7c 7c 20 24 6a kageName'].===.'php-64bit'.||.$j
76680 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a ob['packageName'].===.'hhvm').{.
766a0 24 6d 73 67 20 3d 20 22 5c 6e 20 20 20 20 2d 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 71 $msg.=."\n....-.This.package.req
766c0 75 69 72 65 73 20 22 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 uires.".$job['packageName'].$thi
766e0 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 s->constraintToText($job['constr
76700 61 69 6e 74 27 5d 29 2e 27 20 62 75 74 20 27 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 aint']).'.but.';..if.(defined('H
76720 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 73 67 20 2e 20 27 HVM_VERSION')).{.return.$msg...'
76740 79 6f 75 72 20 48 48 56 4d 20 76 65 72 73 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 73 61 74 69 73 your.HHVM.version.does.not.satis
76760 66 79 20 74 68 61 74 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 fy.that.requirement.';.}.elseif.
76780 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 20 3d 3d 3d 20 27 68 68 76 6d 27 29 ($job['packageName'].===.'hhvm')
767a0 20 7b 0a 72 65 74 75 72 6e 20 24 6d 73 67 20 2e 20 27 79 6f 75 20 61 72 65 20 72 75 6e 6e 69 6e .{.return.$msg...'you.are.runnin
767c0 67 20 74 68 69 73 20 77 69 74 68 20 50 48 50 20 61 6e 64 20 6e 6f 74 20 48 48 56 4d 2e 27 3b 0a g.this.with.PHP.and.not.HHVM.';.
767e0 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 73 67 20 2e 20 27 79 6f 75 72 20 50 48 50 20 76 65 72 73 69 }..return.$msg...'your.PHP.versi
76800 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 73 61 74 69 73 66 79 20 74 68 61 74 20 72 65 71 75 69 72 65 on.does.not.satisfy.that.require
76820 6d 65 6e 74 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 ment.';.}....if.(0.===.stripos($
76840 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 27 29 29 20 7b 0a 24 job['packageName'],.'ext-')).{.$
76860 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 65 4e 61 6d 65 27 5d ext.=.substr($job['packageName']
76880 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 6c 6f 61 64 65 64 28 ,.4);.$error.=.extension_loaded(
768a0 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 72 73 69 6f 6e 20 28 $ext).?.'has.the.wrong.version.(
768c0 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 27 29 2e 27 29 20 69 '.(phpversion($ext).?:.'0').').i
768e0 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 nstalled'.:.'is.missing.from.you
76900 72 20 73 79 73 74 65 6d 27 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 r.system';..return."\n....-.The.
76920 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 22 2e 24 6a 6f 62 5b 27 requested.PHP.extension.".$job['
76940 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 packageName'].$this->constraintT
76960 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 27 2e 24 65 oText($job['constraint']).'.'.$e
76980 72 72 6f 72 2e 27 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 rror.'.';.}....if.(0.===.stripos
769a0 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 27 6c 69 62 2d 27 29 29 20 7b ($job['packageName'],.'lib-')).{
769c0 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 6b 61 67 65 4e 61 6d .if.(strtolower($job['packageNam
769e0 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 72 6f 72 20 3d 20 65 e']).===.'lib-icu').{.$error.=.e
76a00 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 20 27 68 61 73 20 74 xtension_loaded('intl').?.'has.t
76a20 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 2c 20 74 72 79 20 he.wrong.version.installed,.try.
76a40 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 69 6f 6e 2e 27 20 3a upgrading.the.intl.extension.'.:
76a60 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d .'is.missing.from.your.system,.m
76a80 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 6f 6e 20 69 73 20 6c ake.sure.the.intl.extension.is.l
76aa0 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 20 54 68 65 20 72 65 oaded.';..return."\n....-.The.re
76ac0 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e 24 6a 6f 62 5b 27 70 quested.linked.library.".$job['p
76ae0 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f ackageName'].$this->constraintTo
76b00 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 27 2e 24 65 72 Text($job['constraint']).'.'.$er
76b20 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 68 65 20 72 65 71 75 ror;.}..return."\n....-.The.requ
76b40 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e 24 6a 6f 62 5b 27 70 61 63 ested.linked.library.".$job['pac
76b60 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 65 kageName'].$this->constraintToTe
76b80 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 68 61 73 20 74 68 65 xt($job['constraint']).'.has.the
76ba0 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 69 73 20 6d .wrong.version.installed.or.is.m
76bc0 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 issing.from.your.system,.make.su
76be0 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 70 72 6f 76 69 64 69 re.to.load.the.extension.providi
76c00 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 63 68 28 27 7b 5e 5b ng.it.';.}..if.(!preg_match('{^[
76c20 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 27 70 61 63 6b 61 67 A-Za-z0-9_./-]+$}',.$job['packag
76c40 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 20 3d 20 70 72 65 67 eName'])).{.$illegalChars.=.preg
76c60 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 5d 2b 7d 27 2c 20 27 _replace('{[A-Za-z0-9_./-]+}',.'
76c80 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 0a 72 65 74 75 72 6e ',.$job['packageName']);..return
76ca0 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 61 63 6b 61 67 65 20 ."\n....-.The.requested.package.
76cc0 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 6f 75 6c 64 20 6e 6f ".$job['packageName'].'.could.no
76ce0 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 20 69 74 73 20 6e 61 t.be.found,.it.looks.like.its.na
76d00 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 6c 43 68 61 72 73 2e me.is.invalid,."'.$illegalChars.
76d20 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 61 67 65 20 6e 61 6d '".is.not.allowed.in.package.nam
76d40 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 2d 3e 77 68 61 74 50 es.';.}..if.(!$this->pool->whatP
76d60 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 27 5d 29 29 20 7b 0a rovides($job['packageName'])).{.
76d80 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 61 return."\n....-.The.requested.pa
76da0 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 6f ckage.".$job['packageName'].'.co
76dc0 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 65 72 73 69 6f 6e 2c uld.not.be.found.in.any.version,
76de0 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 68 65 20 70 61 63 6b .there.may.be.a.typo.in.the.pack
76e00 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 20 20 20 20 2d 20 54 age.name.';.}..return."\n....-.T
76e20 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 he.requested.package.".$job['pac
76e40 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 65 kageName'].$this->constraintToTe
76e60 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 63 6f 75 6c 64 20 6e xt($job['constraint']).'.could.n
76e80 6f 74 20 62 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 ot.be.found.';.}.}..$messages.=.
76ea0 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 73 6f 6e 73 20 61 73 20 24 array();..foreach.($reasons.as.$
76ec0 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 5b 27 72 75 6c 65 27 reason).{.$rule.=.$reason['rule'
76ee0 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 ];.$job.=.$reason['job'];..if.($
76f00 6a 6f 62 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6a 6f 62 54 job).{.$messages[].=.$this->jobT
76f20 6f 54 65 78 74 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 75 6c 65 29 20 7b 0a oText($job);.}.elseif.($rule).{.
76f40 69 66 20 28 24 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 24 6d 65 if.($rule.instanceof.Rule).{.$me
76f60 73 73 61 67 65 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e ssages[].=.$rule->getPrettyStrin
76f80 67 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d g($this->pool,.$installedMap);.}
76fa0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 22 2e 69 6d 70 6c 6f 64 65 28 .}.}..return."\n....-.".implode(
76fc0 22 5c 6e 20 20 20 20 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a "\n....-.",.$messages);.}.......
76fe0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 61 73 6f 6e 28 24 69 .protected.function.addReason($i
77000 64 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e d,.$reason).{.if.(!isset($this->
77020 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f reasonSeen[$id])).{.$this->reaso
77040 6e 53 65 65 6e 5b 24 69 64 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e nSeen[$id].=.true;.$this->reason
77060 73 5b 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 5d 5b 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d s[$this->section][].=.$reason;.}
77080 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 53 65 63 74 69 6f 6e 28 .}..public.function.nextSection(
770a0 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 2b 2b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 ).{.$this->section++;.}........p
770c0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 rotected.function.jobToText($job
770e0 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 ).{.switch.($job['cmd']).{.case.
77100 27 69 6e 73 74 61 6c 6c 27 3a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 'install':.$packages.=.$this->po
77120 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 ol->whatProvides($job['packageNa
77140 6d 65 27 5d 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 69 66 20 28 21 me'],.$job['constraint']);.if.(!
77160 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 27 4e 6f 20 70 61 63 6b 61 67 65 20 $packages).{.return.'No.package.
77180 66 6f 75 6e 64 20 74 6f 20 73 61 74 69 73 66 79 20 69 6e 73 74 61 6c 6c 20 72 65 71 75 65 73 74 found.to.satisfy.install.request
771a0 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 .for.'.$job['packageName'].$this
771c0 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 ->constraintToText($job['constra
771e0 69 6e 74 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 int']);.}..return.'Installation.
77200 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'
77220 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['
77240 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 constraint']).'.->.satisfiable.b
77260 79 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 y.'.$this->getPackageList($packa
77280 67 65 73 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a 72 65 74 75 72 6e 20 ges).'.';.case.'update':.return.
772a0 27 55 70 64 61 74 65 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 'Update.request.for.'.$job['pack
772c0 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 65 78 ageName'].$this->constraintToTex
772e0 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 t($job['constraint']).'.';.case.
77300 27 72 65 6d 6f 76 65 27 3a 0a 72 65 74 75 72 6e 20 27 52 65 6d 6f 76 61 6c 20 72 65 71 75 65 73 'remove':.return.'Removal.reques
77320 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 t.for.'.$job['packageName'].$thi
77340 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 s->constraintToText($job['constr
77360 61 69 6e 74 27 5d 29 2e 27 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6a 6f 62 5b 27 63 aint']).'';.}..if.(isset($job['c
77380 6f 6e 73 74 72 61 69 6e 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 onstraint'])).{.$packages.=.$thi
773a0 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b s->pool->whatProvides($job['pack
773c0 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a ageName'],.$job['constraint']);.
773e0 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a }.else.{.$packages.=.array();.}.
77400 0a 72 65 74 75 72 6e 20 27 4a 6f 62 28 63 6d 64 3d 27 2e 24 6a 6f 62 5b 27 63 6d 64 27 5d 2e 27 .return.'Job(cmd='.$job['cmd'].'
77420 2c 20 74 61 72 67 65 74 3d 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 ,.target='.$job['packageName'].'
77440 2c 20 70 61 63 6b 61 67 65 73 3d 5b 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c ,.packages=['.$this->getPackageL
77460 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 2e 27 5d 29 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ist($packages).'])';.}..protecte
77480 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 d.function.getPackageList($packa
774a0 67 65 73 29 0a 7b 0a 24 70 72 65 70 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 ges).{.$prepared.=.array();.fore
774c0 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 ach.($packages.as.$package).{.$p
774e0 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
77500 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()
77520 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()]
77540 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
77560 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
77580 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
775a0 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
775c0 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
775e0 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']).']
77600 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
77620 61 72 65 64 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 ared);.}........protected.functi
77640 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 on.constraintToText($constraint)
77660 0a 7b 0a 72 65 74 75 72 6e 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 3f 20 27 20 27 2e 24 63 .{.return.($constraint).?.'.'.$c
77680 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 20 3a 20 27 onstraint->getPrettyString().:.'
776a0 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ';.}.}.<?php............namespac
776c0 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;..
776e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 0a 7b ..........class.RuleWatchGraph.{
77700 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 43 68 61 69 6e 73 20 3d 20 61 72 72 61 79 28 .protected.$watchChains.=.array(
77720 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 );..............public.function.
77740 69 6e 73 65 72 74 28 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 insert(RuleWatchNode.$node).{.if
77760 20 28 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 .($node->getRule()->isAssertion(
77780 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 )).{.return;.}..foreach.(array($
777a0 6e 6f 64 65 2d 3e 77 61 74 63 68 31 2c 20 24 6e 6f 64 65 2d 3e 77 61 74 63 68 32 29 20 61 73 20 node->watch1,.$node->watch2).as.
777c0 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 $literal).{.if.(!isset($this->wa
777e0 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 tchChains[$literal])).{.$this->w
77800 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 atchChains[$literal].=.new.RuleW
77820 61 74 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 atchChain;.}..$this->watchChains
77840 5b 24 6c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a [$literal]->unshift($node);.}.}.
77860 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ........................public.f
77880 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 24 64 65 63 69 64 65 unction.propagateLiteral($decide
778a0 64 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a dLiteral,.$level,.$decisions).{.
778c0 0a 20 0a 20 0a 20 24 6c 69 74 65 72 61 6c 20 3d 20 2d 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 ......$literal.=.-$decidedLitera
778e0 6c 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e l;..if.(!isset($this->watchChain
77900 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a s[$literal])).{.return.null;.}..
77920 24 63 68 61 69 6e 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 $chain.=.$this->watchChains[$lit
77940 65 72 61 6c 5d 3b 0a 0a 24 63 68 61 69 6e 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 77 68 69 6c 65 20 eral];..$chain->rewind();.while.
77960 28 24 63 68 61 69 6e 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 6e 6f 64 65 20 3d 20 24 63 68 61 ($chain->valid()).{.$node.=.$cha
77980 69 6e 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 24 6f 74 68 65 72 57 61 74 63 68 20 3d 20 24 6e 6f in->current();.$otherWatch.=.$no
779a0 64 65 2d 3e 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 de->getOtherWatch($literal);..if
779c0 20 28 21 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 .(!$node->getRule()->isDisabled(
779e0 29 20 26 26 20 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6f 74 68 65 72 ).&&.!$decisions->satisfy($other
77a00 57 61 74 63 68 29 29 20 7b 0a 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 6e 6f 64 65 2d Watch)).{.$ruleLiterals.=.$node-
77a20 3e 67 65 74 52 75 6c 65 28 29 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 24 61 6c 74 65 72 6e 61 74 >getRule()->literals;..$alternat
77a40 69 76 65 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 72 75 6c 65 iveLiterals.=.array_filter($rule
77a60 4c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 72 75 6c 65 4c 69 74 65 72 61 6c Literals,.function.($ruleLiteral
77a80 29 20 75 73 65 20 28 24 6c 69 74 65 72 61 6c 2c 20 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 64 ).use.($literal,.$otherWatch,.$d
77aa0 65 63 69 73 69 6f 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 20 21 3d 3d 20 ecisions).{.return.$literal.!==.
77ac0 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 26 0a 24 6f 74 68 65 72 57 61 74 63 68 20 21 3d 3d 20 $ruleLiteral.&&.$otherWatch.!==.
77ae0 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 26 0a 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e $ruleLiteral.&&.!$decisions->con
77b00 66 6c 69 63 74 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 3b 0a 7d 29 3b 0a 0a 69 66 20 28 24 61 flict($ruleLiteral);.});..if.($a
77b20 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 20 7b 0a 72 65 73 65 74 28 24 61 6c 74 lternativeLiterals).{.reset($alt
77b40 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 57 61 ernativeLiterals);.$this->moveWa
77b60 74 63 68 28 24 6c 69 74 65 72 61 6c 2c 20 63 75 72 72 65 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 tch($literal,.current($alternati
77b80 76 65 4c 69 74 65 72 61 6c 73 29 2c 20 24 6e 6f 64 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d veLiterals),.$node);.continue;.}
77ba0 0a 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 6f 74 68 65 ..if.($decisions->conflict($othe
77bc0 72 57 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 rWatch)).{.return.$node->getRule
77be0 28 29 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6f 74 68 65 72 ();.}..$decisions->decide($other
77c00 57 61 74 63 68 2c 20 24 6c 65 76 65 6c 2c 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 29 Watch,.$level,.$node->getRule())
77c20 3b 0a 7d 0a 0a 24 63 68 61 69 6e 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e ;.}..$chain->next();.}..return.n
77c40 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ull;.}...........protected.funct
77c60 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c ion.moveWatch($fromLiteral,.$toL
77c80 69 74 65 72 61 6c 2c 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 iteral,.$node).{.if.(!isset($thi
77ca0 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 29 29 20 7b 0a 24 s->watchChains[$toLiteral])).{.$
77cc0 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 20 3d 20 this->watchChains[$toLiteral].=.
77ce0 6e 65 77 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 6e 6f 64 65 2d 3e 6d 6f new.RuleWatchChain;.}..$node->mo
77d00 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c veWatch($fromLiteral,.$toLiteral
77d20 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 66 72 6f 6d 4c 69 74 65 72 );.$this->watchChains[$fromLiter
77d40 61 6c 5d 2d 3e 72 65 6d 6f 76 65 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e al]->remove();.$this->watchChain
77d60 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d s[$toLiteral]->unshift($node);.}
77d80 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
77da0 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 mposer\Config;........interface.
77dc0 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 ConfigSourceInterface.{.......pu
77de0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d blic.function.addRepository($nam
77e00 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 e,.$config);.......public.functi
77e20 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a on.removeRepository($name);.....
77e40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 ...public.function.addConfigSett
77e60 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ing($name,.$value);.......public
77e80 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e .function.removeConfigSetting($n
77ea0 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 ame);.........public.function.ad
77ec0 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 3b 0a 0a 0a 0a dLink($type,.$name,.$value);....
77ee0 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 4c 69 6e 6b 28 24 ....public.function.removeLink($
77f00 74 79 70 65 2c 20 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 type,.$name);.......public.funct
77f20 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ion.getName();.}.<?php..........
77f40 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 0a 0a 75 73 ..namespace.Composer\Config;..us
77f60 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
77f80 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a mposer\Json\JsonManipulator;....
77fa0 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 20 69 6d 70 6c 65 ....class.JsonConfigSource.imple
77fc0 6d 65 6e 74 73 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a ments.ConfigSourceInterface.{...
77fe0 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 75 74 .private.$file;.....private.$aut
78000 68 43 6f 6e 66 69 67 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 hConfig;........public.function.
78020 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 66 69 6c 65 2c 20 24 61 75 74 __construct(JsonFile.$file,.$aut
78040 68 43 6f 6e 66 69 67 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d hConfig.=.false).{.$this->file.=
78060 20 24 66 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 20 3d 20 24 61 75 74 .$file;.$this->authConfig.=.$aut
78080 68 43 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 hConfig;.}.....public.function.g
780a0 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 66 69 6c 65 2d 3e 67 etName().{.return.$this->file->g
780c0 65 74 50 61 74 68 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 etPath();.}.....public.function.
780e0 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a addRepository($name,.$config).{.
78100 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 52 65 70 6f 73 69 $this->manipulateJson('addReposi
78120 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 2c 20 66 75 6e 63 74 69 6f 6e 20 tory',.$name,.$config,.function.
78140 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 65 70 6f 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b (&$config,.$repo,.$repoConfig).{
78160 0a 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 20 .$config['repositories'][$repo].
78180 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 =.$repoConfig;.});.}.....public.
781a0 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 function.removeRepository($name)
781c0 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 72 65 6d 6f 76 65 .{.$this->manipulateJson('remove
781e0 52 65 70 6f 73 69 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 Repository',.$name,.function.(&$
78200 63 6f 6e 66 69 67 2c 20 24 72 65 70 6f 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 config,.$repo).{.unset($config['
78220 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 0a repositories'][$repo]);.});.}...
78240 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 ..public.function.addConfigSetti
78260 6e 67 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 6d 61 6e 69 70 ng($name,.$value).{.$this->manip
78280 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e ulateJson('addConfigSetting',.$n
782a0 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c ame,.$value,.function.(&$config,
782c0 20 24 6b 65 79 2c 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 3d 3d 3d 20 27 67 69 74 .$key,.$val).{.if.($key.===.'git
782e0 68 75 62 2d 6f 61 75 74 68 27 20 7c 7c 20 24 6b 65 79 20 3d 3d 3d 20 27 68 74 74 70 2d 62 61 73 hub-oauth'.||.$key.===.'http-bas
78300 69 63 27 29 20 7b 0a 6c 69 73 74 28 24 6b 65 79 2c 20 24 68 6f 73 74 29 20 3d 20 65 78 70 6c 6f ic').{.list($key,.$host).=.explo
78320 64 65 28 27 2e 27 2c 20 24 6b 65 79 2c 20 32 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 de('.',.$key,.2);.if.($this->aut
78340 68 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 5b 24 68 6f 73 74 5d 20 hConfig).{.$config[$key][$host].
78360 3d 20 24 76 61 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 =.$val;.}.else.{.$config['config
78380 27 5d 5b 24 6b 65 79 5d 5b 24 68 6f 73 74 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a 7d 20 65 6c 73 65 '][$key][$host].=.$val;.}.}.else
783a0 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 76 61 .{.$config['config'][$key].=.$va
783c0 6c 3b 0a 7d 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 l;.}.});.}.....public.function.r
783e0 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 emoveConfigSetting($name).{.$thi
78400 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 s->manipulateJson('removeConfigS
78420 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 etting',.$name,.function.(&$conf
78440 69 67 2c 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 3d 3d 3d 20 27 67 69 74 68 75 62 ig,.$key).{.if.($key.===.'github
78460 2d 6f 61 75 74 68 27 20 7c 7c 20 24 6b 65 79 20 3d 3d 3d 20 27 68 74 74 70 2d 62 61 73 69 63 27 -oauth'.||.$key.===.'http-basic'
78480 29 20 7b 0a 6c 69 73 74 28 24 6b 65 79 2c 20 24 68 6f 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 ).{.list($key,.$host).=.explode(
784a0 27 2e 27 2c 20 24 6b 65 79 2c 20 32 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f '.',.$key,.2);.if.($this->authCo
784c0 6e 66 69 67 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 5b 24 68 6f 73 nfig).{.unset($config[$key][$hos
784e0 74 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e t]);.}.else.{.unset($config['con
78500 66 69 67 27 5d 5b 24 6b 65 79 5d 5b 24 68 6f 73 74 5d 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a fig'][$key][$host]);.}.}.else.{.
78520 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 29 3b 0a unset($config['config'][$key]);.
78540 7d 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 61 64 64 4c }.});.}.....public.function.addL
78560 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 0a 7b 0a 24 74 68 69 ink($type,.$name,.$value).{.$thi
78580 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 6b 27 2c 20 24 74 79 s->manipulateJson('addLink',.$ty
785a0 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 6f 6e 20 28 26 24 63 pe,.$name,.$value,.function.(&$c
785c0 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 75 65 29 20 7b 0a 24 onfig,.$type,.$name,.$value).{.$
785e0 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 61 6c 75 65 3b 0a 7d config[$type][$name].=.$value;.}
78600 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c );.}.....public.function.removeL
78620 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 2d 3e 6d 61 6e 69 70 ink($type,.$name).{.$this->manip
78640 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 2c 20 24 74 79 70 65 ulateJson('removeSubNode',.$type
78660 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 20 24 74 79 ,.$name,.function.(&$config,.$ty
78680 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 67 5b 24 74 79 70 65 pe,.$name).{.unset($config[$type
786a0 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 65 64 20 66 75 6e 63 ][$name]);.});.}..protected.func
786c0 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 24 6d 65 74 68 6f 64 2c 20 24 61 72 tion.manipulateJson($method,.$ar
786e0 67 73 2c 20 24 66 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 61 72 67 73 20 3d 20 66 75 6e 63 5f 67 65 gs,.$fallback).{.$args.=.func_ge
78700 74 5f 61 72 67 73 28 29 3b 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 73 29 3b 0a t_args();...array_shift($args);.
78720 24 66 61 6c 6c 62 61 63 6b 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 61 72 67 73 29 3b 0a 0a 69 $fallback.=.array_pop($args);..i
78740 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 24 63 6f 6e f.($this->file->exists()).{.$con
78760 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d tents.=.file_get_contents($this-
78780 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 69 66 20 28 24 74 68 >file->getPath());.}.elseif.($th
787a0 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 7b is->authConfig).{.$contents.=."{
787c0 5c 6e 7d 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 7b 5c \n}\n";.}.else.{.$contents.=."{\
787e0 6e 20 20 20 20 5c 22 63 6f 6e 66 69 67 5c 22 3a 20 7b 5c 6e 20 20 20 20 7d 5c 6e 7d 5c 6e 22 3b n....\"config\":.{\n....}\n}\n";
78800 0a 7d 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 6e 69 70 .}..$manipulator.=.new.JsonManip
78820 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 24 6e 65 77 46 69 6c 65 20 3d 20 21 ulator($contents);..$newFile.=.!
78840 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 3b 0a 0a 0a 20 69 66 20 28 24 74 $this->file->exists();....if.($t
78860 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 20 26 26 20 24 6d 65 74 68 6f 64 20 3d 3d 3d 20 27 his->authConfig.&&.$method.===.'
78880 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 addConfigSetting').{.$method.=.'
788a0 61 64 64 53 75 62 4e 6f 64 65 27 3b 0a 6c 69 73 74 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 addSubNode';.list($mainNode,.$na
788c0 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 61 72 67 73 5b 30 5d 2c 20 32 29 3b me).=.explode('.',.$args[0],.2);
788e0 0a 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 2c .$args.=.array($mainNode,.$name,
78900 20 24 61 72 67 73 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 .$args[1]);.}.elseif.($this->aut
78920 68 43 6f 6e 66 69 67 20 26 26 20 24 6d 65 74 68 6f 64 20 3d 3d 3d 20 27 72 65 6d 6f 76 65 43 6f hConfig.&&.$method.===.'removeCo
78940 6e 66 69 67 53 65 74 74 69 6e 67 27 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 72 65 6d 6f 76 nfigSetting').{.$method.=.'remov
78960 65 53 75 62 4e 6f 64 65 27 3b 0a 6c 69 73 74 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 eSubNode';.list($mainNode,.$name
78980 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 61 72 67 73 5b 30 5d 2c 20 32 29 3b 0a 24 ).=.explode('.',.$args[0],.2);.$
789a0 61 72 67 73 20 3d 20 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 3b 0a args.=.array($mainNode,.$name);.
789c0 7d 0a 0a 0a 20 69 66 20 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 61 72 }....if.(call_user_func_array(ar
789e0 72 61 79 28 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2c 20 24 6d 65 74 68 6f 64 29 2c 20 24 61 72 67 ray($manipulator,.$method),.$arg
78a00 73 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 s)).{.file_put_contents($this->f
78a20 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 65 ile->getPath(),.$manipulator->ge
78a40 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 6f 6e 66 69 67 tContents());.}.else.{...$config
78a60 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 24 74 68 69 73 2d 3e 61 .=.$this->file->read();.$this->a
78a80 72 72 61 79 55 6e 73 68 69 66 74 52 65 66 28 24 61 72 67 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a rrayUnshiftRef($args,.$config);.
78aa0 63 61 6c 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 call_user_func_array($fallback,.
78ac0 24 61 72 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 $args);.$this->file->write($conf
78ae0 69 67 29 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 ig);.}..if.($newFile).{.@chmod($
78b00 74 68 69 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 this->file->getPath(),.0600);.}.
78b20 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 72 72 61 79 }.........private.function.array
78b40 55 6e 73 68 69 66 74 52 65 66 28 26 24 61 72 72 61 79 2c 20 26 24 76 61 6c 75 65 29 0a 7b 0a 24 UnshiftRef(&$array,.&$value).{.$
78b60 72 65 74 75 72 6e 20 3d 20 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 61 72 72 61 79 2c 20 27 return.=.array_unshift($array,.'
78b80 27 29 3b 0a 24 61 72 72 61 79 5b 30 5d 20 3d 20 26 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e ');.$array[0].=.&$value;..return
78ba0 20 24 72 65 74 75 72 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 .$return;.}.}.<?php............n
78bc0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 0a 0a 0a 0a 0a amespace.Composer\Plugin;.......
78be0 63 6c 61 73 73 20 50 6c 75 67 69 6e 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e class.PluginEvents.{.........con
78c00 73 74 20 43 4f 4d 4d 41 4e 44 20 3d 20 27 63 6f 6d 6d 61 6e 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a st.COMMAND.=.'command';.........
78c20 0a 63 6f 6e 73 74 20 50 52 45 5f 46 49 4c 45 5f 44 4f 57 4e 4c 4f 41 44 20 3d 20 27 70 72 65 2d .const.PRE_FILE_DOWNLOAD.=.'pre-
78c40 66 69 6c 65 2d 64 6f 77 6e 6c 6f 61 64 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a file-download';.}.<?php.........
78c60 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 ...namespace.Composer\Plugin;..u
78c80 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
78ca0 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
78cc0 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
78ce0 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
78d00 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 43 6f 6d 6d 61 6e 64 utInterface;.......class.Command
78d20 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 Event.extends.Event.{....private
78d40 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 .$commandName;.....private.$inpu
78d60 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a t;.....private.$output;.........
78d80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 ...public.function.__construct($
78da0 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 name,.$commandName,.$input,.$out
78dc0 70 75 74 2c 20 61 72 72 61 79 20 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 put,.array.$args.=.array(),.arra
78de0 79 20 24 66 6c 61 67 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 y.$flags.=.array()).{.parent::__
78e00 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 61 72 67 73 2c 20 24 66 6c 61 67 73 29 3b construct($name,.$args,.$flags);
78e20 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 4e 61 .$this->commandName.=.$commandNa
78e40 6d 65 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 73 me;.$this->input.=.$input;.$this
78e60 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 6c ->output.=.$output;.}.......publ
78e80 69 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 ic.function.getInput().{.return.
78ea0 24 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 $this->input;.}.......public.fun
78ec0 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 20 24 74 68 69 73 ction.getOutput().{.return.$this
78ee0 2d 3e 6f 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 ->output;.}.......public.functio
78f00 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 n.getCommandName().{.return.$thi
78f20 73 2d 3e 63 6f 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a s->commandName;.}.}.<?php.......
78f40 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 6c 75 67 69 6e 3b 0a .....namespace.Composer\Plugin;.
78f60 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 63 68 65 72 5c 45 76 .use.Composer\EventDispatcher\Ev
78f80 65 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 74 65 46 69 6c ent;.use.Composer\Util\RemoteFil
78fa0 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 65 46 69 6c 65 44 6f 77 6e esystem;.......class.PreFileDown
78fc0 6c 6f 61 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 loadEvent.extends.Event.{....pri
78fe0 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 65 vate.$rfs;.....private.$processe
79000 64 55 72 6c 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 dUrl;.........public.function.__
79020 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 construct($name,.RemoteFilesyste
79040 6d 20 24 72 66 73 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a m.$rfs,.$processedUrl).{.parent:
79060 3a 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 72 66 73 20 :__construct($name);.$this->rfs.
79080 3d 20 24 72 66 73 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 65 64 55 72 6c 20 3d 20 24 70 =.$rfs;.$this->processedUrl.=.$p
790a0 72 6f 63 65 73 73 65 64 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rocessedUrl;.}.......public.func
790c0 74 69 6f 6e 20 67 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 0a 7b 0a 72 65 74 tion.getRemoteFilesystem().{.ret
790e0 75 72 6e 20 24 74 68 69 73 2d 3e 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 urn.$this->rfs;.}.......public.f
79100 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 52 65 6d 6f unction.setRemoteFilesystem(Remo
79120 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 teFilesystem.$rfs).{.$this->rfs.
79140 3d 20 24 72 66 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 =.$rfs;.}.......public.function.
79160 67 65 74 50 72 6f 63 65 73 73 65 64 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 getProcessedUrl().{.return.$this
79180 2d 3e 70 72 6f 63 65 73 73 65 64 55 72 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ->processedUrl;.}.}.<?php.......
791a0 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 6c 75 67 69 6e 3b 0a .....namespace.Composer\Plugin;.
791c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 .use.Composer\Composer;.use.Comp
791e0 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 oser\IO\IOInterface;.......inter
79200 66 61 63 65 20 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 63 6f 6e 73 face.PluginInterface.{......cons
79220 74 20 50 4c 55 47 49 4e 5f 41 50 49 5f 56 45 52 53 49 4f 4e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a t.PLUGIN_API_VERSION.=.'1.0.0';.
79240 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 74 69 76 61 74 65 28 .......public.function.activate(
79260 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 20 Composer.$composer,.IOInterface.
79280 24 69 6f 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 $io);.}.<?php............namespa
792a0 63 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 ce.Composer\Plugin;..use.Compose
792c0 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 45 76 65 6e 74 44 69 r\Composer;.use.Composer\EventDi
792e0 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 spatcher\EventSubscriberInterfac
79300 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a e;.use.Composer\IO\IOInterface;.
79320 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 3b 0a 75 73 use.Composer\Package\Package;.us
79340 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
79360 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 72 onParser;.use.Composer\Repositor
79380 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f y\RepositoryInterface;.use.Compo
793a0 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f ser\Package\AliasPackage;.use.Co
793c0 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;
793e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 .use.Composer\Package\Link;.use.
79400 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c Composer\Package\LinkConstraint\
79420 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c VersionConstraint;.use.Composer\
79440 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a DependencyResolver\Pool;........
79460 63 6c 61 73 73 20 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 class.PluginManager.{.protected.
79480 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 $composer;.protected.$io;.protec
794a0 74 65 64 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ted.$globalComposer;.protected.$
794c0 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6c 75 67 69 versionParser;..protected.$plugi
794e0 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 72 65 67 69 73 74 65 ns.=.array();.protected.$registe
79500 72 65 64 50 6c 75 67 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 73 redPlugins.=.array();..private.s
79520 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 0a tatic.$classCounter.=.0;........
79540 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 49 .public.function.__construct(IOI
79560 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 72 nterface.$io,.Composer.$composer
79580 2c 20 43 6f 6d 70 6f 73 65 72 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c ,.Composer.$globalComposer.=.nul
795a0 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 6d l).{.$this->io.=.$io;.$this->com
795c0 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 67 6c 6f 62 61 6c poser.=.$composer;.$this->global
795e0 43 6f 6d 70 6f 73 65 72 20 3d 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 Composer.=.$globalComposer;.$thi
79600 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 s->versionParser.=.new.VersionPa
79620 72 73 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 6c 6f rser();.}.....public.function.lo
79640 61 64 49 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 adInstalledPlugins().{.$repo.=.$
79660 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e this->composer->getRepositoryMan
79680 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 67 ager()->getLocalRepository();.$g
796a0 6c 6f 62 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 lobalRepo.=.$this->globalCompose
796c0 72 20 3f 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 r.?.$this->globalComposer->getRe
796e0 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 positoryManager()->getLocalRepos
79700 69 74 6f 72 79 28 29 20 3a 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 72 65 70 6f 29 20 7b 0a 24 74 68 itory().:.null;.if.($repo).{.$th
79720 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 69 66 20 is->loadRepository($repo);.}.if.
79740 28 24 67 6c 6f 62 61 6c 52 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 ($globalRepo).{.$this->loadRepos
79760 69 74 6f 72 79 28 24 67 6c 6f 62 61 6c 52 65 70 6f 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 itory($globalRepo);.}.}.......pu
79780 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 69 6e 49 6e blic.function.addPlugin(PluginIn
797a0 74 65 72 66 61 63 65 20 24 70 6c 75 67 69 6e 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f terface.$plugin).{.if.($this->io
797c0 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 74 65 45 ->isDebug()).{.$this->io->writeE
797e0 72 72 6f 72 28 27 4c 6f 61 64 69 6e 67 20 70 6c 75 67 69 6e 20 27 2e 67 65 74 5f 63 6c 61 73 73 rror('Loading.plugin.'.get_class
79800 28 24 70 6c 75 67 69 6e 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 73 5b 5d 20 3d ($plugin));.}.$this->plugins[].=
79820 20 24 70 6c 75 67 69 6e 3b 0a 24 70 6c 75 67 69 6e 2d 3e 61 63 74 69 76 61 74 65 28 24 74 68 69 .$plugin;.$plugin->activate($thi
79840 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 0a 69 66 20 28 24 70 s->composer,.$this->io);..if.($p
79860 6c 75 67 69 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 lugin.instanceof.EventSubscriber
79880 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 Interface).{.$this->composer->ge
798a0 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 61 64 64 53 75 62 73 63 72 69 62 65 tEventDispatcher()->addSubscribe
798c0 72 28 24 70 6c 75 67 69 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e r($plugin);.}.}.......public.fun
798e0 63 74 69 6f 6e 20 67 65 74 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getPlugins().{.return.$thi
79900 73 2d 3e 70 6c 75 67 69 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 s->plugins;.}.............public
79920 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 52 65 70 6f 73 69 74 .function.loadRepository(Reposit
79940 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 65 61 63 68 20 28 24 oryInterface.$repo).{.foreach.($
79960 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 repo->getPackages().as.$package)
79980 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 41 6c 69 61 73 .{.if.($package.instanceof.Alias
799a0 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 20 28 27 63 6f 6d 70 Package).{.continue;.}.if.('comp
799c0 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 2d 3e 67 65 74 54 79 oser-plugin'.===.$package->getTy
799e0 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 20 3d 20 6e 75 6c 6c pe()).{.$requiresComposer.=.null
79a00 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 65 71 75 69 72 65 73 ;.foreach.($package->getRequires
79a20 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 ().as.$link).{.if.($link->getTar
79a40 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 2d 61 70 69 27 29 20 get().==.'composer-plugin-api').
79a60 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 6e 6b 2d 3e 67 65 74 {.$requiresComposer.=.$link->get
79a80 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 72 65 71 75 69 72 65 Constraint();.}.}..if.(!$require
79aa0 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 75 6e 74 69 6d 65 45 sComposer).{.throw.new.\RuntimeE
79ac0 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 67 65 2d 3e 67 65 74 xception("Plugin.".$package->get
79ae0 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 75 69 72 65 20 73 74 Name().".is.missing.a.require.st
79b00 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 74 68 65 20 63 6f 6d atement.for.a.version.of.the.com
79b20 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 22 29 3b 0a 7d 0a 0a poser-plugin-api.package.");.}..
79b40 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 61 74 63 68 65 73 28 if.(!$requiresComposer->matches(
79b60 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 74 68 69 new.VersionConstraint('==',.$thi
79b80 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 50 6c 75 67 s->versionParser->normalize(Plug
79ba0 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 45 52 53 49 4f 4e 29 inInterface::PLUGIN_API_VERSION)
79bc0 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 3c 77 61 ))).{.$this->io->writeError("<wa
79be0 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 65 74 rning>The.plugin.".$package->get
79c00 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 20 63 Name().".requires.a.version.of.c
79c20 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 6f 74 omposer-plugin-api.that.does.not
79c40 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 69 6f .match.your.composer.installatio
79c60 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 72 20 n..You.may.need.to.run.composer.
79c80 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 20 6f update.with.the.'--no-plugins'.o
79ca0 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 72 65 ption.</warning>");.}..$this->re
79cc0 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 66 20 gisterPackage($package);.}...if.
79ce0 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 6b 61 ('composer-installer'.===.$packa
79d00 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 65 72 ge->getType()).{.$this->register
79d20 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 0a 0a Package($package);.}.}.}........
79d40 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 65 70 ...protected.function.collectDep
79d60 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 6f 6c endencies(Pool.$pool,.array.$col
79d80 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 61 67 lected,.PackageInterface.$packag
79da0 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 24 70 e).{.$requires.=.array_merge(.$p
79dc0 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 65 2d ackage->getRequires(),.$package-
79de0 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 28 24 >getDevRequires().);..foreach.($
79e00 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 65 71 requires.as.$requireLink).{.$req
79e20 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 73 74 uiredPackage.=.$this->lookupInst
79e40 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 6e 6b alledPackage($pool,.$requireLink
79e60 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 73 65 );.if.($requiredPackage.&&.!isse
79e80 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 3e 67 t($collected[$requiredPackage->g
79ea0 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 69 72 etName()])).{.$collected[$requir
79ec0 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 72 65 edPackage->getName()].=.$require
79ee0 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 63 6f dPackage;.$collected.=.$this->co
79f00 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 65 63 llectDependencies($pool,.$collec
79f20 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 65 74 ted,.$requiredPackage);.}.}..ret
79f40 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 72 6f urn.$collected;.}............pro
79f60 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 64 50 tected.function.lookupInstalledP
79f80 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 0a 7b ackage(Pool.$pool,.Link.$link).{
79fa0 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 65 73 .$packages.=.$pool->whatProvides
79fc0 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
79fe0 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 24 70 onstraint());..return.(!empty($p
7a000 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 6c 3b ackages)).?.$packages[0].:.null;
7a020 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 .}.............public.function.r
7a040 65 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 egisterPackage(PackageInterface.
7a060 24 70 61 63 6b 61 67 65 2c 20 24 66 61 69 6c 4f 6e 4d 69 73 73 69 6e 67 43 6c 61 73 73 65 73 20 $package,.$failOnMissingClasses.
7a080 3d 20 66 61 6c 73 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 =.false).{.$oldInstallerPlugin.=
7a0a0 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
7a0c0 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 ser-installer');..if.(in_array($
7a0e0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 72 65 67 69 73 package->getName(),.$this->regis
7a100 74 65 72 65 64 50 6c 75 67 69 6e 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 65 78 74 teredPlugins)).{.return;.}..$ext
7a120 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 ra.=.$package->getExtra();.if.(e
7a140 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e mpty($extra['class'])).{.throw.n
7a160 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 ew.\UnexpectedValueException('Er
7a180 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d ror.while.installing.'.$package-
7a1a0 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 >getPrettyName().',.composer-plu
7a1c0 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 63 6c 61 73 73 gin.packages.should.have.a.class
7a1e0 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 .defined.in.their.extra.key.to.b
7a200 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 73 5f 61 72 72 e.usable.');.}.$classes.=.is_arr
7a220 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 61 5b 27 63 6c ay($extra['class']).?.$extra['cl
7a240 61 73 73 27 5d 20 3a 20 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 3b 0a ass'].:.array($extra['class']);.
7a260 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 .$localRepo.=.$this->composer->g
7a280 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
7a2a0 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 67 6c 6f 62 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 epository();.$globalRepo.=.$this
7a2c0 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3f 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c ->globalComposer.?.$this->global
7a2e0 43 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()
7a300 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3a 20 6e 75 6c 6c 3b 0a 0a ->getLocalRepository().:.null;..
7a320 24 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 $pool.=.new.Pool('dev');.$pool->
7a340 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 20 28 24 addRepository($localRepo);.if.($
7a360 67 6c 6f 62 61 6c 52 65 70 6f 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f globalRepo).{.$pool->addReposito
7a380 72 79 28 24 67 6c 6f 62 61 6c 52 65 70 6f 29 3b 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 ry($globalRepo);.}..$autoloadPac
7a3a0 6b 61 67 65 73 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 kages.=.array($package->getName(
7a3c0 29 20 3d 3e 20 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 ).=>.$package);.$autoloadPackage
7a3e0 73 20 3d 20 24 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 s.=.$this->collectDependencies($
7a400 70 6f 6f 6c 2c 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 pool,.$autoloadPackages,.$packag
7a420 65 29 3b 0a 0a 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 e);..$generator.=.$this->compose
7a440 72 2d 3e 67 65 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 r->getAutoloadGenerator();.$auto
7a460 6c 6f 61 64 73 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 loads.=.array();.foreach.($autol
7a480 6f 61 64 50 61 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 oadPackages.as.$autoloadPackage)
7a4a0 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 .{.$downloadPath.=.$this->getIns
7a4c0 74 61 6c 6c 50 61 74 68 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 28 24 67 6c 6f tallPath($autoloadPackage,.($glo
7a4e0 62 61 6c 52 65 70 6f 20 26 26 20 24 67 6c 6f 62 61 6c 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 balRepo.&&.$globalRepo->hasPacka
7a500 67 65 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 29 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 ge($autoloadPackage)));.$autoloa
7a520 64 73 5b 5d 20 3d 20 61 72 72 61 79 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 24 ds[].=.array($autoloadPackage,.$
7a540 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 downloadPath);.}..$map.=.$genera
7a560 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 61 75 74 6f 6c 6f 61 64 73 2c 20 tor->parseAutoloads($autoloads,.
7a580 6e 65 77 20 50 61 63 6b 61 67 65 28 27 64 75 6d 6d 79 27 2c 20 27 31 2e 30 2e 30 2e 30 27 2c 20 new.Package('dummy',.'1.0.0.0',.
7a5a0 27 31 2e 30 2e 30 27 29 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 '1.0.0'));.$classLoader.=.$gener
7a5c0 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 63 6c 61 73 73 ator->createLoader($map);.$class
7a5e0 4c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 Loader->register();..foreach.($c
7a600 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 69 66 20 28 63 6c 61 73 73 5f 65 78 lasses.as.$class).{.if.(class_ex
7a620 69 73 74 73 28 24 63 6c 61 73 73 2c 20 66 61 6c 73 65 29 29 20 7b 0a 24 63 6f 64 65 20 3d 20 66 ists($class,.false)).{.$code.=.f
7a640 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 66 ile_get_contents($classLoader->f
7a660 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 3b 0a 24 63 6f 64 65 20 3d 20 70 72 65 67 5f 72 indFile($class));.$code.=.preg_r
7a680 65 70 6c 61 63 65 28 27 7b 5e 28 5c 73 2a 29 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 7d 6d 69 27 eplace('{^(\s*)class\s+(\S+)}mi'
7a6a0 2c 20 27 24 31 63 6c 61 73 73 20 24 32 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 ,.'$1class.$2_composer_tmp'.self
7a6c0 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f 64 65 29 3b 0a 65 76 61 6c 28 27 3f ::$classCounter,.$code);.eval('?
7a6e0 3e 27 2e 24 63 6f 64 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d 20 27 5f 63 6f 6d 70 6f 73 65 72 5f >'.$code);.$class..=.'_composer_
7a700 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 3b 0a 73 65 6c 66 3a 3a tmp'.self::$classCounter;.self::
7a720 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 24 6f 6c 64 49 6e 73 74 $classCounter++;.}..if.($oldInst
7a740 61 6c 6c 65 72 50 6c 75 67 69 6e 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 allerPlugin).{.$installer.=.new.
7a760 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 $class($this->io,.$this->compose
7a780 72 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 r);.$this->composer->getInstalla
7a7a0 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 73 tionManager()->addInstaller($ins
7a7c0 74 61 6c 6c 65 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 taller);.}.elseif.(class_exists(
7a7e0 24 63 6c 61 73 73 29 29 20 7b 0a 24 70 6c 75 67 69 6e 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 $class)).{.$plugin.=.new.$class(
7a800 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 6c 75 67 69 6e 28 24 70 6c 75 67 69 6e 29 3b 0a 24 74 );.$this->addPlugin($plugin);.$t
7a820 68 69 73 2d 3e 72 65 67 69 73 74 65 72 65 64 50 6c 75 67 69 6e 73 5b 5d 20 3d 20 24 70 61 63 6b his->registeredPlugins[].=.$pack
7a840 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 66 61 69 6c 4f age->getName();.}.elseif.($failO
7a860 6e 4d 69 73 73 69 6e 67 43 6c 61 73 73 65 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e nMissingClasses).{.throw.new.\Un
7a880 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 6c 75 67 69 6e 20 27 expectedValueException('Plugin.'
7a8a0 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 .$package->getName().'.could.not
7a8c0 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 2c 20 63 6c 61 73 73 20 6e 6f 74 20 66 6f 75 6e 64 .be.initialized,.class.not.found
7a8e0 3a 20 27 2e 24 63 6c 61 73 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c :.'.$class);.}.}.}..........publ
7a900 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 ic.function.getInstallPath(Packa
7a920 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 67 6c 6f 62 61 6c 20 3d 20 geInterface.$package,.$global.=.
7a940 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 67 6c 6f 62 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 false).{.if.(!$global).{.return.
7a960 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e $this->composer->getInstallation
7a980 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 Manager()->getInstallPath($packa
7a9a0 67 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 ge);.}..return.$this->globalComp
7a9c0 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 2d 3e oser->getInstallationManager()->
7a9e0 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 7d 0a 3c 3f getInstallPath($package);.}.}.<?
7aa00 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
7aa20 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 r;..use.Composer\Config\JsonConf
7aa40 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e igSource;.use.Composer\Json\Json
7aa60 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 63 File;.use.Composer\IO\IOInterfac
7aa80 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 72 63 68 69 76 65 72 e;.use.Composer\Package\Archiver
7aaa0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 ;.use.Composer\Repository\Reposi
7aac0 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 toryManager;.use.Composer\Reposi
7aae0 74 6f 72 79 5c 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 tory\WritableRepositoryInterface
7ab00 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 65 63 75 ;.use.Composer\Util\ProcessExecu
7ab20 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 46 69 6c tor;.use.Composer\Util\RemoteFil
7ab40 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 74 5c 43 esystem;.use.Symfony\Component\C
7ab60 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 onsole\Formatter\OutputFormatter
7ab80 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 61 74 63 Style;.use.Composer\EventDispatc
7aba0 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 65 her\EventDispatcher;.use.Compose
7abc0 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 r\Autoload\AutoloadGenerator;.us
7abe0 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
7ac00 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 6f 72 79 onParser;..........class.Factory
7ac20 0a 7b 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 69 6f 6e .{.....protected.static.function
7ac40 20 67 65 74 48 6f 6d 65 44 69 72 28 29 0a 7b 0a 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 .getHomeDir().{.$home.=.getenv('
7ac60 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 27 29 3b 0a 69 66 20 28 21 24 68 6f 6d 65 29 20 7b 0a 69 COMPOSER_HOME');.if.(!$home).{.i
7ac80 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_
7aca0 4d 41 4a 4f 52 27 29 29 20 7b 0a 69 66 20 28 21 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 MAJOR')).{.if.(!getenv('APPDATA'
7acc0 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
7ace0 28 27 54 68 65 20 41 50 50 44 41 54 41 20 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 65 ('The.APPDATA.or.COMPOSER_HOME.e
7ad00 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 73 65 74 20 nvironment.variable.must.be.set.
7ad20 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 79 27 29 3b for.composer.to.run.correctly');
7ad40 0a 7d 0a 24 68 6f 6d 65 20 3d 20 73 74 72 74 72 28 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 .}.$home.=.strtr(getenv('APPDATA
7ad60 27 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 20 2e 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 '),.'\\',.'/')...'/Composer';.}.
7ad80 65 6c 73 65 20 7b 0a 69 66 20 28 21 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 29 20 7b 0a 74 68 else.{.if.(!getenv('HOME')).{.th
7ada0 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 68 65 20 48 row.new.\RuntimeException('The.H
7adc0 4f 4d 45 20 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 OME.or.COMPOSER_HOME.environment
7ade0 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 63 6f 6d 70 6f 73 .variable.must.be.set.for.compos
7ae00 65 72 20 74 6f 20 72 75 6e 20 63 6f 72 72 65 63 74 6c 79 27 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d er.to.run.correctly');.}.$home.=
7ae20 20 72 74 72 69 6d 28 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2c 20 27 2f 27 29 20 2e 20 27 2f .rtrim(getenv('HOME'),.'/')...'/
7ae40 2e 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 68 6f 6d 65 3b 0a 7d .composer';.}.}..return.$home;.}
7ae60 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 69 6f 6e .......protected.static.function
7ae80 20 67 65 74 43 61 63 68 65 44 69 72 28 24 68 6f 6d 65 29 0a 7b 0a 24 63 61 63 68 65 44 69 72 20 .getCacheDir($home).{.$cacheDir.
7aea0 3d 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 =.getenv('COMPOSER_CACHE_DIR');.
7aec0 69 66 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 if.(!$cacheDir).{.if.(defined('P
7aee0 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 69 66 HP_WINDOWS_VERSION_MAJOR')).{.if
7af00 20 28 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 .($cacheDir.=.getenv('LOCALAPPDA
7af20 54 41 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 TA')).{.$cacheDir..=.'/Composer'
7af40 3b 0a 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 ;.}.else.{.$cacheDir.=.$home...'
7af60 2f 63 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 /cache';.}.$cacheDir.=.strtr($ca
7af80 63 68 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 cheDir,.'\\',.'/');.}.else.{.$ca
7afa0 63 68 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 72 65 cheDir.=.$home.'/cache';.}.}..re
7afc0 74 75 72 6e 20 24 63 61 63 68 65 44 69 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 turn.$cacheDir;.}......public.st
7afe0 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 69 67 28 49 4f 49 6e 74 atic.function.createConfig(IOInt
7b000 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a erface.$io.=.null,.$cwd.=.null).
7b020 7b 0a 24 63 77 64 20 3d 20 24 63 77 64 20 3f 3a 20 67 65 74 63 77 64 28 29 3b 0a 0a 0a 20 24 68 {.$cwd.=.$cwd.?:.getcwd();....$h
7b040 6f 6d 65 20 3d 20 73 65 6c 66 3a 3a 67 65 74 48 6f 6d 65 44 69 72 28 29 3b 0a 24 63 61 63 68 65 ome.=.self::getHomeDir();.$cache
7b060 44 69 72 20 3d 20 73 65 6c 66 3a 3a 67 65 74 43 61 63 68 65 44 69 72 28 24 68 6f 6d 65 29 3b 0a Dir.=.self::getCacheDir($home);.
7b080 0a 0a 20 0a 20 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 .......foreach.(array($home,.$ca
7b0a0 63 68 65 44 69 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 cheDir).as.$dir).{.if.(!file_exi
7b0c0 73 74 73 28 24 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 sts($dir...'/.htaccess')).{.if.(
7b0e0 21 69 73 5f 64 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 !is_dir($dir)).{.@mkdir($dir,.07
7b100 37 37 2c 20 74 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 77,.true);.}.@file_put_contents(
7b120 24 64 69 72 20 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 $dir...'/.htaccess',.'Deny.from.
7b140 61 6c 6c 27 29 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 all');.}.}..$config.=.new.Config
7b160 28 74 72 75 65 2c 20 24 63 77 64 29 3b 0a 0a 0a 20 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 (true,.$cwd);....$config->merge(
7b180 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 61 72 72 61 79 28 27 68 6f 6d 65 27 20 3d array('config'.=>.array('home'.=
7b1a0 3e 20 24 68 6f 6d 65 2c 20 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 24 63 61 63 68 65 44 69 >.$home,.'cache-dir'.=>.$cacheDi
7b1c0 72 29 29 29 3b 0a 0a 0a 20 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 r)));....$file.=.new.JsonFile($c
7b1e0 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e onfig->get('home').'/config.json
7b200 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 69 66 20 28 24 ');.if.($file->exists()).{.if.($
7b220 69 6f 20 26 26 20 24 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 io.&&.$io->isDebug()).{.$io->wri
7b240 74 65 45 72 72 6f 72 28 27 4c 6f 61 64 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 27 20 2e teError('Loading.config.file.'..
7b260 20 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 6d .$file->getPath());.}.$config->m
7b280 65 72 67 65 28 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e erge($file->read());.}.$config->
7b2a0 73 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f setConfigSource(new.JsonConfigSo
7b2c0 75 72 63 65 28 24 66 69 6c 65 29 29 3b 0a 0a 0a 20 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f urce($file));....$file.=.new.Jso
7b2e0 6e 46 69 6c 65 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 61 75 74 nFile($config->get('home').'/aut
7b300 68 2e 6a 73 6f 6e 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 h.json');.if.($file->exists()).{
7b320 0a 69 66 20 28 24 69 6f 20 26 26 20 24 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 69 .if.($io.&&.$io->isDebug()).{.$i
7b340 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4c 6f 61 64 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 o->writeError('Loading.config.fi
7b360 6c 65 20 27 20 2e 20 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 24 63 6f 6e le.'...$file->getPath());.}.$con
7b380 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 3d 3e 20 24 66 69 fig->merge(array('config'.=>.$fi
7b3a0 6c 65 2d 3e 72 65 61 64 28 29 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 73 65 74 41 75 74 68 le->read()));.}.$config->setAuth
7b3c0 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 ConfigSource(new.JsonConfigSourc
7b3e0 65 28 24 66 69 6c 65 2c 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 e($file,.true));..return.$config
7b400 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 67 65 74 43 ;.}..public.static.function.getC
7b420 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 69 6d 28 67 65 74 65 omposerFile().{.return.trim(gete
7b440 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 29 29 20 3f 3a 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a nv('COMPOSER')).?:.'./composer.j
7b460 73 6f 6e 27 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 son';.}..public.static.function.
7b480 63 72 65 61 74 65 41 64 64 69 74 69 6f 6e 61 6c 53 74 79 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 createAdditionalStyles().{.retur
7b4a0 6e 20 61 72 72 61 79 28 0a 27 68 69 67 68 6c 69 67 68 74 27 20 3d 3e 20 6e 65 77 20 4f 75 74 70 n.array(.'highlight'.=>.new.Outp
7b4c0 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 72 65 64 27 29 2c 0a 27 77 61 72 6e 69 6e utFormatterStyle('red'),.'warnin
7b4e0 67 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 27 g'.=>.new.OutputFormatterStyle('
7b500 62 6c 61 63 6b 27 2c 20 27 79 65 6c 6c 6f 77 27 29 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 black',.'yellow'),.);.}..public.
7b520 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 static.function.createDefaultRep
7b540 6f 73 69 74 6f 72 69 65 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c ositories(IOInterface.$io.=.null
7b560 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 52 65 70 6f 73 69 74 ,.Config.$config.=.null,.Reposit
7b580 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 70 6f 73 20 oryManager.$rm.=.null).{.$repos.
7b5a0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e =.array();..if.(!$config).{.$con
7b5c0 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 24 69 6f 29 3b fig.=.static::createConfig($io);
7b5e0 0a 7d 0a 69 66 20 28 21 24 72 6d 29 20 7b 0a 69 66 20 28 21 24 69 6f 29 20 7b 0a 74 68 72 6f 77 .}.if.(!$rm).{.if.(!$io).{.throw
7b600 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 .new.\InvalidArgumentException('
7b620 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 65 69 74 68 65 72 20 61 6e This.function.requires.either.an
7b640 20 49 4f 49 6e 74 65 72 66 61 63 65 20 6f 72 20 61 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 .IOInterface.or.a.RepositoryMana
7b660 67 65 72 27 29 3b 0a 7d 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 3b 0a ger');.}.$factory.=.new.static;.
7b680 24 72 6d 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 $rm.=.$factory->createRepository
7b6a0 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 Manager($io,.$config);.}..foreac
7b6c0 68 20 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 h.($config->getRepositories().as
7b6e0 20 24 69 6e 64 65 78 20 3d 3e 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e .$index.=>.$repo).{.if.(is_strin
7b700 67 28 24 72 65 70 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 g($repo)).{.throw.new.\Unexpecte
7b720 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 22 72 65 70 6f 73 69 74 6f 72 69 65 73 22 20 dValueException('"repositories".
7b740 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 72 65 70 6f 73 69 74 6f 72 79 should.be.an.array.of.repository
7b760 20 64 65 66 69 6e 69 74 69 6f 6e 73 2c 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6f .definitions,.only.a.single.repo
7b780 73 69 74 6f 72 79 20 77 61 73 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 61 72 sitory.was.given');.}.if.(!is_ar
7b7a0 72 61 79 28 24 72 65 70 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 ray($repo)).{.throw.new.\Unexpec
7b7c0 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 22 27 tedValueException('Repository."'
7b7e0 2e 24 69 6e 64 65 78 2e 27 22 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 .$index.'".('.json_encode($repo)
7b800 2e 27 29 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 .').should.be.an.array,.'.gettyp
7b820 65 28 24 72 65 70 6f 29 2e 27 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 e($repo).'.given');.}.if.(!isset
7b840 28 24 72 65 70 6f 5b 27 74 79 70 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e ($repo['type'])).{.throw.new.\Un
7b860 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 6f 73 69 74 6f expectedValueException('Reposito
7b880 72 79 20 22 27 2e 24 69 6e 64 65 78 2e 27 22 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 ry."'.$index.'".('.json_encode($
7b8a0 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 64 65 66 69 6e 65 repo).').must.have.a.type.define
7b8c0 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 65 78 29 20 26 26 d');.}.$name.=.is_int($index).&&
7b8e0 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 67 5f 72 65 70 6c .isset($repo['url']).?.preg_repl
7b900 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 72 65 70 6f 5b 27 ace('{^https?://}i',.'',.$repo['
7b920 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 73 65 74 28 24 72 url']).:.$index;.while.(isset($r
7b940 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 32 27 3b 0a 7d 0a epos[$name])).{.$name..=.'2';.}.
7b960 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 65 52 65 70 6f 73 $repos[$name].=.$rm->createRepos
7b980 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 29 3b 0a 7d 0a 0a itory($repo['type'],.$repo);.}..
7b9a0 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 0a 0a 0a 0a 70 75 return.$repos;.}..............pu
7b9c0 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 72 28 49 4f 49 blic.function.createComposer(IOI
7b9e0 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 3d 20 6e 75 6c nterface.$io,.$localConfig.=.nul
7ba00 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 2c 20 24 63 77 64 l,.$disablePlugins.=.false,.$cwd
7ba20 20 3d 20 6e 75 6c 6c 2c 20 24 66 75 6c 6c 4c 6f 61 64 20 3d 20 74 72 75 65 29 0a 7b 0a 24 63 77 .=.null,.$fullLoad.=.true).{.$cw
7ba40 64 20 3d 20 24 63 77 64 20 3f 3a 20 67 65 74 63 77 64 28 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c d.=.$cwd.?:.getcwd();....if.(nul
7ba60 6c 20 3d 3d 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 l.===.$localConfig).{.$localConf
7ba80 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a ig.=.static::getComposerFile();.
7baa0 7d 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 29 20 }..if.(is_string($localConfig)).
7bac0 7b 0a 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a {.$composerFile.=.$localConfig;.
7bae0 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 $file.=.new.JsonFile($localConfi
7bb00 67 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 3b 0a 0a g,.new.RemoteFilesystem($io));..
7bb20 69 66 20 28 21 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 6c 6f 63 if.(!$file->exists()).{.if.($loc
7bb40 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 7c alConfig.===.'./composer.json'.|
7bb60 7c 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f |.$localConfig.===.'composer.jso
7bb80 6e 27 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 20 63 6f 75 6c 64 n').{.$message.=.'Composer.could
7bba0 20 6e 6f 74 20 66 69 6e 64 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 .not.find.a.composer.json.file.i
7bbc0 6e 20 27 2e 24 63 77 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 n.'.$cwd;.}.else.{.$message.=.'C
7bbe0 6f 6d 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 74 68 65 20 63 6f 6e 66 69 omposer.could.not.find.the.confi
7bc00 67 20 66 69 6c 65 3a 20 27 2e 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 7d 0a 24 69 6e 73 74 72 g.file:.'.$localConfig;.}.$instr
7bc20 75 63 74 69 6f 6e 73 20 3d 20 27 54 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 70 72 6f 6a 65 uctions.=.'To.initialize.a.proje
7bc40 63 74 2c 20 70 6c 65 61 73 65 20 63 72 65 61 74 65 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f ct,.please.create.a.composer.jso
7bc60 6e 20 66 69 6c 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 68 74 74 70 3a n.file.as.described.in.the.http:
7bc80 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 22 47 65 74 74 69 6e 67 20 53 74 61 72 //getcomposer.org/."Getting.Star
7bca0 74 65 64 22 20 73 65 63 74 69 6f 6e 27 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 ted".section';.throw.new.\Invali
7bcc0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2e 50 48 50 5f dArgumentException($message.PHP_
7bce0 45 4f 4c 2e 24 69 6e 73 74 72 75 63 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 76 61 EOL.$instructions);.}..$file->va
7bd00 6c 69 64 61 74 65 53 63 68 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d lidateSchema(JsonFile::LAX_SCHEM
7bd20 41 29 3b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 A);.$localConfig.=.$file->read()
7bd40 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 ;.}....$config.=.static::createC
7bd60 6f 6e 66 69 67 28 24 69 6f 2c 20 24 63 77 64 29 3b 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 onfig($io,.$cwd);.$config->merge
7bd80 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f ($localConfig);.if.(isset($compo
7bda0 73 65 72 46 69 6c 65 29 29 20 7b 0a 69 66 20 28 24 69 6f 20 26 26 20 24 69 6f 2d 3e 69 73 44 65 serFile)).{.if.($io.&&.$io->isDe
7bdc0 62 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4c 6f 61 64 69 6e bug()).{.$io->writeError('Loadin
7bde0 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 27 20 2e 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 g.config.file.'...$composerFile)
7be00 3b 0a 7d 0a 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c ;.}.$localAuthFile.=.new.JsonFil
7be20 65 28 64 69 72 6e 61 6d 65 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 e(dirname(realpath($composerFile
7be40 29 29 20 2e 20 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 24 6c 6f 63 61 6c 41 75 ))...'/auth.json');.if.($localAu
7be60 74 68 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 69 6f 20 26 26 20 24 thFile->exists()).{.if.($io.&&.$
7be80 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 io->isDebug()).{.$io->writeError
7bea0 28 27 4c 6f 61 64 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 27 20 2e 20 24 6c 6f 63 61 6c ('Loading.config.file.'...$local
7bec0 41 75 74 68 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d AuthFile->getPath());.}.$config-
7bee0 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 6c 6f 63 61 6c 41 >merge(array('config'.=>.$localA
7bf00 75 74 68 46 69 6c 65 2d 3e 72 65 61 64 28 29 29 29 3b 0a 24 63 6f 6e 66 69 67 2d 3e 73 65 74 41 uthFile->read()));.$config->setA
7bf20 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f uthConfigSource(new.JsonConfigSo
7bf40 75 72 63 65 28 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d urce($localAuthFile,.true));.}.}
7bf60 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e ..$vendorDir.=.$config->get('ven
7bf80 64 6f 72 2d 64 69 72 27 29 3b 0a 24 62 69 6e 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 dor-dir');.$binDir.=.$config->ge
7bfa0 74 28 27 62 69 6e 2d 64 69 72 27 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 t('bin-dir');....$composer.=.new
7bfc0 20 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 43 6f 6e 66 69 .Composer();.$composer->setConfi
7bfe0 67 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 69 66 20 28 24 66 75 6c 6c 4c 6f 61 64 29 20 7b 0a 0a 20 g($config);..if.($fullLoad).{...
7c000 24 69 6f 2d 3e 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b $io->loadConfiguration($config);
7c020 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 6f 75 74 28 ....ProcessExecutor::setTimeout(
7c040 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 74 69 6d 65 (int).$config->get('process-time
7c060 6f 75 74 27 29 29 3b 0a 7d 0a 0a 0a 20 24 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e 65 77 20 45 out'));.}....$dispatcher.=.new.E
7c080 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);.
7c0a0 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 24 64 $composer->setEventDispatcher($d
7c0c0 69 73 70 61 74 63 68 65 72 29 3b 0a 0a 0a 20 24 72 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 ispatcher);....$rm.=.$this->crea
7c0e0 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
7c100 2c 20 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 52 65 ,.$dispatcher);.$composer->setRe
7c120 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 72 6d 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e positoryManager($rm);....$this->
7c140 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 addLocalRepository($rm,.$vendorD
7c160 69 72 29 3b 0a 0a 0a 20 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 ir);....$parser.=.new.VersionPar
7c180 73 65 72 3b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 ser;.$loader.=.new.Package\Loade
7c1a0 72 5c 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 28 24 72 6d 2c 20 24 63 6f 6e 66 69 67 r\RootPackageLoader($rm,.$config
7c1c0 2c 20 24 70 61 72 73 65 72 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 ,.$parser,.new.ProcessExecutor($
7c1e0 69 6f 29 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 io));.$package.=.$loader->load($
7c200 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 50 61 63 6b localConfig);.$composer->setPack
7c220 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e 63 age($package);....$im.=.$this->c
7c240 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 3b 0a 24 63 6f 6d reateInstallationManager();.$com
7c260 70 6f 73 65 72 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 69 poser->setInstallationManager($i
7c280 6d 29 3b 0a 0a 69 66 20 28 24 66 75 6c 6c 4c 6f 61 64 29 20 7b 0a 0a 20 24 64 6d 20 3d 20 24 74 m);..if.($fullLoad).{...$dm.=.$t
7c2a0 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 28 24 69 6f 2c 20 his->createDownloadManager($io,.
7c2c0 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 $config,.$dispatcher);.$composer
7c2e0 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 3b 0a 0a 0a 20 24 67 ->setDownloadManager($dm);....$g
7c300 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 enerator.=.new.AutoloadGenerator
7c320 28 24 64 69 73 70 61 74 63 68 65 72 2c 20 24 69 6f 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 ($dispatcher,.$io);.$composer->s
7c340 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 24 67 65 6e 65 72 61 74 6f 72 29 3b etAutoloadGenerator($generator);
7c360 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c .}....$this->createDefaultInstal
7c380 6c 65 72 73 28 24 69 6d 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 0a 69 66 20 28 lers($im,.$composer,.$io);..if.(
7c3a0 24 66 75 6c 6c 4c 6f 61 64 29 20 7b 0a 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 24 $fullLoad).{.$globalComposer.=.$
7c3c0 74 68 69 73 2d 3e 63 72 65 61 74 65 47 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 28 24 69 6f 2c 20 this->createGlobalComposer($io,.
7c3e0 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 24 70 6d 20 3d $config,.$disablePlugins);.$pm.=
7c400 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 69 6f 2c .$this->createPluginManager($io,
7c420 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 29 3b 0a 24 63 .$composer,.$globalComposer);.$c
7c440 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 70 6d 29 3b 0a omposer->setPluginManager($pm);.
7c460 0a 69 66 20 28 21 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 70 6d 2d 3e 6c 6f .if.(!$disablePlugins).{.$pm->lo
7c480 61 64 49 6e 73 74 61 6c 6c 65 64 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 adInstalledPlugins();.}......if.
7c4a0 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 24 74 ($rm->getLocalRepository()).{.$t
7c4c0 68 69 73 2d 3e 70 75 72 67 65 50 61 63 6b 61 67 65 73 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c his->purgePackages($rm->getLocal
7c4e0 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 69 6d 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 Repository(),.$im);.}.}....if.($
7c500 66 75 6c 6c 4c 6f 61 64 20 26 26 20 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 fullLoad.&&.isset($composerFile)
7c520 29 20 7b 0a 24 6c 6f 63 6b 46 69 6c 65 20 3d 20 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 ).{.$lockFile.=."json".===.pathi
7c540 6e 66 6f 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 nfo($composerFile,.PATHINFO_EXTE
7c560 4e 53 49 4f 4e 29 0a 3f 20 73 75 62 73 74 72 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 30 NSION).?.substr($composerFile,.0
7c580 2c 20 2d 34 29 2e 27 6c 6f 63 6b 27 0a 3a 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 2e 20 27 ,.-4).'lock'.:.$composerFile...'
7c5a0 2e 6c 6f 63 6b 27 3b 0a 24 6c 6f 63 6b 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f .lock';.$locker.=.new.Package\Lo
7c5c0 63 6b 65 72 28 24 69 6f 2c 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 6b 46 69 6c 65 cker($io,.new.JsonFile($lockFile
7c5e0 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e ,.new.RemoteFilesystem($io,.$con
7c600 66 69 67 29 29 2c 20 24 72 6d 2c 20 24 69 6d 2c 20 6d 64 35 5f 66 69 6c 65 28 24 63 6f 6d 70 6f fig)),.$rm,.$im,.md5_file($compo
7c620 73 65 72 46 69 6c 65 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 4c 6f 63 6b 65 72 28 serFile));.$composer->setLocker(
7c640 24 6c 6f 63 6b 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d $locker);.}..return.$composer;.}
7c660 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 72 65 61 74 ........protected.function.creat
7c680 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 eRepositoryManager(IOInterface.$
7c6a0 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 61 74 63 io,.Config.$config,.EventDispatc
7c6c0 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 7b 0a 24 her.$eventDispatcher.=.null).{.$
7c6e0 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 69 6f 2c 20 rm.=.new.RepositoryManager($io,.
7c700 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 24 72 6d 2d $config,.$eventDispatcher);.$rm-
7c720 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 72 27 2c 20 >setRepositoryClass('composer',.
7c740 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 72 52 65 70 'Composer\Repository\ComposerRep
7c760 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 6c 61 ository');.$rm->setRepositoryCla
7c780 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 72 79 5c 56 ss('vcs',.'Composer\Repository\V
7c7a0 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 74 6f csRepository');.$rm->setReposito
7c7c0 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 5c 52 65 70 ryClass('package',.'Composer\Rep
7c7e0 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 0a 24 72 6d ository\PackageRepository');.$rm
7c800 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 20 27 43 6f ->setRepositoryClass('pear',.'Co
7c820 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 74 6f 72 79 mposer\Repository\PearRepository
7c840 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 27 67 69 74 ');.$rm->setRepositoryClass('git
7c860 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 65 70 6f 73 ',.'Composer\Repository\VcsRepos
7c880 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 itory');.$rm->setRepositoryClass
7c8a0 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 5c 56 63 73 ('svn',.'Composer\Repository\Vcs
7c8c0 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 79 Repository');.$rm->setRepository
7c8e0 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 52 65 70 6f Class('perforce',.'Composer\Repo
7c900 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 sitory\VcsRepository');.$rm->set
7c920 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 68 67 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c RepositoryClass('hg',.'Composer\
7c940 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-
7c960 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 74 27 2c 20 >setRepositoryClass('artifact',.
7c980 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 74 52 65 70 'Composer\Repository\ArtifactRep
7c9a0 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 0a 0a 0a 70 ository');..return.$rm;.}......p
7c9c0 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 70 6f 73 69 rotected.function.addLocalReposi
7c9e0 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 24 76 65 6e tory(RepositoryManager.$rm,.$ven
7ca00 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 69 74 6f 72 dorDir).{.$rm->setLocalRepositor
7ca20 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 6c 65 73 79 y(new.Repository\InstalledFilesy
7ca40 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 76 65 6e stemRepository(new.JsonFile($ven
7ca60 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 6a 73 6f 6e dorDir.'/composer/installed.json
7ca80 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 69 6f 6e 20 ')));.}......protected.function.
7caa0 63 72 65 61 74 65 47 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 createGlobalComposer(IOInterface
7cac0 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 61 62 6c 65 50 6c .$io,.Config.$config,.$disablePl
7cae0 75 67 69 6e 73 29 0a 7b 0a 69 66 20 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 2d 3e 67 ugins).{.if.(realpath($config->g
7cb00 65 74 28 27 68 6f 6d 65 27 29 29 20 3d 3d 3d 20 67 65 74 63 77 64 28 29 29 20 7b 0a 72 65 74 75 et('home')).===.getcwd()).{.retu
7cb20 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 74 72 79 20 7b 0a 24 rn;.}..$composer.=.null;.try.{.$
7cb40 63 6f 6d 70 6f 73 65 72 20 3d 20 73 65 6c 66 3a 3a 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 composer.=.self::createComposer(
7cb60 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 6f $io,.$config->get('home')...'/co
7cb80 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 2c 20 24 mposer.json',.$disablePlugins,.$
7cba0 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 config->get('home'),.false);.}.c
7cbc0 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 69 6f 2d 3e atch.(\Exception.$e).{.if.($io->
7cbe0 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 isDebug()).{.$io->writeError('Fa
7cc00 69 6c 65 64 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 67 6c 6f 62 61 6c 20 63 6f 6d 70 6f 73 iled.to.initialize.global.compos
7cc20 65 72 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 7d 0a 0a 72 65 er:.'.$e->getMessage());.}.}..re
7cc40 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 turn.$composer;.}........public.
7cc60 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 function.createDownloadManager(I
7cc80 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,.
7cca0 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 72 EventDispatcher.$eventDispatcher
7ccc0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 63 .=.null).{.$cache.=.null;.if.($c
7cce0 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 20 3e 20 onfig->get('cache-files-ttl').>.
7cd00 30 29 20 7b 0a 24 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 0).{.$cache.=.new.Cache($io,.$co
7cd20 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 29 2c 20 27 61 nfig->get('cache-files-dir'),.'a
7cd40 2d 7a 30 2d 39 5f 2e 2f 27 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 -z0-9_./');.}..$dm.=.new.Downloa
7cd60 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 73 77 69 74 63 68 der\DownloadManager($io);.switch
7cd80 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 6e 73 74 61 6c .($config->get('preferred-instal
7cda0 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 l')).{.case.'dist':.$dm->setPref
7cdc0 65 72 44 69 73 74 28 74 72 75 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 6f 75 72 63 erDist(true);.break;.case.'sourc
7cde0 65 27 3a 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a e':.$dm->setPreferSource(true);.
7ce00 62 72 65 61 6b 3b 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 break;.case.'auto':.default:...b
7ce20 72 65 61 6b 3b 0a 7d 0a 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 67 69 74 reak;.}..$dm->setDownloader('git
7ce40 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 ',.new.Downloader\GitDownloader(
7ce60 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 $io,.$config));.$dm->setDownload
7ce80 65 72 28 27 73 76 6e 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 53 76 6e 44 6f 77 6e er('svn',.new.Downloader\SvnDown
7cea0 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 loader($io,.$config));.$dm->setD
7cec0 6f 77 6e 6c 6f 61 64 65 72 28 27 68 67 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 48 ownloader('hg',.new.Downloader\H
7cee0 67 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d gDownloader($io,.$config));.$dm-
7cf00 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 70 65 72 66 6f 72 63 65 27 2c 20 6e 65 77 20 44 >setDownloader('perforce',.new.D
7cf20 6f 77 6e 6c 6f 61 64 65 72 5c 50 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f ownloader\PerforceDownloader($io
7cf40 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 ,.$config));.$dm->setDownloader(
7cf60 27 7a 69 70 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 5a 69 70 44 6f 77 6e 6c 6f 61 'zip',.new.Downloader\ZipDownloa
7cf80 64 65 72 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 der($io,.$config,.$eventDispatch
7cfa0 65 72 2c 20 24 63 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 er,.$cache));.$dm->setDownloader
7cfc0 28 27 72 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 52 61 72 44 6f 77 6e 6c 6f ('rar',.new.Downloader\RarDownlo
7cfe0 61 64 65 72 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 ader($io,.$config,.$eventDispatc
7d000 68 65 72 2c 20 24 63 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 her,.$cache));.$dm->setDownloade
7d020 72 28 27 74 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 6f 77 6e 6c r('tar',.new.Downloader\TarDownl
7d040 6f 61 64 65 72 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 oader($io,.$config,.$eventDispat
7d060 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 cher,.$cache));.$dm->setDownload
7d080 65 72 28 27 67 7a 69 70 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 7a 69 70 44 6f er('gzip',.new.Downloader\GzipDo
7d0a0 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 wnloader($io,.$config,.$eventDis
7d0c0 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c patcher,.$cache));.$dm->setDownl
7d0e0 6f 61 64 65 72 28 27 70 68 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 61 oader('phar',.new.Downloader\Pha
7d100 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 rDownloader($io,.$config,.$event
7d120 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f Dispatcher,.$cache));.$dm->setDo
7d140 77 6e 6c 6f 61 64 65 72 28 27 66 69 6c 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c wnloader('file',.new.Downloader\
7d160 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 FileDownloader($io,.$config,.$ev
7d180 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 0a 72 65 74 75 72 6e entDispatcher,.$cache));..return
7d1a0 20 24 64 6d 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 63 .$dm;.}........public.function.c
7d1c0 72 65 61 74 65 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 reateArchiveManager(Config.$conf
7d1e0 69 67 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 ig,.Downloader\DownloadManager.$
7d200 64 6d 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 64 6d 29 20 7b dm.=.null).{.if.(null.===.$dm).{
7d220 0a 24 69 6f 20 3d 20 6e 65 77 20 49 4f 5c 4e 75 6c 6c 49 4f 28 29 3b 0a 24 69 6f 2d 3e 6c 6f 61 .$io.=.new.IO\NullIO();.$io->loa
7d240 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 24 64 6d 20 3d 20 24 dConfiguration($config);.$dm.=.$
7d260 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 28 24 69 6f 2c this->createDownloadManager($io,
7d280 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 61 6d 20 3d 20 6e 65 77 20 41 72 63 68 69 76 65 72 .$config);.}..$am.=.new.Archiver
7d2a0 5c 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b 0a 24 61 6d 2d 3e 61 64 64 41 72 \ArchiveManager($dm);.$am->addAr
7d2c0 63 68 69 76 65 72 28 6e 65 77 20 41 72 63 68 69 76 65 72 5c 50 68 61 72 41 72 63 68 69 76 65 72 chiver(new.Archiver\PharArchiver
7d2e0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 );..return.$am;.}........protect
7d300 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 ed.function.createPluginManager(
7d320 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 6f IOInterface.$io,.Composer.$compo
7d340 73 65 72 2c 20 43 6f 6d 70 6f 73 65 72 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 ser,.Composer.$globalComposer.=.
7d360 6e 75 6c 6c 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 null).{.return.new.Plugin\Plugin
7d380 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 67 6c 6f 62 61 6c 43 Manager($io,.$composer,.$globalC
7d3a0 6f 6d 70 6f 73 65 72 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 omposer);.}.....protected.functi
7d3c0 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b on.createInstallationManager().{
7d3e0 0a 72 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 .return.new.Installer\Installati
7d400 6f 6e 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 onManager();.}.......protected.f
7d420 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 unction.createDefaultInstallers(
7d440 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 Installer\InstallationManager.$i
7d460 6d 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 m,.Composer.$composer,.IOInterfa
7d480 63 65 20 24 69 6f 29 0a 7b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 ce.$io).{.$im->addInstaller(new.
7d4a0 49 6e 73 74 61 6c 6c 65 72 5c 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 Installer\LibraryInstaller($io,.
7d4c0 24 63 6f 6d 70 6f 73 65 72 2c 20 6e 75 6c 6c 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 $composer,.null));.$im->addInsta
7d4e0 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 ller(new.Installer\PearInstaller
7d500 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 ($io,.$composer,.'pear-library')
7d520 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
7d540 65 72 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 er\PluginInstaller($io,.$compose
7d560 72 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 r));.$im->addInstaller(new.Insta
7d580 6c 6c 65 72 5c 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 29 29 3b ller\MetapackageInstaller($io));
7d5a0 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 75 72 67 65 .}......protected.function.purge
7d5c0 50 61 63 6b 61 67 65 73 28 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 Packages(WritableRepositoryInter
7d5e0 66 61 63 65 20 24 72 65 70 6f 2c 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 face.$repo,.Installer\Installati
7d600 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d onManager.$im).{.foreach.($repo-
7d620 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
7d640 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
7d660 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
7d680 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
7d6a0 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
7d6c0 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
7d6e0 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.
7d700 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
7d720 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,.$
7d740 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......
7d760 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;..
7d780 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;.
7d7a0 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 75 use.RecursiveIteratorIterator;.u
7d7c0 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 46 69 6e 64 se.Symfony\Component\Finder\Find
7d7e0 65 72 3b 0a 0a 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 er;......class.Filesystem.{.priv
7d800 61 74 65 20 24 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 ate.$processExecutor;..public.fu
7d820 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 45 78 65 63 75 74 nction.__construct(ProcessExecut
7d840 6f 72 20 24 65 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 or.$executor.=.null).{.$this->pr
7d860 6f 63 65 73 73 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 ocessExecutor.=.$executor.?:.new
7d880 20 50 72 6f 63 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 .ProcessExecutor();.}..public.fu
7d8a0 6e 63 74 69 6f 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 nction.remove($file).{.if.(is_di
7d8c0 72 28 24 66 69 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 r($file)).{.return.$this->remove
7d8e0 44 69 72 65 63 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 Directory($file);.}..if.(file_ex
7d900 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 6e 6c ists($file)).{.return.$this->unl
7d920 69 6e 6b 28 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 ink($file);.}..return.false;.}..
7d940 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 69 72 45 6d 70 74 79 ......public.function.isDirEmpty
7d960 28 24 64 69 72 29 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 ($dir).{.$finder.=.Finder::creat
7d980 65 28 29 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 e().->ignoreVCS(false).->ignoreD
7d9a0 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 0a 2d 3e 64 65 70 74 68 28 30 29 0a 2d 3e 69 6e 28 24 otFiles(false).->depth(0).->in($
7d9c0 64 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 66 69 6e 64 65 72 29 20 3d 3d 3d dir);..return.count($finder).===
7d9e0 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6d 70 74 79 44 69 72 65 .0;.}..public.function.emptyDire
7da00 63 74 6f 72 79 28 24 64 69 72 2c 20 24 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 ctory($dir,.$ensureDirectoryExis
7da20 74 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 ts.=.true).{.if.(file_exists($di
7da40 72 29 20 26 26 20 69 73 5f 6c 69 6e 6b 28 24 64 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e r).&&.is_link($dir)).{.$this->un
7da60 6c 69 6e 6b 28 24 64 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 65 6e 73 75 72 65 44 69 72 65 63 74 link($dir);.}..if.($ensureDirect
7da80 6f 72 79 45 78 69 73 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 oryExists).{.$this->ensureDirect
7daa0 6f 72 79 45 78 69 73 74 73 28 24 64 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 64 69 72 28 24 oryExists($dir);.}..if.(is_dir($
7dac0 64 69 72 29 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 dir)).{.$finder.=.Finder::create
7dae0 28 29 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 6f ().->ignoreVCS(false).->ignoreDo
7db00 74 46 69 6c 65 73 28 66 61 6c 73 65 29 0a 2d 3e 64 65 70 74 68 28 30 29 0a 2d 3e 69 6e 28 24 64 tFiles(false).->depth(0).->in($d
7db20 69 72 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 70 61 74 68 29 ir);..foreach.($finder.as.$path)
7db40 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 28 73 74 72 69 6e 67 29 20 24 70 61 74 68 29 .{.$this->remove((string).$path)
7db60 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ;.}.}.}.............public.funct
7db80 69 6f 6e 20 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a ion.removeDirectory($directory).
7dba0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 {.if.($this->isSymlinkedDirector
7dbc0 79 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 y($directory)).{.return.$this->u
7dbe0 6e 6c 69 6e 6b 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f nlinkSymlinkedDirectory($directo
7dc00 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 ry);.}..if.(!file_exists($direct
7dc20 6f 72 79 29 20 7c 7c 20 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 ory).||.!is_dir($directory)).{.r
7dc40 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b eturn.true;.}..if.(preg_match('{
7dc60 5e 28 3f 3a 5b 61 2d 7a 5d 3a 29 3f 5b 2f 5c 5c 5c 5c 5d 2b 24 7d 69 27 2c 20 24 64 69 72 65 63 ^(?:[a-z]:)?[/\\\\]+$}i',.$direc
7dc80 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 70 tory)).{.throw.new.\RuntimeExcep
7dca0 74 69 6f 6e 28 27 41 62 6f 72 74 69 6e 67 20 61 6e 20 61 74 74 65 6d 70 74 65 64 20 64 65 6c 65 tion('Aborting.an.attempted.dele
7dcc0 74 69 6f 6e 20 6f 66 20 27 2e 24 64 69 72 65 63 74 6f 72 79 2e 27 2c 20 74 68 69 73 20 77 61 73 tion.of.'.$directory.',.this.was
7dce0 20 70 72 6f 62 61 62 6c 79 20 6e 6f 74 20 69 6e 74 65 6e 64 65 64 2c 20 69 66 20 69 74 20 69 73 .probably.not.intended,.if.it.is
7dd00 20 61 20 72 65 61 6c 20 75 73 65 20 63 61 73 65 20 70 6c 65 61 73 65 20 72 65 70 6f 72 74 20 69 .a.real.use.case.please.report.i
7dd20 74 2e 27 29 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 t.');.}..if.(!function_exists('p
7dd40 72 6f 63 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 72 65 6d 6f roc_open')).{.return.$this->remo
7dd60 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 69 veDirectoryPhp($directory);.}..i
7dd80 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_
7dda0 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 64 69 72 BUILD')).{.$cmd.=.sprintf('rmdir
7ddc0 20 2f 53 20 2f 51 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 ./S./Q.%s',.ProcessExecutor::esc
7dde0 61 70 65 28 72 65 61 6c 70 61 74 68 28 24 64 69 72 65 63 74 6f 72 79 29 29 29 3b 0a 7d 20 65 6c ape(realpath($directory)));.}.el
7de00 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 27 2c se.{.$cmd.=.sprintf('rm.-rf.%s',
7de20 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 64 69 72 65 63 74 .ProcessExecutor::escape($direct
7de40 6f 72 79 29 29 3b 0a 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 ory));.}..$result.=.$this->getPr
7de60 6f 63 65 73 73 28 29 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 ocess()->execute($cmd,.$output).
7de80 3d 3d 3d 20 30 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 20 ===.0;....clearstatcache();..if.
7dea0 28 24 72 65 73 75 6c 74 20 26 26 20 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 ($result.&&.!file_exists($direct
7dec0 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ory)).{.return.true;.}..return.$
7dee0 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 74 this->removeDirectoryPhp($direct
7df00 6f 72 79 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 ory);.}............public.functi
7df20 6f 6e 20 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 74 6f 72 79 on.removeDirectoryPhp($directory
7df40 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
7df60 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
7df80 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
7dfa0 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
7dfc0 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:
7dfe0 3a 43 48 49 4c 44 5f 46 49 52 53 54 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 :CHILD_FIRST);..foreach.($ri.as.
7e000 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 $file).{.if.($file->isDir()).{.$
7e020 74 68 69 73 2d 3e 72 6d 64 69 72 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 this->rmdir($file->getPathname()
7e040 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d );.}.else.{.$this->unlink($file-
7e060 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 >getPathname());.}.}..return.$th
7e080 69 73 2d 3e 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 69 63 is->rmdir($directory);.}..public
7e0a0 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 73 28 .function.ensureDirectoryExists(
7e0c0 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 63 $directory).{.if.(!is_dir($direc
7e0e0 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 63 74 tory)).{.if.(file_exists($direct
7e100 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 70 74 ory)).{.throw.new.\RuntimeExcept
7e120 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 73 20 ion(.$directory.'.exists.and.is.
7e140 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 6b 64 not.a.directory.'.);.}.if.(!@mkd
7e160 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 74 68 ir($directory,.0777,.true)).{.th
7e180 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 72 65 row.new.\RuntimeException(.$dire
7e1a0 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 6c 64 ctory.'.does.not.exist.and.could
7e1c0 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 0a 0a .not.be.created.'.);.}.}.}......
7e1e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 28 24 70 61 74 68 ....public.function.unlink($path
7e200 29 0a 7b 0a 69 66 20 28 21 40 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 49 6d 70 6c 65 6d 65 6e 74 ).{.if.(!@$this->unlinkImplement
7e220 61 74 69 6f 6e 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 ation($path)).{...if.(!defined('
7e240 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 7c 7c 20 28 PHP_WINDOWS_VERSION_BUILD').||.(
7e260 75 73 6c 65 65 70 28 33 35 30 30 30 30 29 20 26 26 20 21 40 24 74 68 69 73 2d 3e 75 6e 6c 69 6e usleep(350000).&&.!@$this->unlin
7e280 6b 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 28 24 70 61 74 68 29 29 29 20 7b 0a 24 65 72 72 6f kImplementation($path))).{.$erro
7e2a0 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d r.=.error_get_last();.$message.=
7e2c0 20 27 43 6f 75 6c 64 20 6e 6f 74 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 3a 20 27 20 .'Could.not.delete.'.$path.':.'.
7e2e0 2e 20 40 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 3b 0a 69 66 20 28 64 65 66 69 6e 65 ..@$error['message'];.if.(define
7e300 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 d('PHP_WINDOWS_VERSION_BUILD')).
7e320 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 54 68 69 73 20 63 61 6e 20 62 65 20 64 75 65 {.$message..=."\nThis.can.be.due
7e340 20 74 6f 20 61 6e 20 61 6e 74 69 76 69 72 75 73 20 6f 72 20 74 68 65 20 57 69 6e 64 6f 77 73 20 .to.an.antivirus.or.the.Windows.
7e360 53 65 61 72 63 68 20 49 6e 64 65 78 65 72 20 6c 6f 63 6b 69 6e 67 20 74 68 65 20 66 69 6c 65 20 Search.Indexer.locking.the.file.
7e380 77 68 69 6c 65 20 74 68 65 79 20 61 72 65 20 61 6e 61 6c 79 7a 65 64 22 3b 0a 7d 0a 0a 74 68 72 while.they.are.analyzed";.}..thr
7e3a0 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 73 61 67 ow.new.\RuntimeException($messag
7e3c0 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a e);.}.}..return.true;.}.........
7e3e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 6d 64 69 72 28 24 70 61 74 68 29 0a 7b 0a .public.function.rmdir($path).{.
7e400 69 66 20 28 21 40 72 6d 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 21 64 65 66 if.(!@rmdir($path)).{...if.(!def
7e420 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'
7e440 29 20 7c 7c 20 28 75 73 6c 65 65 70 28 33 35 30 30 30 30 29 20 26 26 20 21 40 72 6d 64 69 72 28 ).||.(usleep(350000).&&.!@rmdir(
7e460 24 70 61 74 68 29 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 $path))).{.$error.=.error_get_la
7e480 73 74 28 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 75 6c 64 20 6e 6f 74 20 64 65 6c 65 st();.$message.=.'Could.not.dele
7e4a0 74 65 20 27 2e 24 70 61 74 68 2e 27 3a 20 27 20 2e 20 40 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 te.'.$path.':.'...@$error['messa
7e4c0 67 65 27 5d 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 ge'];.if.(defined('PHP_WINDOWS_V
7e4e0 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c ERSION_BUILD')).{.$message..=."\
7e500 6e 54 68 69 73 20 63 61 6e 20 62 65 20 64 75 65 20 74 6f 20 61 6e 20 61 6e 74 69 76 69 72 75 73 nThis.can.be.due.to.an.antivirus
7e520 20 6f 72 20 74 68 65 20 57 69 6e 64 6f 77 73 20 53 65 61 72 63 68 20 49 6e 64 65 78 65 72 20 6c .or.the.Windows.Search.Indexer.l
7e540 6f 63 6b 69 6e 67 20 74 68 65 20 66 69 6c 65 20 77 68 69 6c 65 20 74 68 65 79 20 61 72 65 20 61 ocking.the.file.while.they.are.a
7e560 6e 61 6c 79 7a 65 64 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 nalyzed";.}..throw.new.\RuntimeE
7e580 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 xception($message);.}.}..return.
7e5a0 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f true;.}...........public.functio
7e5c0 6e 20 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 n.copyThenRemove($source,.$targe
7e5e0 74 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 73 6f 75 72 63 65 29 29 20 7b 0a 63 6f 70 t).{.if.(!is_dir($source)).{.cop
7e600 79 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 y($source,.$target);.$this->unli
7e620 6e 6b 28 24 73 6f 75 72 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 74 20 3d 20 6e nk($source);..return;.}..$it.=.n
7e640 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 73 ew.RecursiveDirectoryIterator($s
7e660 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 6f ource,.RecursiveDirectoryIterato
7e680 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 69 r::SKIP_DOTS);.$ri.=.new.Recursi
7e6a0 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 76 veIteratorIterator($it,.Recursiv
7e6c0 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 0a eIteratorIterator::SELF_FIRST);.
7e6e0 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 61 $this->ensureDirectoryExists($ta
7e700 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 7b rget);..foreach.($ri.as.$file).{
7e720 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 4f .$targetPath.=.$target...DIRECTO
7e740 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 61 RY_SEPARATOR...$ri->getSubPathNa
7e760 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 69 me();.if.($file->isDir()).{.$thi
7e780 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 74 s->ensureDirectoryExists($target
7e7a0 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 50 Path);.}.else.{.copy($file->getP
7e7c0 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 74 athname(),.$targetPath);.}.}..$t
7e7e0 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 29 his->removeDirectoryPhp($source)
7e800 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 75 ;.}..public.function.rename($sou
7e820 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 65 rce,.$target).{.if.(true.===.@re
7e840 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 6e name($source,.$target)).{.return
7e860 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 5f ;.}..if.(!function_exists('proc_
7e880 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 6e open')).{.return.$this->copyThen
7e8a0 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 20 Remove($source,.$target);.}..if.
7e8c0 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 (defined('PHP_WINDOWS_VERSION_BU
7e8e0 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 78 ILD')).{...$command.=.sprintf('x
7e900 63 6f 70 79 20 25 73 20 25 73 20 2f 45 20 2f 49 20 2f 51 27 2c 20 50 72 6f 63 65 73 73 45 78 65 copy.%s.%s./E./I./Q',.ProcessExe
7e920 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 73 6f 75 72 63 65 29 2c 20 50 72 6f 63 65 73 73 45 cutor::escape($source),.ProcessE
7e940 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 xecutor::escape($target));.$resu
7e960 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 lt.=.$this->processExecutor->exe
7e980 63 75 74 65 28 24 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 cute($command,.$output);....clea
7e9a0 72 73 74 61 74 63 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 rstatcache();..if.(0.===.$result
7e9c0 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 29 3b 0a 0a 72 65 74 ).{.$this->remove($source);..ret
7e9e0 75 72 6e 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 urn;.}.}.else.{.....$command.=.s
7ea00 70 72 69 6e 74 66 28 27 6d 76 20 25 73 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 printf('mv.%s.%s',.ProcessExecut
7ea20 6f 72 3a 3a 65 73 63 61 70 65 28 24 73 6f 75 72 63 65 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 or::escape($source),.ProcessExec
7ea40 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 utor::escape($target));.$result.
7ea60 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 =.$this->processExecutor->execut
7ea80 65 28 24 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 e($command,.$output);....clearst
7eaa0 61 74 63 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 atcache();..if.(0.===.$result).{
7eac0 0a 72 65 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 .return;.}.}..return.$this->copy
7eae0 54 68 65 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 ThenRemove($source,.$target);.}.
7eb00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 ..........public.function.findSh
7eb20 6f 72 74 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 ortestPath($from,.$to,.$director
7eb40 69 65 73 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 ies.=.false).{.if.(!$this->isAbs
7eb60 6f 6c 75 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 olutePath($from).||.!$this->isAb
7eb80 73 6f 6c 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 solutePath($to)).{.throw.new.\In
7eba0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
7ebc0 24 66 72 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 $from.(%s).and.$to.(%s).must.be.
7ebe0 61 62 73 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 absolute.paths.',.$from,.$to));.
7ec00 7d 0a 0a 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 }..$from.=.lcfirst($this->normal
7ec20 69 7a 65 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 izePath($from));.$to.=.lcfirst($
7ec40 74 68 69 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 this->normalizePath($to));..if.(
7ec60 24 64 69 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 $directories).{.$from..=.'/dummy
7ec80 5f 66 69 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 _file';.}..if.(dirname($from).==
7eca0 3d 20 64 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 =.dirname($to)).{.return.'./'.ba
7ecc0 73 65 6e 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 sename($to);.}..$commonPath.=.$t
7ece0 6f 3b 0a 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 o;.while.(strpos($from.'/',.$com
7ed00 6d 6f 6e 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 monPath.'/').!==.0.&&.'/'.!==.$c
7ed20 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a ommonPath.&&.!preg_match('{^[a-z
7ed40 5d 3a 2f 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 ]:/?$}i',.$commonPath)).{.$commo
7ed60 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 74 nPath.=.strtr(dirname($commonPat
7ed80 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 72 h),.'\\',.'/');.}..if.(0.!==.str
7eda0 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 3d pos($from,.$commonPath).||.'/'.=
7edc0 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 3b 0a 7d 0a ==.$commonPath).{.return.$to;.}.
7ede0 0a 24 63 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 .$commonPath.=.rtrim($commonPath
7ee00 2c 20 27 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 ,.'/')...'/';.$sourcePathDepth.=
7ee20 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c .substr_count(substr($from,.strl
7ee40 65 6e 28 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 en($commonPath)),.'/');.$commonP
7ee60 61 74 68 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 athCode.=.str_repeat('../',.$sou
7ee80 72 63 65 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 rcePathDepth);..return.($commonP
7eea0 61 74 68 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 athCode...substr($to,.strlen($co
7eec0 6d 6d 6f 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 mmonPath))).?:.'./';.}..........
7eee0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 .public.function.findShortestPat
7ef00 68 43 6f 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 hCode($from,.$to,.$directories.=
7ef20 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 74 65 .false).{.if.(!$this->isAbsolute
7ef40 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 75 74 Path($from).||.!$this->isAbsolut
7ef60 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 69 64 ePath($to)).{.throw.new.\Invalid
7ef80 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 6f 6d ArgumentException(sprintf('$from
7efa0 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 6f 6c .(%s).and.$to.(%s).must.be.absol
7efc0 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 24 66 ute.paths.',.$from,.$to));.}..$f
7efe0 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 50 61 rom.=.lcfirst($this->normalizePa
7f000 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 73 2d th($from));.$to.=.lcfirst($this-
7f020 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 66 72 6f 6d >normalizePath($to));..if.($from
7f040 20 3d 3d 3d 20 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 .===.$to).{.return.$directories.
7f060 3f 20 27 5f 5f 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d 0a 0a 24 63 6f ?.'__DIR__'.:.'__FILE__';.}..$co
7f080 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 mmonPath.=.$to;.while.(strpos($f
7f0a0 72 6f 6d 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 rom.'/',.$commonPath.'/').!==.0.
7f0c0 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f &&.'/'.!==.$commonPath.&&.!preg_
7f0e0 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 match('{^[a-z]:/?$}i',.$commonPa
7f100 74 68 29 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 63 th).&&.'.'.!==.$commonPath).{.$c
7f120 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f ommonPath.=.strtr(dirname($commo
7f140 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d nPath),.'\\',.'/');.}..if.(0.!==
7f160 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 .strpos($from,.$commonPath).||.'
7f180 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 63 /'.===.$commonPath.||.'.'.===.$c
7f1a0 6f 6d 6d 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 ommonPath).{.return.var_export($
7f1c0 74 6f 2c 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 to,.true);.}..$commonPath.=.rtri
7f1e0 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 73 m($commonPath,.'/')...'/';.if.(s
7f200 74 72 70 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 trpos($to,.$from.'/').===.0).{.r
7f220 65 74 75 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 eturn.'__DIR__...'.var_export(su
7f240 62 73 74 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 bstr($to,.strlen($from)),.true);
7f260 0a 7d 0a 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 .}.$sourcePathDepth.=.substr_cou
7f280 6e 74 28 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 nt(substr($from,.strlen($commonP
7f2a0 61 74 68 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 ath)),.'/').+.$directories;.$com
7f2c0 6d 6f 6e 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 monPathCode.=.str_repeat('dirnam
7f2e0 65 28 27 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 e(',.$sourcePathDepth).'__DIR__'
7f300 2e 73 74 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 .str_repeat(')',.$sourcePathDept
7f320 68 29 3b 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 h);.$relTarget.=.substr($to,.str
7f340 6c 65 6e 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 len($commonPath));..return.$comm
7f360 6f 6e 50 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 onPathCode...(strlen($relTarget)
7f380 20 3f 20 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 .?.'.'...var_export('/'...$relTa
7f3a0 72 67 65 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 rget,.true).:.'');.}........publ
7f3c0 69 63 20 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 ic.function.isAbsolutePath($path
7f3e0 29 0a 7b 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 ).{.return.substr($path,.0,.1).=
7f400 3d 3d 20 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 ==.'/'.||.substr($path,.1,.1).==
7f420 3d 20 27 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 =.':';.}..........public.functio
7f440 6e 20 73 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 n.size($path).{.if.(!file_exists
7f460 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 45 78 63 ($path)).{.throw.new.\RuntimeExc
7f480 65 70 74 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 eption("$path.does.not.exist.");
7f4a0 0a 7d 0a 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 .}.if.(is_dir($path)).{.return.$
7f4c0 74 68 69 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 this->directorySize($path);.}..r
7f4e0 65 74 75 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 eturn.filesize($path);.}........
7f500 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 .public.function.normalizePath($
7f520 70 61 74 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 path).{.$parts.=.array();.$path.
7f540 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 70 72 65 66 =.strtr($path,.'\\',.'/');.$pref
7f560 69 78 20 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 ix.=.'';.$absolute.=.false;..if.
7f580 28 70 72 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 (preg_match('{^([0-9a-z]+:(?://(
7f5a0 3f 3a 5b 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 ?:[a-z]:)?)?)}i',.$path,.$match)
7f5c0 29 20 7b 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 ).{.$prefix.=.$match[1];.$path.=
7f5e0 20 73 75 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 .substr($path,.strlen($prefix));
7f600 0a 7d 0a 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 .}..if.(substr($path,.0,.1).===.
7f620 27 2f 27 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 '/').{.$absolute.=.true;.$path.=
7f640 20 73 75 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 .substr($path,.1);.}..$up.=.fals
7f660 65 3b 0a 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 e;.foreach.(explode('/',.$path).
7f680 61 73 20 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 as.$chunk).{.if.('..'.===.$chunk
7f6a0 20 26 26 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 .&&.($absolute.||.$up)).{.array_
7f6c0 70 6f 70 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 pop($parts);.$up.=.!(empty($part
7f6e0 73 29 20 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 s).||.'..'.===.end($parts));.}.e
7f700 6c 73 65 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 lseif.('.'.!==.$chunk.&&.''.!==.
7f720 24 63 68 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 $chunk).{.$parts[].=.$chunk;.$up
7f740 20 3d 20 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 .=.'..'.!==.$chunk;.}.}..return.
7f760 24 70 72 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 $prefix.($absolute.?.'/'.:.'').i
7f780 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 mplode('/',.$parts);.}........pu
7f7a0 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 61 6c 50 61 74 68 blic.static.function.isLocalPath
7f7c0 28 24 70 61 74 68 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 ($path).{.return.(bool).preg_mat
7f7e0 63 68 28 27 7b 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 7c 5c ch('{^(file://|/|[a-z]:[\\\\/]|\
7f800 2e 5c 2e 5b 5c 5c 5c 5c 2f 5d 7c 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 5b 5c 5c 5c 5c 2f 5d 29 7d .\.[\\\\/]|[a-z0-9_.-]+[\\\\/])}
7f820 69 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e i',.$path);.}..public.static.fun
7f840 63 74 69 6f 6e 20 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 69 ction.getPlatformPath($path).{.i
7f860 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_
7f880 42 55 49 4c 44 27 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 BUILD')).{.$path.=.preg_replace(
7f8a0 27 7b 5e 28 3f 3a 66 69 6c 65 3a 2f 2f 2f 28 5b 61 2d 7a 5d 29 2f 29 7d 69 27 2c 20 27 66 69 6c '{^(?:file:///([a-z])/)}i',.'fil
7f8c0 65 3a 2f 2f 24 31 3a 2f 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 e://$1:/',.$path);.}..return.pre
7f8e0 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 3a 2f 2f 7d 69 27 2c 20 27 27 2c 20 24 70 61 g_replace('{^file://}i',.'',.$pa
7f900 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 69 72 65 63 th);.}..protected.function.direc
7f920 74 6f 72 79 53 69 7a 65 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 24 69 74 20 3d 20 6e 65 77 torySize($directory).{.$it.=.new
7f940 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 64 69 72 .RecursiveDirectoryIterator($dir
7f960 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 65 72 61 74 ectory,.RecursiveDirectoryIterat
7f980 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
7f9a0 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
7f9c0 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 52 53 54 29 veIteratorIterator::CHILD_FIRST)
7f9e0 3b 0a 0a 24 73 69 7a 65 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 ;..$size.=.0;.foreach.($ri.as.$f
7fa00 69 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 24 73 ile).{.if.($file->isFile()).{.$s
7fa20 69 7a 65 20 2b 3d 20 24 66 69 6c 65 2d 3e 67 65 74 53 69 7a 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 ize.+=.$file->getSize();.}.}..re
7fa40 74 75 72 6e 20 24 73 69 7a 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f turn.$size;.}..protected.functio
7fa60 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 n.getProcess().{.return.new.Proc
7fa80 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 essExecutor;.}...........private
7faa0 20 66 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 28 24 .function.unlinkImplementation($
7fac0 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 4f 57 53 path).{.if.(defined('PHP_WINDOWS
7fae0 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 69 73 5f 64 69 72 28 24 70 61 74 68 _VERSION_BUILD').&&.is_dir($path
7fb00 29 20 26 26 20 69 73 5f 6c 69 6e 6b 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 72 6d ).&&.is_link($path)).{.return.rm
7fb20 64 69 72 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 75 6e 6c 69 6e 6b 28 24 70 61 dir($path);.}..return.unlink($pa
7fb40 74 68 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 79 6d 6c 69 th);.}..private.function.isSymli
7fb60 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 20 28 nkedDirectory($directory).{.if.(
7fb80 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 !is_dir($directory)).{.return.fa
7fba0 6c 73 65 3b 0a 7d 0a 0a 24 72 65 73 6f 6c 76 65 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c lse;.}..$resolved.=.$this->resol
7fbc0 76 65 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 53 79 6d 6c 69 6e 6b 28 24 64 69 72 veSymlinkedDirectorySymlink($dir
7fbe0 65 63 74 6f 72 79 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 5f 6c 69 6e 6b 28 24 72 65 73 6f 6c 76 ectory);..return.is_link($resolv
7fc00 65 64 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 75 6e ed);.}.......private.function.un
7fc20 6c 69 6e 6b 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 linkSymlinkedDirectory($director
7fc40 79 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 53 y).{.$resolved.=.$this->resolveS
7fc60 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 53 79 6d 6c 69 6e 6b 28 24 64 69 72 65 63 74 ymlinkedDirectorySymlink($direct
7fc80 6f 72 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 72 65 73 ory);..return.$this->unlink($res
7fca0 6f 6c 76 65 64 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 olved);.}.........private.functi
7fcc0 6f 6e 20 72 65 73 6f 6c 76 65 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 53 79 6d 6c on.resolveSymlinkedDirectorySyml
7fce0 69 6e 6b 28 24 70 61 74 68 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 ink($pathname).{.if.(!is_dir($pa
7fd00 74 68 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a thname)).{.return.$pathname;.}..
7fd20 24 72 65 73 6f 6c 76 65 64 20 3d 20 72 74 72 69 6d 28 24 70 61 74 68 6e 61 6d 65 2c 20 27 2f 27 $resolved.=.rtrim($pathname,.'/'
7fd40 29 3b 0a 0a 69 66 20 28 21 73 74 72 6c 65 6e 28 24 72 65 73 6f 6c 76 65 64 29 29 20 7b 0a 72 65 );..if.(!strlen($resolved)).{.re
7fd60 74 75 72 6e 20 24 70 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 6f 6c turn.$pathname;.}..return.$resol
7fd80 76 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ved;.}.}.<?php............namesp
7fda0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ace.Composer\Util;..use.Composer
7fdc0 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f \IO\IOInterface;.use.Composer\Co
7fde0 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 nfig;.use.Composer\Downloader\Tr
7fe00 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a ansportException;.use.Composer\J
7fe20 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 0a 7b son\JsonFile;.....class.GitHub.{
7fe40 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 .protected.$io;.protected.$confi
7fe60 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 g;.protected.$process;.protected
7fe80 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .$remoteFilesystem;..........pub
7fea0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 lic.function.__construct(IOInter
7fec0 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 face.$io,.Config.$config,.Proces
7fee0 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 sExecutor.$process.=.null,.Remot
7ff00 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 eFilesystem.$remoteFilesystem.=.
7ff20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e null).{.$this->io.=.$io;.$this->
7ff40 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 config.=.$config;.$this->process
7ff60 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 .=.$process.?:.new.ProcessExecut
7ff80 6f 72 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 or;.$this->remoteFilesystem.=.$r
7ffa0 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c emoteFilesystem.?:.new.RemoteFil
7ffc0 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a esystem($io,.$config);.}........
7ffe0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 public.function.authorizeOAuth($
80000 6f 72 69 67 69 6e 55 72 6c 29 0a 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 72 69 67 originUrl).{.if.(!in_array($orig
80020 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 inUrl,.$this->config->get('githu
80040 62 2d 64 6f 6d 61 69 6e 73 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a b-domains'))).{.return.false;.}.
80060 0a 0a 20 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
80080 63 75 74 65 28 27 67 69 74 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2e 61 63 63 65 73 73 74 6f cute('git.config.github.accessto
800a0 6b 65 6e 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 ken',.$output)).{.$this->io->set
800c0 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 20 74 72 69 6d 28 Authentication($originUrl,.trim(
800e0 24 6f 75 74 70 75 74 29 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 0a 72 65 74 $output),.'x-oauth-basic');..ret
80100 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a urn.true;.}..return.false;.}....
80120 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 6f 72 69 7a 65 .......public.function.authorize
80140 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 OAuthInteractively($originUrl,.$
80160 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 6d 65 73 73 61 67 65 29 20 message.=.null).{.if.($message).
80180 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 {.$this->io->writeError($message
801a0 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 );.}..$this->io->writeError(spri
801c0 6e 74 66 28 27 41 20 74 6f 6b 65 6e 20 77 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 20 61 6e 64 ntf('A.token.will.be.created.and
801e0 20 73 74 6f 72 65 64 20 69 6e 20 22 25 73 22 2c 20 79 6f 75 72 20 70 61 73 73 77 6f 72 64 20 77 .stored.in."%s",.your.password.w
80200 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 73 74 6f 72 65 64 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e ill.never.be.stored',.$this->con
80220 66 69 67 2d 3e 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 67 65 74 4e fig->getAuthConfigSource()->getN
80240 61 6d 65 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 ame()));.$this->io->writeError('
80260 54 6f 20 72 65 76 6f 6b 65 20 61 63 63 65 73 73 20 74 6f 20 74 68 69 73 20 74 6f 6b 65 6e 20 79 To.revoke.access.to.this.token.y
80280 6f 75 20 63 61 6e 20 76 69 73 69 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ou.can.visit.https://github.com/
802a0 73 65 74 74 69 6e 67 73 2f 61 70 70 6c 69 63 61 74 69 6f 6e 73 27 29 3b 0a 0a 24 6f 74 70 20 3d settings/applications');..$otp.=
802c0 20 6e 75 6c 6c 3b 0a 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 77 68 69 .null;.$attemptCounter.=.0;..whi
802e0 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 7b 0a 74 72 79 le.($attemptCounter++.<.5).{.try
80300 20 7b 0a 24 72 65 73 70 6f 6e 73 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 54 6f 6b 65 .{.$response.=.$this->createToke
80320 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6f 74 70 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 n($originUrl,.$otp);.}.catch.(Tr
80340 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 0a 20 0a 20 69 66 20 ansportException.$e).{.......if.
80360 28 69 6e 5f 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 (in_array($e->getCode(),.array(4
80380 30 33 2c 20 34 30 31 29 29 29 20 7b 0a 0a 20 69 66 20 28 34 30 31 20 3d 3d 3d 20 24 65 2d 3e 67 03,.401))).{...if.(401.===.$e->g
803a0 65 74 43 6f 64 65 28 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e etCode().&&.$this->io->hasAuthen
803c0 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 0a 20 24 6f 74 70 20 3d tication($originUrl)).{...$otp.=
803e0 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 77 6f 46 61 63 74 6f 72 41 75 74 68 65 6e 74 69 63 61 .$this->checkTwoFactorAuthentica
80400 74 69 6f 6e 28 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 29 3b 0a 0a 20 69 66 20 28 6e 75 tion($e->getHeaders());...if.(nu
80420 6c 6c 20 21 3d 3d 20 24 6f 74 70 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 ll.!==.$otp).{.continue;.}.}..if
80440 20 28 34 30 31 20 3d 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 24 74 68 69 73 .(401.===.$e->getCode()).{.$this
80460 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 42 61 64 20 63 72 65 64 65 6e 74 69 61 6c ->io->writeError('Bad.credential
80480 73 2e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 s.');.}.else.{.$this->io->writeE
804a0 72 72 6f 72 28 27 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 6c 6f 67 69 6e 20 61 74 rror('Maximum.number.of.login.at
804c0 74 65 6d 70 74 73 20 65 78 63 65 65 64 65 64 2e 20 50 6c 65 61 73 65 20 74 72 79 20 61 67 61 69 tempts.exceeded..Please.try.agai
804e0 6e 20 6c 61 74 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 n.later.');.}..$this->io->writeE
80500 72 72 6f 72 28 27 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6d 61 6e 75 61 6c 6c 79 20 63 72 65 61 rror('You.can.also.manually.crea
80520 74 65 20 61 20 70 65 72 73 6f 6e 61 6c 20 74 6f 6b 65 6e 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 te.a.personal.token.at.https://g
80540 69 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 ithub.com/settings/applications'
80560 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 41 64 64 20 69 74 );.$this->io->writeError('Add.it
80580 20 75 73 69 6e 67 20 22 63 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2d 6f .using."composer.config.github-o
805a0 61 75 74 68 2e 67 69 74 68 75 62 2e 63 6f 6d 20 3c 74 6f 6b 65 6e 3e 22 27 29 3b 0a 0a 63 6f 6e auth.github.com.<token>"');..con
805c0 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 69 6f tinue;.}..throw.$e;.}..$this->io
805e0 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 20 ->setAuthentication($originUrl,.
80600 24 72 65 73 70 6f 6e 73 65 5b 27 74 6f 6b 65 6e 27 5d 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 $response['token'],.'x-oauth-bas
80620 69 63 27 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 43 6f 6e 66 69 67 53 6f ic');.$this->config->getConfigSo
80640 75 72 63 65 28 29 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 urce()->removeConfigSetting('git
80660 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 0a 20 24 74 68 69 73 hub-oauth.'.$originUrl);...$this
80680 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d ->config->getAuthConfigSource()-
806a0 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 6f 61 75 74 68 2e >addConfigSetting('github-oauth.
806c0 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 72 65 73 70 6f 6e 73 65 5b 27 74 6f 6b 65 6e 27 5d '.$originUrl,.$response['token']
806e0 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 );..return.true;.}..throw.new.\R
80700 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 47 69 74 48 75 62 20 untimeException("Invalid.GitHub.
80720 63 72 65 64 65 6e 74 69 61 6c 73 20 35 20 74 69 6d 65 73 20 69 6e 20 61 20 72 6f 77 2c 20 61 62 credentials.5.times.in.a.row,.ab
80740 6f 72 74 69 6e 67 2e 22 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 orting.");.}..private.function.c
80760 72 65 61 74 65 54 6f 6b 65 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6f 74 70 20 3d 20 6e 75 reateToken($originUrl,.$otp.=.nu
80780 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 74 70 20 7c 7c 20 21 24 74 68 69 ll).{.if.(null.===.$otp.||.!$thi
807a0 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 67 69 6e s->io->hasAuthentication($origin
807c0 55 72 6c 29 29 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 Url)).{.$username.=.$this->io->a
807e0 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
80800 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
80820 6f 72 64 3a 20 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 ord:.');..$this->io->setAuthenti
80840 63 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 cation($originUrl,.$username,.$p
80860 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 0a 24 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 27 43 assword);.}..$headers.=.array('C
80880 6f 6e 74 65 6e 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 3b ontent-Type:.application/json');
808a0 0a 69 66 20 28 24 6f 74 70 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 58 2d 47 69 74 .if.($otp).{.$headers[].=.'X-Git
808c0 48 75 62 2d 4f 54 50 3a 20 27 20 2e 20 24 6f 74 70 3b 0a 7d 0a 0a 24 6e 6f 74 65 20 3d 20 27 43 Hub-OTP:.'...$otp;.}..$note.=.'C
808e0 6f 6d 70 6f 73 65 72 27 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 omposer';.if.($this->config->get
80900 28 27 67 69 74 68 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 6e 61 6d 65 27 29 20 3d 3d 3d 20 74 ('github-expose-hostname').===.t
80920 72 75 65 20 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 rue.&&.0.===.$this->process->exe
80940 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 6e 6f cute('hostname',.$output)).{.$no
80960 74 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 0a 7d 0a te..=.'.on.'...trim($output);.}.
80980 24 6e 6f 74 65 20 2e 3d 20 27 20 5b 27 20 2e 20 64 61 74 65 28 27 59 6d 64 48 69 73 27 29 20 2e $note..=.'.['...date('YmdHis')..
809a0 20 27 5d 27 3b 0a 0a 24 61 70 69 55 72 6c 20 3d 20 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d .']';..$apiUrl.=.('github.com'.=
809c0 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 29 20 3f 20 27 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d ==.$originUrl).?.'api.github.com
809e0 27 20 3a 20 24 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 2f 61 70 69 2f 76 33 27 3b 0a 0a 24 6a 73 '.:.$originUrl...'/api/v3';..$js
80a00 6f 6e 20 3d 20 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 on.=.$this->remoteFilesystem->ge
80a20 74 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 tContents($originUrl,.'https://'
80a40 2e 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 ..$apiUrl...'/authorizations',.f
80a60 61 6c 73 65 2c 20 61 72 72 61 79 28 0a 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 alse,.array(.'retry-auth-failure
80a80 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 6d 65 '.=>.false,.'http'.=>.array(.'me
80aa0 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
80ac0 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 24 68 65 61 64 65 72 n'.=>.false,.'header'.=>.$header
80ae0 73 2c 0a 27 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 s,.'content'.=>.json_encode(arra
80b00 79 28 0a 27 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 y(.'scopes'.=>.array('repo'),.'n
80b20 6f 74 65 27 20 3d 3e 20 24 6e 6f 74 65 2c 0a 27 6e 6f 74 65 5f 75 72 6c 27 20 3d 3e 20 27 68 74 ote'.=>.$note,.'note_url'.=>.'ht
80b40 74 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 tps://getcomposer.org/',.)),.).)
80b60 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 54 6f 6b 65 6e );..$this->io->writeError('Token
80b80 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 72 65 61 74 65 64 27 29 3b 0a 0a 72 65 74 75 72 6e .successfully.created');..return
80ba0 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a .JsonFile::parseJson($json);.}..
80bc0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 77 6f 46 61 63 74 6f 72 41 private.function.checkTwoFactorA
80be0 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a uthentication(array.$headers).{.
80c00 24 68 65 61 64 65 72 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 0a 66 75 6e 63 74 69 $headerNames.=.array_map(.functi
80c20 6f 6e 20 28 24 68 65 61 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 74 6f 6c 6f 77 65 72 on.($header).{.return.strtolower
80c40 28 73 74 72 73 74 72 28 24 68 65 61 64 65 72 2c 20 27 3a 27 2c 20 74 72 75 65 29 29 3b 0a 7d 2c (strstr($header,.':',.true));.},
80c60 0a 24 68 65 61 64 65 72 73 0a 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 6b 65 .$headers.);..if.(false.!==.($ke
80c80 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 27 78 2d 67 69 74 68 75 62 2d 6f 74 70 27 2c y.=.array_search('x-github-otp',
80ca0 20 24 68 65 61 64 65 72 4e 61 6d 65 73 29 29 29 20 7b 0a 6c 69 73 74 28 24 72 65 71 75 69 72 65 .$headerNames))).{.list($require
80cc0 64 2c 20 24 6d 65 74 68 6f 64 29 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 27 74 72 69 6d 27 2c 20 d,.$method).=.array_map('trim',.
80ce0 65 78 70 6c 6f 64 65 28 27 3b 27 2c 20 73 75 62 73 74 72 28 73 74 72 73 74 72 28 24 68 65 61 64 explode(';',.substr(strstr($head
80d00 65 72 73 5b 24 6b 65 79 5d 2c 20 27 3a 27 29 2c 20 31 29 29 29 3b 0a 0a 69 66 20 28 27 72 65 71 ers[$key],.':'),.1)));..if.('req
80d20 75 69 72 65 64 27 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 uired'.===.$required).{.$this->i
80d40 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 54 77 6f 2d 66 61 63 74 6f 72 20 41 75 74 68 65 6e o->writeError('Two-factor.Authen
80d60 74 69 63 61 74 69 6f 6e 27 29 3b 0a 0a 69 66 20 28 27 61 70 70 27 20 3d 3d 3d 20 24 6d 65 74 68 tication');..if.('app'.===.$meth
80d80 6f 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4f 70 65 od).{.$this->io->writeError('Ope
80da0 6e 20 74 68 65 20 74 77 6f 2d 66 61 63 74 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 n.the.two-factor.authentication.
80dc0 61 70 70 20 6f 6e 20 79 6f 75 72 20 64 65 76 69 63 65 20 74 6f 20 76 69 65 77 20 79 6f 75 72 20 app.on.your.device.to.view.your.
80de0 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 63 6f 64 65 20 61 6e 64 20 76 65 72 69 66 79 20 79 authentication.code.and.verify.y
80e00 6f 75 72 20 69 64 65 6e 74 69 74 79 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 27 73 6d 73 27 20 3d 3d our.identity.');.}..if.('sms'.==
80e20 3d 20 24 6d 65 74 68 6f 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 =.$method).{.$this->io->writeErr
80e40 6f 72 28 27 59 6f 75 20 68 61 76 65 20 62 65 65 6e 20 73 65 6e 74 20 61 6e 20 53 4d 53 20 6d 65 or('You.have.been.sent.an.SMS.me
80e60 73 73 61 67 65 20 77 69 74 68 20 61 6e 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 63 6f 64 ssage.with.an.authentication.cod
80e80 65 20 74 6f 20 76 65 72 69 66 79 20 79 6f 75 72 20 69 64 65 6e 74 69 74 79 2e 27 29 3b 0a 7d 0a e.to.verify.your.identity.');.}.
80ea0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 41 75 74 68 65 6e 74 69 .return.$this->io->ask('Authenti
80ec0 63 61 74 69 6f 6e 20 43 6f 64 65 3a 20 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c cation.Code:.');.}.}..return.nul
80ee0 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
80f00 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d e.Composer\Util;.......class.Com
80f20 70 6f 73 65 72 4d 69 72 72 6f 72 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 poserMirror.{.public.static.func
80f40 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 24 6d 69 72 72 6f 72 55 72 6c 2c 20 24 70 61 63 tion.processUrl($mirrorUrl,.$pac
80f60 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 72 65 66 65 72 65 6e 63 65 2c 20 kageName,.$version,.$reference,.
80f80 24 74 79 70 65 29 0a 7b 0a 69 66 20 28 24 72 65 66 65 72 65 6e 63 65 29 20 7b 0a 24 72 65 66 65 $type).{.if.($reference).{.$refe
80fa0 72 65 6e 63 65 20 3d 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 61 2d 66 30 2d 39 5d 2a rence.=.preg_match('{^([a-f0-9]*
80fc0 7c 25 72 65 66 65 72 65 6e 63 65 25 29 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 20 3f 20 |%reference%)$}',.$reference).?.
80fe0 24 72 65 66 65 72 65 6e 63 65 20 3a 20 6d 64 35 28 24 72 65 66 65 72 65 6e 63 65 29 3b 0a 7d 0a $reference.:.md5($reference);.}.
81000 24 76 65 72 73 69 6f 6e 20 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 2f 27 29 $version.=.strpos($version,.'/')
81020 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 24 76 65 72 73 69 6f 6e 20 3a 20 6d 64 35 28 24 76 65 72 .===.false.?.$version.:.md5($ver
81040 73 69 6f 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 0a 61 72 72 61 sion);..return.str_replace(.arra
81060 79 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 25 76 65 72 73 69 6f 6e 25 27 2c 20 27 25 72 65 y('%package%',.'%version%',.'%re
81080 66 65 72 65 6e 63 65 25 27 2c 20 27 25 74 79 70 65 25 27 29 2c 0a 61 72 72 61 79 28 24 70 61 63 ference%',.'%type%'),.array($pac
810a0 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 72 65 66 65 72 65 6e 63 65 2c 20 kageName,.$version,.$reference,.
810c0 24 74 79 70 65 29 2c 0a 24 6d 69 72 72 6f 72 55 72 6c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 $type),.$mirrorUrl.);.}..public.
810e0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 47 69 74 55 72 6c 28 24 6d static.function.processGitUrl($m
81100 69 72 72 6f 72 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 75 72 6c 2c 20 24 74 irrorUrl,.$packageName,.$url,.$t
81120 79 70 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 ype).{.if.(preg_match('#^(?:(?:h
81140 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 67 69 ttps?|git)://github\.com/|git@gi
81160 74 68 75 62 5c 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 thub\.com:)([^/]+)/(.+?)(?:\.git
81180 29 3f 24 23 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 27 )?$#',.$url,.$match)).{.$url.=.'
811a0 67 68 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 gh-'.$match[1].'/'.$match[2];.}.
811c0 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 elseif.(preg_match('#^https://bi
811e0 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 28 3f 3a 5c 2e 67 tbucket\.org/([^/]+)/(.+?)(?:\.g
81200 69 74 29 3f 2f 3f 24 23 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c it)?/?$#',.$url,.$match)).{.$url
81220 20 3d 20 27 62 62 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d .=.'bb-'.$match[1].'/'.$match[2]
81240 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ;.}.else.{.$url.=.preg_replace('
81260 7b 5b 5e 61 2d 7a 30 2d 39 5f 2e 2d 5d 7d 69 27 2c 20 27 2d 27 2c 20 74 72 69 6d 28 24 75 72 6c {[^a-z0-9_.-]}i',.'-',.trim($url
81280 2c 20 27 2f 27 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 0a ,.'/'));.}..return.str_replace(.
812a0 61 72 72 61 79 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 25 6e 6f 72 6d 61 6c 69 7a 65 64 55 array('%package%',.'%normalizedU
812c0 72 6c 25 27 2c 20 27 25 74 79 70 65 25 27 29 2c 0a 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e rl%',.'%type%'),.array($packageN
812e0 61 6d 65 2c 20 24 75 72 6c 2c 20 24 74 79 70 65 29 2c 0a 24 6d 69 72 72 6f 72 55 72 6c 0a 29 3b ame,.$url,.$type),.$mirrorUrl.);
81300 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 70 72 6f 63 65 .}..public.static.function.proce
81320 73 73 48 67 55 72 6c 28 24 6d 69 72 72 6f 72 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 ssHgUrl($mirrorUrl,.$packageName
81340 2c 20 24 75 72 6c 2c 20 24 74 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 70 72 ,.$url,.$type).{.return.self::pr
81360 6f 63 65 73 73 47 69 74 55 72 6c 28 24 6d 69 72 72 6f 72 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 ocessGitUrl($mirrorUrl,.$package
81380 4e 61 6d 65 2c 20 24 75 72 6c 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a Name,.$url,.$type);.}.}.<?php...
813a0 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 6c .........namespace.Composer\Util
813c0 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 0a ;..use.Composer\IO\IOInterface;.
813e0 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 72 use.Symfony\Component\Process\Pr
81400 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 74 ocess;.....class.Perforce.{.prot
81420 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 3b ected.$path;.protected.$p4Depot;
81440 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 20 .protected.$p4Client;.protected.
81460 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 0a $p4User;.protected.$p4Password;.
81480 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 34 protected.$p4Port;.protected.$p4
814a0 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 3b Stream;.protected.$p4ClientSpec;
814c0 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 74 .protected.$p4DepotType;.protect
814e0 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 73 ed.$p4Branch;.protected.$process
81500 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 6e ;.protected.$uniquePerforceClien
81520 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 70 tName;.protected.$windowsFlag;.p
81540 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 72 6f 74 65 63 rotected.$commandResult;..protec
81560 74 65 64 20 24 69 6f 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b ted.$io;..protected.$filesystem;
81580 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 ..public.function.__construct($r
815a0 65 70 6f 43 6f 6e 66 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 epoConfig,.$port,.$path,.Process
815c0 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 2c 20 24 69 73 57 69 6e 64 6f 77 73 2c 20 49 Executor.$process,.$isWindows,.I
815e0 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 77 69 6e 64 6f 77 73 OInterface.$io).{.$this->windows
81600 46 6c 61 67 20 3d 20 24 69 73 57 69 6e 64 6f 77 73 3b 0a 24 74 68 69 73 2d 3e 70 34 50 6f 72 74 Flag.=.$isWindows;.$this->p4Port
81620 20 3d 20 24 70 6f 72 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 50 61 74 68 28 .=.$port;.$this->initializePath(
81640 24 70 61 74 68 29 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 $path);.$this->process.=.$proces
81660 73 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 s;.$this->initialize($repoConfig
81680 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 );.$this->io.=.$io;.}..public.st
816a0 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 atic.function.create($repoConfig
816c0 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 72 20 ,.$port,.$path,.ProcessExecutor.
816e0 24 70 72 6f 63 65 73 73 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 73 $process,.IOInterface.$io).{.$is
81700 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 4f 57 53 5f 56 Windows.=.defined('PHP_WINDOWS_V
81720 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 3b 0a 24 70 65 72 66 6f 72 63 65 20 3d 20 6e 65 77 20 ERSION_BUILD');.$perforce.=.new.
81740 50 65 72 66 6f 72 63 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 70 6f 72 74 2c 20 24 70 61 Perforce($repoConfig,.$port,.$pa
81760 74 68 2c 20 24 70 72 6f 63 65 73 73 2c 20 24 69 73 57 69 6e 64 6f 77 73 2c 20 24 69 6f 29 3b 0a th,.$process,.$isWindows,.$io);.
81780 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 73 74 61 .return.$perforce;.}..public.sta
817a0 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 73 74 73 28 24 tic.function.checkServerExists($
817c0 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 73 73 45 78 65 url,.ProcessExecutor.$processExe
817e0 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 0a 72 65 74 75 72 6e cutor).{.$output.=.null;..return
81800 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 63 75 74 65 .0.===.$processExecutor->execute
81820 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 27 2c 20 24 ('p4.-p.'...$url...'.info.-s',.$
81840 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 69 6e 69 74 output);.}..public.function.init
81860 69 61 6c 69 7a 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 ialize($repoConfig).{.$this->uni
81880 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 quePerforceClientName.=.$this->g
818a0 65 6e 65 72 61 74 65 55 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 28 enerateUniquePerforceClientName(
818c0 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b 0a 72 65 );.if.(null.==.$repoConfig).{.re
818e0 74 75 72 6e 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 5b 27 75 turn;.}.if.(isset($repoConfig['u
81900 6e 69 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 29 29 20 7b nique_perforce_client_name'])).{
81920 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 6d 65 .$this->uniquePerforceClientName
81940 20 3d 20 24 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 .=.$repoConfig['unique_perforce_
81960 63 6c 69 65 6e 74 5f 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 client_name'];.}..if.(isset($rep
81980 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 oConfig['depot'])).{.$this->p4De
819a0 70 6f 74 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 3b 0a 7d 0a 69 66 pot.=.$repoConfig['depot'];.}.if
819c0 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 29 29 20 .(isset($repoConfig['branch'])).
819e0 7b 0a 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b {.$this->p4Branch.=.$repoConfig[
81a00 27 62 72 61 6e 63 68 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 'branch'];.}.if.(isset($repoConf
81a20 69 67 5b 27 70 34 75 73 65 72 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d ig['p4user'])).{.$this->p4User.=
81a40 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 75 73 65 72 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b .$repoConfig['p4user'];.}.else.{
81a60 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 76 61 72 .$this->p4User.=.$this->getP4var
81a80 69 61 62 6c 65 28 27 50 34 55 53 45 52 27 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 iable('P4USER');.}.if.(isset($re
81aa0 70 6f 43 6f 6e 66 69 67 5b 27 70 34 70 61 73 73 77 6f 72 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 poConfig['p4password'])).{.$this
81ac0 2d 3e 70 34 50 61 73 73 77 6f 72 64 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 70 61 ->p4Password.=.$repoConfig['p4pa
81ae0 73 73 77 6f 72 64 27 5d 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 ssword'];.}.}..public.function.i
81b00 6e 69 74 69 61 6c 69 7a 65 44 65 70 6f 74 41 6e 64 42 72 61 6e 63 68 28 24 64 65 70 6f 74 2c 20 nitializeDepotAndBranch($depot,.
81b20 24 62 72 61 6e 63 68 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 70 6f 74 29 29 20 7b 0a $branch).{.if.(isset($depot)).{.
81b40 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 3d 20 24 64 65 70 6f 74 3b 0a 7d 0a 69 66 20 28 69 $this->p4Depot.=.$depot;.}.if.(i
81b60 73 73 65 74 28 24 62 72 61 6e 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 sset($branch)).{.$this->p4Branch
81b80 20 3d 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .=.$branch;.}.}..public.function
81ba0 20 67 65 6e 65 72 61 74 65 55 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d .generateUniquePerforceClientNam
81bc0 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 67 65 74 68 6f 73 74 6e 61 6d 65 28 29 20 2e 20 22 5f 22 e().{.return.gethostname()..."_"
81be0 20 2e 20 74 69 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 63 6c ...time();.}..public.function.cl
81c00 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 63 6c 69 65 6e 74 20 3d 20 24 74 eanupClientSpec().{.$client.=.$t
81c20 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 3b 0a 24 74 61 73 6b 20 3d 20 27 63 6c 69 65 6e his->getClient();.$task.=.'clien
81c40 74 20 2d 64 20 27 20 2e 20 24 63 6c 69 65 6e 74 3b 0a 24 75 73 65 50 34 43 6c 69 65 6e 74 20 3d t.-d.'...$client;.$useP4Client.=
81c60 20 66 61 6c 73 65 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 .false;.$command.=.$this->genera
81c80 74 65 50 34 43 6f 6d 6d 61 6e 64 28 24 74 61 73 6b 2c 20 24 75 73 65 50 34 43 6c 69 65 6e 74 29 teP4Command($task,.$useP4Client)
81ca0 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
81cc0 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
81ce0 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 24 74 68 69 73 2d 3e entSpec();.$fileSystem.=.$this->
81d00 67 65 74 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 53 79 73 74 65 6d 2d 3e 72 65 getFilesystem();.$fileSystem->re
81d20 6d 6f 76 65 28 24 63 6c 69 65 6e 74 53 70 65 63 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 move($clientSpec);.}..protected.
81d40 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 function.executeCommand($command
81d60 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 20 3d 20 22 22 3b 0a 24 ).{.$this->commandResult.=."";.$
81d80 65 78 69 74 5f 63 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 exit_code.=.$this->process->exec
81da0 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 ute($command,.$this->commandResu
81dc0 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 5f 63 6f 64 65 3b 0a 7d 0a 0a 70 75 62 6c lt);..return.$exit_code;.}..publ
81de0 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 0a 69 66 20 28 21 69 ic.function.getClient().{.if.(!i
81e00 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 24 63 6c 65 61 6e 53 sset($this->p4Client)).{.$cleanS
81e20 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 40 27 2c 20 27 27 2c treamName.=.str_replace('@',.'',
81e40 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 72 5f 72 65 70 6c 61 .str_replace('/',.'_',.str_repla
81e60 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 72 65 61 6d 28 29 29 ce('//',.'',.$this->getStream())
81e80 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 6d 70 6f 73 65 72 5f ));.$this->p4Client.=.'composer_
81ea0 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 65 50 65 72 66 6f 72 perforce_'...$this->uniquePerfor
81ec0 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 61 6e 53 74 72 65 61 ceClientName...'_'...$cleanStrea
81ee0 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 34 43 6c 69 65 6e 74 mName;.}..return.$this->p4Client
81f00 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 74 68 28 ;.}..protected.function.getPath(
81f20 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 0a 0a 70 75 62 6c 69 ).{.return.$this->path;.}..publi
81f40 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 28 24 70 61 74 68 29 c.function.initializePath($path)
81f60 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 66 73 20 3d 20 24 74 .{.$this->path.=.$path;.$fs.=.$t
81f80 68 69 73 2d 3e 67 65 74 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 his->getFilesystem();.$fs->ensur
81fa0 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 74 eDirectoryExists($path);.}..prot
81fc0 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 72 ected.function.getPort().{.retur
81fe0 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 74 n.$this->p4Port;.}..public.funct
82000 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 3e ion.setStream($stream).{.$this->
82020 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 72 p4Stream.=.$stream;.$index.=.str
82040 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 78 rpos($stream,.'/');...if.($index
82060 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 74 .>.2).{.$this->p4DepotType.=.'st
82080 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 74 ream';.}.}..public.function.isSt
820a0 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 70 ream().{.return.(strcmp($this->p
820c0 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 0a 4DepotType,.'stream').===.0);.}.
820e0 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 69 .public.function.getStream().{.i
82100 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 66 f.(!isset($this->p4Stream)).{.if
82120 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 34 .($this->isStream()).{.$this->p4
82140 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 2e Stream.=.'//'...$this->p4Depot..
82160 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 7b .'/'...$this->p4Branch;.}.else.{
82180 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 2d .$this->p4Stream.=.'//'...$this-
821a0 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 53 >p4Depot;.}.}..return.$this->p4S
821c0 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 72 tream;.}..public.function.getStr
821e0 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 65 eamWithoutLabel($stream).{.$inde
82200 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 69 x.=.strpos($stream,.'@');.if.($i
82220 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 6d ndex.===.false).{.return.$stream
82240 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 24 ;.}..return.substr($stream,.0,.$
82260 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 34 index);.}..public.function.getP4
82280 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 24 ClientSpec().{.$p4clientSpec.=.$
822a0 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 69 this->path...'/'...$this->getCli
822c0 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 63 ent()...'.p4.spec';..return.$p4c
822e0 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 65 lientSpec;.}..public.function.ge
82300 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 0a tUser().{.return.$this->p4User;.
82320 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 72 28 24 75 73 65 72 }..public.function.setUser($user
82340 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 75 73 65 72 3b 0a 7d 0a 0a 70 75 ).{.$this->p4User.=.$user;.}..pu
82360 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 29 0a 7b 0a 24 74 blic.function.queryP4User().{.$t
82380 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 his->getUser();.if.(strlen($this
823a0 2d 3e 70 34 55 73 65 72 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 74 68 69 73 ->p4User).>.0).{.return;.}.$this
823c0 2d 3e 70 34 55 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 ->p4User.=.$this->getP4variable(
823e0 27 50 34 55 53 45 52 27 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 34 55 'P4USER');.if.(strlen($this->p4U
82400 73 65 72 29 20 3e 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 ser).>.0).{.return;.}.$this->p4U
82420 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 45 6e 74 65 72 20 50 34 20 55 ser.=.$this->io->ask('Enter.P4.U
82440 73 65 72 3a 27 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 ser:');.if.($this->windowsFlag).
82460 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 70 34 20 73 65 74 20 50 34 55 53 45 52 3d 27 20 2e 20 {.$command.=.'p4.set.P4USER='...
82480 24 74 68 69 73 2d 3e 70 34 55 73 65 72 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 $this->p4User;.}.else.{.$command
824a0 20 3d 20 27 65 78 70 6f 72 74 20 50 34 55 53 45 52 3d 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 55 .=.'export.P4USER='...$this->p4U
824c0 73 65 72 3b 0a 7d 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 ser;.}.$this->executeCommand($co
824e0 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 mmand);.}..protected.function.ge
82500 74 50 34 76 61 72 69 61 62 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e tP4variable($name).{.if.($this->
82520 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 73 65 windowsFlag).{.$command.=.'p4.se
82540 74 27 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 t';.$this->executeCommand($comma
82560 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 nd);.$result.=.trim($this->comma
82580 6e 64 52 65 73 75 6c 74 29 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 ndResult);.$resArray.=.explode(P
825a0 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
825c0 72 72 61 79 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f rray.as.$line).{.$fields.=.explo
825e0 64 65 28 27 3d 27 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 73 74 72 63 6d 70 28 24 6e 61 6d 65 de('=',.$line);.if.(strcmp($name
82600 2c 20 24 66 69 65 6c 64 73 5b 30 5d 29 20 3d 3d 20 30 29 20 7b 0a 24 69 6e 64 65 78 20 3d 20 73 ,.$fields[0]).==.0).{.$index.=.s
82620 74 72 70 6f 73 28 24 66 69 65 6c 64 73 5b 31 5d 2c 20 27 20 27 29 3b 0a 69 66 20 28 24 69 6e 64 trpos($fields[1],.'.');.if.($ind
82640 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 66 69 65 6c 64 73 ex.===.false).{.$value.=.$fields
82660 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 61 6c 75 65 20 3d 20 73 75 62 73 74 72 28 24 66 [1];.}.else.{.$value.=.substr($f
82680 69 65 6c 64 73 5b 31 5d 2c 20 30 2c 20 24 69 6e 64 65 78 29 3b 0a 7d 0a 24 76 61 6c 75 65 20 3d ields[1],.0,.$index);.}.$value.=
826a0 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d .trim($value);..return.$value;.}
826c0 0a 7d 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 24 27 20 .}.}.else.{.$command.=.'echo.$'.
826e0 2e 20 24 6e 61 6d 65 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 ..$name;.$this->executeCommand($
82700 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 69 73 2d 3e command);.$result.=.trim($this->
82720 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b commandResult);..return.$result;
82740 0a 7d 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 50 61 73 .}.}..public.function.queryP4Pas
82760 73 77 6f 72 64 28 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 sword().{.if.(isset($this->p4Pas
82780 73 77 6f 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 sword)).{.return.$this->p4Passwo
827a0 72 64 3b 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 rd;.}.$password.=.$this->getP4va
827c0 72 69 61 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 riable('P4PASSWD');.if.(strlen($
827e0 70 61 73 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 74 password).<=.0).{.$password.=.$t
82800 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 45 6e 74 65 72 his->io->askAndHideAnswer('Enter
82820 20 70 61 73 73 77 6f 72 64 20 66 6f 72 20 50 65 72 66 6f 72 63 65 20 75 73 65 72 20 27 20 2e 20 .password.for.Perforce.user.'...
82840 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 27 3a 20 27 29 3b 0a 7d 0a 24 74 68 69 $this->getUser()...':.');.}.$thi
82860 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 20 3d 20 24 70 61 73 73 77 6f 72 64 3b 0a 0a 72 65 74 75 s->p4Password.=.$password;..retu
82880 72 6e 20 24 70 61 73 73 77 6f 72 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rn.$password;.}..public.function
828a0 20 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 73 .generateP4Command($command,.$us
828c0 65 43 6c 69 65 6e 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 27 eClient.=.true).{.$p4Command.=.'
828e0 70 34 20 27 3b 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 p4.';.$p4Command.=.$p4Command...
82900 27 2d 75 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 27 20 27 3b 0a '-u.'...$this->getUser()...'.';.
82920 69 66 20 28 24 75 73 65 43 6c 69 65 6e 74 29 20 7b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 if.($useClient).{.$p4Command.=.$
82940 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 27 2d 63 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c p4Command...'-c.'...$this->getCl
82960 69 65 6e 74 28 29 20 2e 20 27 20 27 3b 0a 7d 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 ient()...'.';.}.$p4Command.=.$p4
82980 43 6f 6d 6d 61 6e 64 20 2e 20 27 2d 70 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 6f 72 74 Command...'-p.'...$this->getPort
829a0 28 29 20 2e 20 27 20 27 3b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e ()...'.';.$p4Command.=.$p4Comman
829c0 64 20 2e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 72 65 74 75 72 6e 20 24 70 34 43 6f 6d 6d 61 6e 64 d...$command;..return.$p4Command
829e0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 67 67 65 64 49 6e 28 ;.}..public.function.isLoggedIn(
82a00 29 0a 7b 0a 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 ).{.$command.=.$this->generateP4
82a20 43 6f 6d 6d 61 6e 64 28 27 6c 6f 67 69 6e 20 2d 73 27 2c 20 66 61 6c 73 65 29 3b 0a 24 65 78 69 Command('login.-s',.false);.$exi
82a40 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 6e 64 28 24 63 tCode.=.$this->executeCommand($c
82a60 6f 6d 6d 61 6e 64 29 3b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 29 20 7b 0a 24 65 72 72 6f 72 ommand);.if.($exitCode).{.$error
82a80 4f 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
82aa0 72 4f 75 74 70 75 74 28 29 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 65 72 72 6f rOutput();.$index.=.strpos($erro
82ac0 72 4f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 29 3b 0a 69 66 20 28 rOutput,.$this->getUser());.if.(
82ae0 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 $index.===.false).{.$index.=.str
82b00 70 6f 73 28 24 65 72 72 6f 72 4f 75 74 70 75 74 2c 20 27 70 34 27 29 3b 0a 69 66 20 28 24 69 6e pos($errorOutput,.'p4');.if.($in
82b20 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d dex.===.false).{.return.false;.}
82b40 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 70 34 20 63 6f 6d 6d 61 6e .throw.new.\Exception('p4.comman
82b60 64 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 70 61 74 68 3a 20 27 20 2e 20 24 65 72 72 6f 72 4f d.not.found.in.path:.'...$errorO
82b80 75 74 70 75 74 29 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 utput);.}.throw.new.\Exception('
82ba0 49 6e 76 61 6c 69 64 20 75 73 65 72 20 6e 61 6d 65 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 Invalid.user.name:.'...$this->ge
82bc0 74 55 73 65 72 28 29 20 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 tUser().);.}..return.true;.}..pu
82be0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 43 6c 69 65 6e 74 28 29 0a 7b 0a blic.function.connectClient().{.
82c00 24 70 34 43 72 65 61 74 65 43 6c 69 65 6e 74 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e $p4CreateClientCommand.=.$this->
82c20 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 63 6c 69 65 6e 74 20 2d 69 20 3c 20 27 generateP4Command('client.-i.<.'
82c40 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 20 22 20 22 2c 20 22 5c 5c 20 22 2c 20 24 74 68 69 ...str_replace(.".",."\\.",.$thi
82c60 73 2d 3e 67 65 74 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 20 29 29 3b 0a 24 74 68 69 73 2d 3e s->getP4ClientSpec().));.$this->
82c80 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 70 34 43 72 65 61 74 65 43 6c 69 65 6e 74 43 6f executeCommand($p4CreateClientCo
82ca0 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 79 6e 63 43 mmand);.}..public.function.syncC
82cc0 6f 64 65 42 61 73 65 28 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 70 72 65 odeBase($sourceReference).{.$pre
82ce0 76 44 69 72 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 72 28 24 74 68 69 73 2d 3e 70 61 vDir.=.getcwd();.chdir($this->pa
82d00 74 68 29 3b 0a 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e th);.$p4SyncCommand.=.$this->gen
82d20 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 73 79 6e 63 20 2d 66 20 27 29 3b 0a 69 66 20 28 erateP4Command('sync.-f.');.if.(
82d40 6e 75 6c 6c 20 21 3d 20 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 29 20 7b 0a 24 70 34 53 null.!=.$sourceReference).{.$p4S
82d60 79 6e 63 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 20 2e 20 27 40 yncCommand.=.$p4SyncCommand...'@
82d80 27 20 2e 20 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 65 '...$sourceReference;.}.$this->e
82da0 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 3b 0a 63 xecuteCommand($p4SyncCommand);.c
82dc0 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 6e 63 74 69 hdir($prevDir);.}..public.functi
82de0 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 65 63 29 0a on.writeClientSpecToFile($spec).
82e00 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 20 24 74 68 {.fwrite($spec,.'Client:.'...$th
82e20 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 50 48 50 5f is->getClient()...PHP_EOL...PHP_
82e40 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 20 27 20 2e EOL);.fwrite($spec,.'Update:.'..
82e60 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 4f 4c 20 2e .date('Y/m/d.H:i:s')...PHP_EOL..
82e80 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 63 65 73 73 .PHP_EOL);.fwrite($spec,.'Access
82ea0 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 50 48 50 5f :.'...date('Y/m/d.H:i:s')...PHP_
82ec0 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 20 27 20 2e EOL);.fwrite($spec,.'Owner:..'..
82ee0 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 2e 20 50 48 .$this->getUser()...PHP_EOL...PH
82f00 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 69 70 74 69 P_EOL);.fwrite($spec,.'Descripti
82f20 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 63 2c 20 27 on:'...PHP_EOL);.fwrite($spec,.'
82f40 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 73 65 72 28 ..Created.by.'...$this->getUser(
82f60 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 45 4f 4c 20 )...'.from.composer.'...PHP_EOL.
82f80 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 6f 6f 74 3a ..PHP_EOL);.fwrite($spec,.'Root:
82fa0 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 45 4f 4c 20 .'...$this->getPath()...PHP_EOL.
82fc0 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 70 74 69 6f ..PHP_EOL);.fwrite($spec,.'Optio
82fe0 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 63 6f 6d 70 ns:..noallwrite.noclobber.nocomp
83000 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 20 2e 20 50 ress.unlocked.modtime.rmdir'...P
83020 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 70 65 63 2c HP_EOL...PHP_EOL);.fwrite($spec,
83040 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 61 6e 67 65 .'SubmitOptions:..revertunchange
83060 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 69 74 65 28 d'...PHP_EOL...PHP_EOL);.fwrite(
83080 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 48 50 5f 45 $spec,.'LineEnd:..local'...PHP_E
830a0 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 53 74 72 65 OL...PHP_EOL);.if.($this->isStre
830c0 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 6d 3a 27 20 am()).{.fwrite($spec,.'Stream:'.
830e0 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 20 27 20 2e ..PHP_EOL);.fwrite($spec,.'..'..
83100 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 6c 28 24 74 .$this->getStreamWithoutLabel($t
83120 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 20 65 6c 73 his->p4Stream)...PHP_EOL);.}.els
83140 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 20 2e 20 24 e.{.fwrite(.$spec,.'View:..'...$
83160 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 2f 27 20 2e this->getStream()...'/.....//'..
83180 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 27 20 2e 20 .$this->getClient()...'/....'...
831a0 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 69 6f 6e 20 PHP_EOL.);.}.}..public.function.
831c0 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 74 53 70 65 writeP4ClientSpec().{.$clientSpe
831e0 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 3b 0a 24 73 c.=.$this->getP4ClientSpec();.$s
83200 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 29 3b 0a 74 pec.=.fopen($clientSpec,.'w');.t
83220 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 6f 46 69 6c ry.{.$this->writeClientSpecToFil
83240 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 6e 20 24 65 e($spec);.}.catch.(\Exception.$e
83260 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 0a 7d 0a 66 ).{.fclose($spec);.throw.$e;.}.f
83280 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 75 6e 63 74 close($spec);.}..protected.funct
832a0 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 28 66 65 6f ion.read($pipe,.$name).{.if.(feo
832c0 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 3d 20 66 67 f($pipe)).{.return;.}.$line.=.fg
832e0 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 66 61 6c 73 ets($pipe);.while.($line.!=.fals
83300 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 0a 0a 72 65 e).{.$line.=.fgets($pipe);.}..re
83320 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 64 6f 77 73 turn;.}..public.function.windows
83340 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 3d 20 24 74 Login($password).{.$command.=.$t
83360 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 69 6e 20 2d his->generateP4Command('.login.-
83380 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 24 63 6f 6d a');.$process.=.new.Process($com
833a0 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 3b 0a 0a 72 mand,.null,.null,.$password);..r
833c0 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 62 6c 69 63 eturn.$process->run();.}..public
833e0 20 66 75 6e 63 74 69 6f 6e 20 70 34 4c 6f 67 69 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 71 75 65 .function.p4Login().{.$this->que
83400 72 79 50 34 55 73 65 72 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 67 67 65 64 ryP4User();.if.(!$this->isLogged
83420 49 6e 28 29 29 20 7b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 In()).{.$password.=.$this->query
83440 50 34 50 61 73 73 77 6f 72 64 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 P4Password();.if.($this->windows
83460 46 6c 61 67 29 20 7b 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 Flag).{.$this->windowsLogin($pas
83480 73 77 6f 72 64 29 3b 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 sword);.}.else.{.$command.=.'ech
834a0 6f 20 27 20 2e 20 24 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 o.'...$password...'.|.'...$this-
834c0 3e 67 65 6e 65 72 61 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 >generateP4Command('.login.-a',.
834e0 66 61 6c 73 65 29 3b 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 false);.$exitCode.=.$this->execu
83500 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 20 3d 20 74 teCommand($command);.$result.=.t
83520 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 69 66 20 28 24 rim($this->commandResult);.if.($
83540 65 78 69 74 43 6f 64 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e exitCode).{.throw.new.\Exception
83560 28 22 45 72 72 6f 72 20 6c 6f 67 67 69 6e 67 20 69 6e 3a 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 ("Error.logging.in:"...$this->pr
83580 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());.}.}.}.
835a0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e }..public.function.getComposerIn
835c0 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 69 6e 64 65 78 20 formation($identifier).{.$index.
835e0 3d 20 73 74 72 70 6f 73 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 40 27 29 3b 0a 69 66 20 28 =.strpos($identifier,.'@');.if.(
83600 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f $index.===.false).{.$composerJso
83620 6e 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e n.=.$identifier..'/composer.json
83640 27 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 ';..return.$this->getComposerInf
83660 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 3b ormationFromPath($composerJson);
83680 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 .}..return.$this->getComposerInf
836a0 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 4c 61 62 65 6c 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 ormationFromLabel($identifier,.$
836c0 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 43 6f index);.}..public.function.getCo
836e0 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 6f 6d 70 6f mposerInformationFromPath($compo
83700 73 65 72 4a 73 6f 6e 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e serJson).{.$command.=.$this->gen
83720 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 70 72 69 6e 74 20 27 20 2e 20 24 63 6f 6d 70 erateP4Command('.print.'...$comp
83740 6f 73 65 72 4a 73 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 oserJson);.$this->executeCommand
83760 28 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 ($command);.$result.=.$this->com
83780 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 mandResult;.$index.=.strpos($res
837a0 75 6c 74 2c 20 27 7b 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 ult,.'{');.if.($index.===.false)
837c0 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 69 66 20 28 24 69 6e 64 65 78 20 3e 3d 20 30 29 .{.return.'';.}.if.($index.>=.0)
837e0 20 7b 0a 24 72 61 77 44 61 74 61 20 3d 20 73 75 62 73 74 72 28 24 72 65 73 75 6c 74 2c 20 24 69 .{.$rawData.=.substr($result,.$i
83800 6e 64 65 78 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 20 3d 20 6a 73 6f 6e 5f 64 65 63 ndex);.$composer_info.=.json_dec
83820 6f 64 65 28 24 72 61 77 44 61 74 61 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f ode($rawData,.true);..return.$co
83840 6d 70 6f 73 65 72 5f 69 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 70 75 mposer_info;.}..return.'';.}..pu
83860 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
83880 74 69 6f 6e 46 72 6f 6d 4c 61 62 65 6c 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 69 6e 64 65 tionFromLabel($identifier,.$inde
838a0 78 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 x).{.$composerJsonPath.=.substr(
838c0 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
838e0 6f 73 65 72 2e 6a 73 6f 6e 27 20 2e 20 73 75 62 73 74 72 28 24 69 64 65 6e 74 69 66 69 65 72 2c oser.json'...substr($identifier,
83900 20 24 69 6e 64 65 78 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 .$index);.$command.=.$this->gene
83920 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 66 69 6c 65 73 20 27 20 2e 20 24 63 6f 6d 70 6f rateP4Command('.files.'...$compo
83940 73 65 72 4a 73 6f 6e 50 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 serJsonPath,.false);.$this->exec
83960 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 20 3d 20 uteCommand($command);.$result.=.
83980 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 32 20 3d 20 $this->commandResult;.$index2.=.
839a0 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 27 6e 6f 20 73 75 63 68 20 66 69 6c 65 28 73 29 strpos($result,.'no.such.file(s)
839c0 2e 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 32 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 .');.if.($index2.===.false).{.$i
839e0 6e 64 65 78 33 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 27 63 68 61 6e 67 65 27 ndex3.=.strpos($result,.'change'
83a00 29 3b 0a 69 66 20 28 21 28 24 69 6e 64 65 78 33 20 3d 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 );.if.(!($index3.===.false)).{.$
83a20 70 68 72 61 73 65 20 3d 20 74 72 69 6d 28 73 75 62 73 74 72 28 24 72 65 73 75 6c 74 2c 20 24 69 phrase.=.trim(substr($result,.$i
83a40 6e 64 65 78 33 29 29 3b 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 ndex3));.$fields.=.explode('.',.
83a60 24 70 68 72 61 73 65 29 3b 0a 24 69 64 20 3d 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 24 63 6f 6d $phrase);.$id.=.$fields[1];.$com
83a80 70 6f 73 65 72 4a 73 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 poserJson.=.substr($identifier,.
83aa0 30 2c 20 24 69 6e 64 65 78 29 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 40 27 20 2e 0,.$index)...'/composer.json@'..
83ac0 20 24 69 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 .$id;..return.$this->getComposer
83ae0 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f InformationFromPath($composerJso
83b00 6e 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 22 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 n);.}.}..return."";.}..public.fu
83b20 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 24 70 6f 73 73 69 62 6c 65 nction.getBranches().{.$possible
83b40 42 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e Branches.=.array();.if.(!$this->
83b60 69 73 53 74 72 65 61 6d 28 29 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 5b isStream()).{.$possibleBranches[
83b80 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 $this->p4Branch].=.$this->getStr
83ba0 65 61 6d 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 eam();.}.else.{.$command.=.$this
83bc0 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 73 74 72 65 61 6d 73 20 2f 2f 27 ->generateP4Command('streams.//'
83be0 20 2e 20 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 2e 20 27 2f 2e 2e 2e 27 29 3b 0a 24 74 68 ...$this->p4Depot...'/...');.$th
83c00 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 24 72 is->executeCommand($command);.$r
83c20 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 3b 0a 24 72 esult.=.$this->commandResult;.$r
83c40 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 24 72 65 73 75 esArray.=.explode(PHP_EOL,.$resu
83c60 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 24 6c 69 6e 65 lt);.foreach.($resArray.as.$line
83c80 29 20 7b 0a 24 72 65 73 42 69 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 6c 69 6e ).{.$resBits.=.explode('.',.$lin
83ca0 65 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 72 65 73 42 69 74 73 29 20 3e 20 34 29 20 7b 0a 24 e);.if.(count($resBits).>.4).{.$
83cc0 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5b 5e 41 2d 5a 61 2d 7a branch.=.preg_replace('/[^A-Za-z
83ce0 30 2d 39 20 5d 2f 27 2c 20 27 27 2c 20 24 72 65 73 42 69 74 73 5b 34 5d 29 3b 0a 24 70 6f 73 73 0-9.]/',.'',.$resBits[4]);.$poss
83d00 69 62 6c 65 42 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 72 65 73 42 69 74 73 ibleBranches[$branch].=.$resBits
83d20 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e [1];.}.}.}.$command.=.$this->gen
83d40 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 63 68 61 6e 67 65 73 20 27 2e 20 24 74 68 69 73 erateP4Command('changes.'..$this
83d60 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 20 2e 20 27 2f 2e 2e 2e 27 2c 20 66 61 6c 73 65 29 3b 0a ->getStream()...'/...',.false);.
83d80 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 3b $this->executeCommand($command);
83da0 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 3b .$result.=.$this->commandResult;
83dc0 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 24 72 .$resArray.=.explode(PHP_EOL,.$r
83de0 65 73 75 6c 74 29 3b 0a 24 6c 61 73 74 43 6f 6d 6d 69 74 20 3d 20 24 72 65 73 41 72 72 61 79 5b esult);.$lastCommit.=.$resArray[
83e00 30 5d 3b 0a 24 6c 61 73 74 43 6f 6d 6d 69 74 41 72 72 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 0];.$lastCommitArr.=.explode('.'
83e20 2c 20 24 6c 61 73 74 43 6f 6d 6d 69 74 29 3b 0a 24 6c 61 73 74 43 6f 6d 6d 69 74 4e 75 6d 20 3d ,.$lastCommit);.$lastCommitNum.=
83e40 20 24 6c 61 73 74 43 6f 6d 6d 69 74 41 72 72 5b 31 5d 3b 0a 0a 24 62 72 61 6e 63 68 65 73 20 3d .$lastCommitArr[1];..$branches.=
83e60 20 61 72 72 61 79 28 27 6d 61 73 74 65 72 27 20 3d 3e 20 24 70 6f 73 73 69 62 6c 65 42 72 61 6e .array('master'.=>.$possibleBran
83e80 63 68 65 73 5b 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 5d 20 2e 20 27 40 27 2e 20 24 6c 61 ches[$this->p4Branch]...'@'..$la
83ea0 73 74 43 6f 6d 6d 69 74 4e 75 6d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 62 72 61 6e 63 68 65 73 3b stCommitNum);..return.$branches;
83ec0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a .}..public.function.getTags().{.
83ee0 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
83f00 61 6e 64 28 27 6c 61 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 and('labels');.$this->executeCom
83f20 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 24 74 68 69 73 2d mand($command);.$result.=.$this-
83f40 3e 63 6f 6d 6d 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 >commandResult;.$resArray.=.expl
83f60 6f 64 65 28 50 48 50 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 ode(PHP_EOL,.$result);.$tags.=.a
83f80 72 72 61 79 28 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 24 6c rray();.foreach.($resArray.as.$l
83fa0 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 27 4c ine).{.$index.=.strpos($line,.'L
83fc0 61 62 65 6c 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 29 29 abel');.if.(!($index.===.false))
83fe0 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 65 29 .{.$fields.=.explode('.',.$line)
84000 3b 0a 24 74 61 67 73 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 ;.$tags[$fields[1]].=.$this->get
84020 53 74 72 65 61 6d 28 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 Stream()...'@'...$fields[1];.}.}
84040 0a 0a 72 65 74 75 72 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 ..return.$tags;.}..public.functi
84060 6f 6e 20 63 68 65 63 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 on.checkStream().{.$command.=.$t
84080 68 69 73 2d 3e 67 65 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 his->generateP4Command('depots',
840a0 20 66 61 6c 73 65 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 .false);.$this->executeCommand($
840c0 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 61 command);.$result.=.$this->comma
840e0 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 48 ndResult;.$resArray.=.explode(PH
84100 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 72 P_EOL,.$result);.foreach.($resAr
84120 72 61 79 20 61 73 20 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 ray.as.$line).{.$index.=.strpos(
84140 24 6c 69 6e 65 2c 20 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 $line,.'Depot');.if.(!($index.==
84160 3d 20 66 61 6c 73 65 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 =.false)).{.$fields.=.explode('.
84180 27 2c 20 24 6c 69 6e 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 ',.$line);.if.(strcmp($this->p4D
841a0 65 70 6f 74 2c 20 24 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 epot,.$fields[1]).===.0).{.$this
841c0 2d 3e 70 34 44 65 70 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 ->p4DepotType.=.$fields[3];..ret
841e0 75 72 6e 20 24 74 68 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 urn.$this->isStream();.}.}.}..re
84200 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f turn.false;.}..protected.functio
84220 6e 20 67 65 74 43 68 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 n.getChangeList($reference).{.$i
84240 6e 64 65 78 20 3d 20 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 ndex.=.strpos($reference,.'@');.
84260 69 66 20 28 24 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 3b 0a if.($index.===.false).{.return;.
84280 7d 0a 24 6c 61 62 65 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 }.$label.=.substr($reference,.$i
842a0 6e 64 65 78 29 3b 0a 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 ndex);.$command.=.$this->generat
842c0 65 50 34 43 6f 6d 6d 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 eP4Command('.changes.-m1.'...$la
842e0 62 65 6c 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 6f 6d bel);.$this->executeCommand($com
84300 6d 61 6e 64 29 3b 0a 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 mand);.$changes.=.$this->command
84320 52 65 73 75 6c 74 3b 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 Result;.if.(strpos($changes,.'Ch
84340 61 6e 67 65 27 29 20 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 ange').!==.0).{.return;.}.$field
84360 73 20 3d 20 65 78 70 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 s.=.explode('.',.$changes);.$cha
84380 6e 67 65 4c 69 73 74 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 ngeList.=.$fields[1];..return.$c
843a0 68 61 6e 67 65 4c 69 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 hangeList;.}..public.function.ge
843c0 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
843e0 65 66 65 72 65 6e 63 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 eference).{.$fromChangeList.=.$t
84400 68 69 73 2d 3e 67 65 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 his->getChangeList($fromReferenc
84420 65 29 3b 0a 69 66 20 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 e);.if.($fromChangeList.==.null)
84440 20 7b 0a 72 65 74 75 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 .{.return;.}.$toChangeList.=.$th
84460 69 73 2d 3e 67 65 74 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 is->getChangeList($toReference);
84480 0a 69 66 20 28 24 74 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 .if.($toChangeList.==.null).{.re
844a0 74 75 72 6e 3b 0a 7d 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 turn;.}.$index.=.strpos($fromRef
844c0 65 72 65 6e 63 65 2c 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 erence,.'@');.$main.=.substr($fr
844e0 6f 6d 52 65 66 65 72 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 omReference,.0,.$index)...'/...'
84500 3b 0a 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 ;.$command.=.$this->generateP4Co
84520 6d 6d 61 6e 64 28 27 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 mmand('filelog.'...$main...'@'..
84540 20 24 66 72 6f 6d 43 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 .$fromChangeList..','...$toChang
84560 65 4c 69 73 74 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 eList);.$this->executeCommand($c
84580 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
845a0 64 52 65 73 75 6c 74 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 75 62 dResult;..return.$result;.}..pub
845c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 73 79 73 74 65 6d 28 29 0a 7b 0a 69 lic.function.getFilesystem().{.i
845e0 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 29 29 20 7b 0a 24 f.(empty($this->filesystem)).{.$
84600 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 this->filesystem.=.new.Filesyste
84620 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 m($this->process);.}..return.$th
84640 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 is->filesystem;.}..public.functi
84660 6f 6e 20 73 65 74 46 69 6c 65 73 79 73 74 65 6d 28 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 29 on.setFilesystem(Filesystem.$fs)
84680 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 73 3b 0a 7d 0a 7d 0a .{.$this->filesystem.=.$fs;.}.}.
846a0 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
846c0 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 ser\Util;..use.Symfony\Component
846e0 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f \Process\Process;.use.Symfony\Co
84700 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 55 74 69 6c 73 3b 0a 75 73 mponent\Process\ProcessUtils;.us
84720 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 0a 0a 0a 0a 63 e.Composer\IO\IOInterface;.....c
84740 6c 61 73 73 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 lass.ProcessExecutor.{.protected
84760 20 73 74 61 74 69 63 20 24 74 69 6d 65 6f 75 74 20 3d 20 33 30 30 3b 0a 0a 70 72 6f 74 65 63 74 .static.$timeout.=.300;..protect
84780 65 64 20 24 63 61 70 74 75 72 65 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 ed.$captureOutput;.protected.$er
847a0 72 6f 72 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 75 62 6c 69 rorOutput;.protected.$io;..publi
847c0 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
847e0 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f ce.$io.=.null).{.$this->io.=.$io
84800 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 65 78 ;.}...........public.function.ex
84820 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 26 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 2c ecute($command,.&$output.=.null,
84840 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 20 26 26 .$cwd.=.null).{.if.($this->io.&&
84860 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 73 61 66 65 43 6f .$this->io->isDebug()).{.$safeCo
84880 6d 6d 61 6e 64 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3a 2f 2f 5b 5e 3a 2f 5c mmand.=.preg_replace('{(://[^:/\
848a0 73 5d 2b 3a 29 5b 5e 40 5c 73 2f 5d 2b 7d 69 27 2c 20 27 24 31 2a 2a 2a 2a 27 2c 20 24 63 6f 6d s]+:)[^@\s/]+}i',.'$1****',.$com
848c0 6d 61 6e 64 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 45 78 mand);.$this->io->writeError('Ex
848e0 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 3a 20 27 43 57 44 ecuting.command.('.($cwd.?:.'CWD
84900 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 0a 0a 20 0a 20 69 ').'):.'.$safeCommand);.}......i
84920 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 64 28 27 50 48 50 f.(null.===.$cwd.&&.defined('PHP
84940 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 66 61 6c 73 _WINDOWS_VERSION_BUILD').&&.fals
84960 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 74 27 29 20 26 26 e.!==.strpos($command,.'git').&&
84980 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 74 68 28 67 65 74 .getcwd()).{.$cwd.=.realpath(get
849a0 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 75 74 70 75 74 20 cwd());.}..$this->captureOutput.
849c0 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 20 31 3b 0a 24 74 =.count(func_get_args()).>.1;.$t
849e0 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 70 72 6f 63 65 73 his->errorOutput.=.null;.$proces
84a00 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 24 63 77 64 2c 20 s.=.new.Process($command,.$cwd,.
84a20 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 65 6f 75 74 28 29 null,.null,.static::getTimeout()
84a40 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 65 28 24 6f 75 74 );..$callback.=.is_callable($out
84a60 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 69 73 2c 20 27 6f put).?.$output.:.array($this,.'o
84a80 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 72 75 6e 28 24 63 utputHandler');.$process->run($c
84aa0 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 75 72 65 4f 75 74 allback);..if.($this->captureOut
84ac0 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 74 29 29 20 7b 0a put.&&.!is_callable($output)).{.
84ae0 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 70 75 74 28 29 3b $output.=.$process->getOutput();
84b00 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 70 72 6f 63 65 73 .}..$this->errorOutput.=.$proces
84b20 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 72 6e 20 24 70 72 s->getErrorOutput();..return.$pr
84b40 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 75 62 6c 69 63 20 ocess->getExitCode();.}..public.
84b60 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 74 29 0a 7b 0a 24 function.splitLines($output).{.$
84b80 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 65 74 75 72 6e 20 output.=.trim($output);..return.
84ba0 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 3f 20 61 72 72 61 ((string).$output.===.'').?.arra
84bc0 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 2c 20 24 6f 75 74 y().:.preg_split('{\r?\n}',.$out
84be0 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 put);.}.......public.function.ge
84c00 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 68 69 73 2d 3e 65 tErrorOutput().{.return.$this->e
84c20 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 74 69 6f 6e 20 6f rrorOutput;.}..public.function.o
84c40 75 74 70 75 74 48 61 6e 64 6c 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 0a 7b 0a 69 utputHandler($type,.$buffer).{.i
84c60 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 0a 72 65 74 75 72 f.($this->captureOutput).{.retur
84c80 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 6c 69 63 20 73 74 n;.}..echo.$buffer;.}..public.st
84ca0 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 0a 7b 0a 72 65 74 atic.function.getTimeout().{.ret
84cc0 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 75 62 6c 69 63 20 urn.static::$timeout;.}..public.
84ce0 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 28 24 74 69 6d 65 static.function.setTimeout($time
84d00 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 24 74 69 6d 65 6f out).{.static::$timeout.=.$timeo
84d20 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e ut;.}..........public.static.fun
84d40 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 72 65 74 75 72 6e ction.escape($argument).{.return
84d60 20 50 72 6f 63 65 73 73 55 74 69 6c 73 3a 3a 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 61 .ProcessUtils::escapeArgument($a
84d80 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e rgument);.}.}.<?php............n
84da0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d amespace.Composer\Util;..use.Com
84dc0 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f poser\Config;.use.Composer\IO\IO
84de0 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 0a 7b 0a 70 72 6f 74 65 Interface;.....class.Git.{.prote
84e00 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 72 6f cted.$io;.protected.$config;.pro
84e20 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 66 69 6c 65 tected.$process;.protected.$file
84e40 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 system;..public.function.__const
84e60 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f ruct(IOInterface.$io,.Config.$co
84e80 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 2c 20 nfig,.ProcessExecutor.$process,.
84ea0 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 Filesystem.$fs).{.$this->io.=.$i
84ec0 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 o;.$this->config.=.$config;.$thi
84ee0 73 2d 3e 70 72 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 66 69 s->process.=.$process;.$this->fi
84f00 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 lesystem.=.$fs;.}..public.functi
84f20 6f 6e 20 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 on.runCommand($commandCallable,.
84f40 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 20 3d 20 66 61 6c 73 $url,.$cwd,.$initialClone.=.fals
84f60 65 29 0a 7b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 6f 72 69 67 43 e).{.if.($initialClone).{.$origC
84f80 77 64 20 3d 20 24 63 77 64 3b 0a 24 63 77 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 70 wd.=.$cwd;.$cwd.=.null;.}..if.(p
84fa0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b 5e 3a 5d 2b 3a 5b reg_match('{^ssh://[^@]+@[^:]+:[
84fc0 5e 30 2d 39 5d 2b 7d 27 2c 20 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e ^0-9]+}',.$url)).{.throw.new.\In
84fe0 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 73 6f 75 72 validArgumentException('The.sour
85000 63 65 20 55 52 4c 20 27 2e 24 75 72 6c 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 ce.URL.'.$url.'.is.invalid,.ssh.
85020 55 52 4c 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 URLs.should.have.a.port.number.a
85040 66 74 65 72 20 22 3a 22 2e 27 2e 22 5c 6e 22 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 fter.":".'."\n".'Use.ssh://git@e
85060 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 32 2f 70 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 xample.com:22/path.or.just.git@e
85080 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 61 74 68 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 xample.com:path.if.you.do.not.wa
850a0 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 nt.to.provide.a.password.or.cust
850c0 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 69 74 69 61 6c 43 6c 6f 6e om.port.');.}..if.(!$initialClon
850e0 65 29 20 7b 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 e).{...$this->process->execute('
85100 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 63 77 64 29 3b 0a git.remote.-v',.$output,.$cwd);.
85120 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 7c 6f 72 if.(preg_match('{^(?:composer|or
85140 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 5e 2f 5d igin)\s+https?://(.+):(.+)@([^/]
85160 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 74 68 69 +)}im',.$output,.$match)).{.$thi
85180 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 63 68 5b s->io->setAuthentication($match[
851a0 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 64 65 63 3],.urldecode($match[1]),.urldec
851c0 6f 64 65 28 24 6d 61 74 63 68 5b 32 5d 29 29 3b 0a 7d 0a 7d 0a 0a 24 70 72 6f 74 6f 63 6f 6c 73 ode($match[2]));.}.}..$protocols
851e0 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 70 72 .=.$this->config->get('github-pr
85200 6f 74 6f 63 6f 6c 73 27 29 3b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 72 6f 74 6f 63 otocols');.if.(!is_array($protoc
85220 6f 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ols)).{.throw.new.\RuntimeExcept
85240 69 6f 6e 28 27 43 6f 6e 66 69 67 20 76 61 6c 75 65 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 ion('Config.value."github-protoc
85260 6f 6c 73 22 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 67 6f 74 20 27 2e 67 65 74 ols".must.be.an.array,.got.'.get
85280 74 79 70 65 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 type($protocols));.}....if.(preg
852a0 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 27 2e 73 65 6c _match('{^(?:https?|git)://'.sel
852c0 66 3a 3a 67 65 74 47 69 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 24 74 68 69 73 2d 3e f::getGitHubDomainsRegex($this->
852e0 63 6f 6e 66 69 67 29 2e 27 2f 28 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 config).'/(.*)}',.$url,.$match))
85300 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 .{.$messages.=.array();.foreach.
85320 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 69 66 20 28 ($protocols.as.$protocol).{.if.(
85340 27 73 73 68 27 20 3d 3d 3d 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 22 67 'ssh'.===.$protocol).{.$url.=."g
85360 69 74 40 22 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 22 3a 22 20 2e 20 24 6d 61 74 63 68 5b it@"...$match[1]...":"...$match[
85380 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 22 2];.}.else.{.$url.=.$protocol.."
853a0 3a 2f 2f 22 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 22 2f 22 20 2e 20 24 6d 61 74 63 68 5b ://"...$match[1]..."/"...$match[
853c0 32 5d 3b 0a 7d 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 2d 2];.}..if.(0.===.$this->process-
853e0 3e 65 78 65 63 75 74 65 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 >execute(call_user_func($command
85400 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c Callable,.$url),.$ignoredOutput,
85420 20 24 63 77 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 .$cwd)).{.return;.}.$messages[].
85440 3d 20 27 2d 20 27 20 2e 20 24 75 72 6c 20 2e 20 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c =.'-.'...$url..."\n"...preg_repl
85460 61 63 65 28 27 23 5e 23 6d 27 2c 20 27 20 20 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ace('#^#m',.'..',.$this->process
85480 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 ->getErrorOutput());.if.($initia
854a0 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d lClone).{.$this->filesystem->rem
854c0 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 6f 72 69 67 43 77 64 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 oveDirectory($origCwd);.}.}....$
854e0 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 this->throwException('Failed.to.
85500 63 6c 6f 6e 65 20 27 20 2e 20 73 65 6c 66 3a 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c clone.'...self::sanitizeUrl($url
85520 29 20 2e 27 20 76 69 61 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 6f 74 6f 63 )..'.via.'.implode(',.',.$protoc
85540 6f 6c 73 29 2e 27 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 61 62 6f 72 74 69 6e 67 2e 27 20 2e 20 22 ols).'.protocols,.aborting.'..."
85560 5c 6e 5c 6e 22 20 2e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 \n\n"...implode("\n",.$messages)
85580 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a 0a 20 24 62 79 70 61 73 73 53 73 68 46 6f 72 47 69 74 48 75 ,.$url);.}....$bypassSshForGitHu
855a0 62 20 3d 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 67 69 74 40 27 2e 73 65 6c 66 3a 3a 67 65 b.=.preg_match('{^git@'.self::ge
855c0 74 47 69 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 tGitHubDomainsRegex($this->confi
855e0 67 29 2e 27 3a 28 2e 2b 3f 29 5c 2e 67 69 74 24 7d 69 27 2c 20 24 75 72 6c 29 20 26 26 20 21 69 g).':(.+?)\.git$}i',.$url).&&.!i
85600 6e 5f 61 72 72 61 79 28 27 73 73 68 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 73 2c 20 74 72 75 65 29 n_array('ssh',.$protocols,.true)
85620 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f ;..$command.=.call_user_func($co
85640 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 24 62 79 70 61 73 mmandCallable,.$url);.if.($bypas
85660 73 53 73 68 46 6f 72 47 69 74 48 75 62 20 7c 7c 20 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 sSshForGitHub.||.0.!==.$this->pr
85680 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 ocess->execute($command,.$ignore
856a0 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 dOutput,.$cwd)).{...if.(preg_mat
856c0 63 68 28 27 7b 5e 67 69 74 40 27 2e 73 65 6c 66 3a 3a 67 65 74 47 69 74 48 75 62 44 6f 6d 61 69 ch('{^git@'.self::getGitHubDomai
856e0 6e 73 52 65 67 65 78 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 2e 27 3a 28 2e 2b 3f 29 5c 2e nsRegex($this->config).':(.+?)\.
85700 67 69 74 24 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 git$}i',.$url,.$match)).{.if.(!$
85720 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 6d 61 74 this->io->hasAuthentication($mat
85740 63 68 5b 31 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 ch[1])).{.$gitHubUtil.=.new.GitH
85760 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 ub($this->io,.$this->config,.$th
85780 69 73 2d 3e 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 is->process);.$message.=.'Clonin
857a0 67 20 66 61 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 g.failed.using.an.ssh.key.for.au
857c0 74 68 65 6e 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 thentication,.enter.your.GitHub.
857e0 63 72 65 64 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 credentials.to.access.private.re
85800 70 6f 73 27 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 pos';..if.(!$gitHubUtil->authori
85820 7a 65 4f 41 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 zeOAuth($match[1]).&&.$this->io-
85840 3e 69 73 49 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 >isInteractive()).{.$gitHubUtil-
85860 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 6c 79 28 24 6d 61 >authorizeOAuthInteractively($ma
85880 74 63 68 5b 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 tch[1],.$message);.}.}..if.($thi
858a0 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 6d 61 74 63 68 5b s->io->hasAuthentication($match[
858c0 31 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 1])).{.$auth.=.$this->io->getAut
858e0 68 65 6e 74 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 hentication($match[1]);.$url.=.'
85900 68 74 74 70 73 3a 2f 2f 27 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 https://'.rawurlencode($auth['us
85920 65 72 6e 61 6d 65 27 5d 29 20 2e 20 27 3a 27 20 2e 20 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 ername'])...':'...rawurlencode($
85940 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 20 2e 20 27 40 27 2e 24 6d 61 74 63 68 5b 31 auth['password'])...'@'.$match[1
85960 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e ].'/'.$match[2].'.git';..$comman
85980 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 d.=.call_user_func($commandCalla
859a0 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f ble,.$url);.if.(0.===.$this->pro
859c0 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 cess->execute($command,.$ignored
859e0 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 20 65 Output,.$cwd)).{.return;.}.}.}.e
85a00 6c 73 65 69 66 20 28 20 0a 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 68 74 74 70 73 3f 3a 2f lseif.(...preg_match('{(https?:/
85a20 2f 29 28 5b 5e 2f 5d 2b 29 28 2e 2a 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 /)([^/]+)(.*)$}i',.$url,.$match)
85a40 20 26 26 0a 73 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 .&&.strpos($this->process->getEr
85a60 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 27 66 61 74 61 6c 3a 20 41 75 74 68 65 6e 74 69 63 61 74 rorOutput(),.'fatal:.Authenticat
85a80 69 6f 6e 20 66 61 69 6c 65 64 27 29 20 21 3d 3d 20 66 61 6c 73 65 0a 29 20 7b 0a 69 66 20 28 73 ion.failed').!==.false.).{.if.(s
85aa0 74 72 70 6f 73 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 40 27 29 29 20 7b 0a 6c 69 73 74 28 24 61 trpos($match[2],.'@')).{.list($a
85ac0 75 74 68 50 61 72 74 73 2c 20 24 6d 61 74 63 68 5b 32 5d 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 uthParts,.$match[2]).=.explode('
85ae0 40 27 2c 20 24 6d 61 74 63 68 5b 32 5d 2c 20 32 29 3b 0a 7d 0a 0a 24 73 74 6f 72 65 41 75 74 68 @',.$match[2],.2);.}..$storeAuth
85b00 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 .=.false;.if.($this->io->hasAuth
85b20 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 24 61 75 74 68 20 3d entication($match[2])).{.$auth.=
85b40 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 74 69 6f 6e 28 24 6d .$this->io->getAuthentication($m
85b60 61 74 63 68 5b 32 5d 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 atch[2]);.}.elseif.($this->io->i
85b80 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 55 73 65 72 6e 61 sInteractive()).{.$defaultUserna
85ba0 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 50 61 72 74 73 29 me.=.null;.if.(isset($authParts)
85bc0 20 26 26 20 24 61 75 74 68 50 61 72 74 73 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 .&&.$authParts).{.if.(false.!==.
85be0 73 74 72 70 6f 73 28 24 61 75 74 68 50 61 72 74 73 2c 20 27 3a 27 29 29 20 7b 0a 6c 69 73 74 28 strpos($authParts,.':')).{.list(
85c00 24 64 65 66 61 75 6c 74 55 73 65 72 6e 61 6d 65 2c 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 $defaultUsername,).=.explode(':'
85c20 2c 20 24 61 75 74 68 50 61 72 74 73 2c 20 32 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 ,.$authParts,.2);.}.else.{.$defa
85c40 75 6c 74 55 73 65 72 6e 61 6d 65 20 3d 20 24 61 75 74 68 50 61 72 74 73 3b 0a 7d 0a 7d 0a 0a 24 ultUsername.=.$authParts;.}.}..$
85c60 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 41 75 74 68 65 6e this->io->writeError('....Authen
85c80 74 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 70 61 72 73 65 tication.required.(<info>'.parse
85ca0 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f _url($url,.PHP_URL_HOST).'</info
85cc0 3e 29 3a 27 29 3b 0a 24 61 75 74 68 20 3d 20 61 72 72 61 79 28 0a 27 75 73 65 72 6e 61 6d 65 27 >):');.$auth.=.array(.'username'
85ce0 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 72 6e 61 .=>.$this->io->ask('......Userna
85d00 6d 65 3a 20 27 2c 20 24 64 65 66 61 75 6c 74 55 73 65 72 6e 61 6d 65 29 2c 0a 27 70 61 73 73 77 me:.',.$defaultUsername),.'passw
85d20 6f 72 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 ord'.=>.$this->io->askAndHideAns
85d40 77 65 72 28 27 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 3a 20 27 29 2c 0a 29 3b 0a 24 73 74 6f wer('......Password:.'),.);.$sto
85d60 72 65 41 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 73 74 6f reAuth.=.$this->config->get('sto
85d80 72 65 2d 61 75 74 68 73 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 75 74 68 29 20 7b 0a 24 75 72 6c re-auths');.}..if.($auth).{.$url
85da0 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b .=.$match[1].rawurlencode($auth[
85dc0 27 75 73 65 72 6e 61 6d 65 27 5d 29 2e 27 3a 27 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 'username']).':'.rawurlencode($a
85de0 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 5b 32 5d 2e 24 uth['password']).'@'.$match[2].$
85e00 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 75 73 65 72 5f match[3];..$command.=.call_user_
85e20 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 3b 0a 69 66 func($commandCallable,.$url);.if
85e40 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(
85e60 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 77 64 29 29 $command,.$ignoredOutput,.$cwd))
85e80 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 74 69 6f 6e 28 .{.$this->io->setAuthentication(
85ea0 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 5d 2c 20 24 61 $match[2],.$auth['username'],.$a
85ec0 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 24 61 75 74 68 48 65 6c 70 65 72 20 3d 20 uth['password']);.$authHelper.=.
85ee0 6e 65 77 20 41 75 74 68 48 65 6c 70 65 72 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d new.AuthHelper($this->io,.$this-
85f00 3e 63 6f 6e 66 69 67 29 3b 0a 24 61 75 74 68 48 65 6c 70 65 72 2d 3e 73 74 6f 72 65 41 75 74 68 >config);.$authHelper->storeAuth
85f20 28 24 6d 61 74 63 68 5b 32 5d 2c 20 24 73 74 6f 72 65 41 75 74 68 29 3b 0a 0a 72 65 74 75 72 6e ($match[2],.$storeAuth);..return
85f40 3b 0a 7d 0a 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 ;.}.}.}..if.($initialClone).{.$t
85f60 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 his->filesystem->removeDirectory
85f80 28 24 6f 72 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 ($origCwd);.}.$this->throwExcept
85fa0 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 73 65 6c 66 3a ion('Failed.to.execute.'...self:
85fc0 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 :sanitizeUrl($command)..."\n\n".
85fe0 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
86000 28 29 2c 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 (),.$url);.}.}..public.static.fu
86020 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 45 6e 76 28 29 0a 7b 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 nction.cleanEnv().{.if.(ini_get(
86040 27 73 61 66 65 5f 6d 6f 64 65 27 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 'safe_mode').&&.false.===.strpos
86060 28 69 6e 69 5f 67 65 74 28 27 73 61 66 65 5f 6d 6f 64 65 5f 61 6c 6c 6f 77 65 64 5f 65 6e 76 5f (ini_get('safe_mode_allowed_env_
86080 76 61 72 73 27 29 2c 20 27 47 49 54 5f 41 53 4b 50 41 53 53 27 29 29 20 7b 0a 74 68 72 6f 77 20 vars'),.'GIT_ASKPASS')).{.throw.
860a0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 73 61 66 65 5f 6d 6f 64 65 new.\RuntimeException('safe_mode
860c0 20 69 73 20 65 6e 61 62 6c 65 64 20 61 6e 64 20 73 61 66 65 5f 6d 6f 64 65 5f 61 6c 6c 6f 77 65 .is.enabled.and.safe_mode_allowe
860e0 64 5f 65 6e 76 5f 76 61 72 73 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 47 49 54 5f d_env_vars.does.not.contain.GIT_
86100 41 53 4b 50 41 53 53 2c 20 63 61 6e 20 6e 6f 74 20 73 65 74 20 65 6e 76 20 76 61 72 2e 20 59 6f ASKPASS,.can.not.set.env.var..Yo
86120 75 20 63 61 6e 20 64 69 73 61 62 6c 65 20 73 61 66 65 5f 6d 6f 64 65 20 77 69 74 68 20 22 2d 64 u.can.disable.safe_mode.with."-d
86140 73 61 66 65 5f 6d 6f 64 65 3d 30 22 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 safe_mode=0".when.running.compos
86160 65 72 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 41 er');.}....if.(getenv('GIT_ASKPA
86180 53 53 27 29 20 21 3d 3d 20 27 65 63 68 6f 27 29 20 7b 0a 70 75 74 65 6e 76 28 27 47 49 54 5f 41 SS').!==.'echo').{.putenv('GIT_A
861a0 53 4b 50 41 53 53 3d 65 63 68 6f 27 29 3b 0a 75 6e 73 65 74 28 24 5f 53 45 52 56 45 52 5b 27 47 SKPASS=echo');.unset($_SERVER['G
861c0 49 54 5f 41 53 4b 50 41 53 53 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 IT_ASKPASS']);.}....if.(getenv('
861e0 47 49 54 5f 44 49 52 27 29 29 20 7b 0a 70 75 74 65 6e 76 28 27 47 49 54 5f 44 49 52 27 29 3b 0a GIT_DIR')).{.putenv('GIT_DIR');.
86200 75 6e 73 65 74 28 24 5f 53 45 52 56 45 52 5b 27 47 49 54 5f 44 49 52 27 5d 29 3b 0a 7d 0a 69 66 unset($_SERVER['GIT_DIR']);.}.if
86220 20 28 67 65 74 65 6e 76 28 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 29 29 20 7b 0a 70 75 74 .(getenv('GIT_WORK_TREE')).{.put
86240 65 6e 76 28 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 29 3b 0a 75 6e 73 65 74 28 24 5f 53 45 env('GIT_WORK_TREE');.unset($_SE
86260 52 56 45 52 5b 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 RVER['GIT_WORK_TREE']);.}....if.
86280 28 67 65 74 65 6e 76 28 27 4c 41 4e 47 55 41 47 45 27 29 20 21 3d 3d 20 27 43 27 29 20 7b 0a 70 (getenv('LANGUAGE').!==.'C').{.p
862a0 75 74 65 6e 76 28 27 4c 41 4e 47 55 41 47 45 3d 43 27 29 3b 0a 7d 0a 0a 0a 20 70 75 74 65 6e 76 utenv('LANGUAGE=C');.}....putenv
862c0 28 22 44 59 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 22 29 3b 0a 75 6e 73 65 74 28 24 5f 53 ("DYLD_LIBRARY_PATH");.unset($_S
862e0 45 52 56 45 52 5b 27 44 59 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 27 5d 29 3b 0a 7d 0a 0a ERVER['DYLD_LIBRARY_PATH']);.}..
86300 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 47 69 74 48 75 62 public.static.function.getGitHub
86320 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 DomainsRegex(Config.$config).{.r
86340 65 74 75 72 6e 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 eturn.'('.implode('|',.array_map
86360 28 27 70 72 65 67 5f 71 75 6f 74 65 27 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 ('preg_quote',.$config->get('git
86380 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 75 62 6c 69 63 20 73 hub-domains'))).')';.}..public.s
863a0 74 61 74 69 63 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 73 73 tatic.function.sanitizeUrl($mess
863c0 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 2f 2f age).{.return.preg_replace('{://
863e0 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 20 24 ([^@]+?):.+?@}',.'://$1:***@',.$
86400 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 68 message);.}..private.function.th
86420 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 rowException($message,.$url).{.i
86440 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
86460 28 27 67 69 74 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 ('git.--version',.$ignoredOutput
86480 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
864a0 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 73 65 6c 66 3a 3a 73 61 6e 69 74 69 ('Failed.to.clone.'.self::saniti
864c0 7a 65 55 72 6c 28 24 75 72 6c 29 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 zeUrl($url).',.git.was.not.found
864e0 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 ,.check.that.it.is.installed.and
86500 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 .in.your.PATH.env.'..."\n\n"...$
86520 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 29 this->process->getErrorOutput())
86540 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e ;.}..throw.new.\RuntimeException
86560 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ($message);.}.}.<?php...........
86580 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 .namespace.Composer\Util;..use.C
865a0 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 43 omposer\Composer;.use.Composer\C
865c0 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 onfig;.use.Composer\IO\IOInterfa
865e0 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e ce;.use.Composer\Downloader\Tran
86600 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d 6f sportException;.......class.Remo
86620 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 teFilesystem.{.private.$io;.priv
86640 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 4d 61 78 3b 0a ate.$config;.private.$bytesMax;.
86660 70 72 69 76 61 74 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c private.$originUrl;.private.$fil
86680 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 eUrl;.private.$fileName;.private
866a0 20 24 72 65 74 72 79 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 .$retry;.private.$progress;.priv
866c0 61 74 65 20 24 6c 61 73 74 50 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 ate.$lastProgress;.private.$opti
866e0 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 3b 0a ons;.private.$retryAuthFailure;.
86700 70 72 69 76 61 74 65 20 24 6c 61 73 74 48 65 61 64 65 72 73 3b 0a 70 72 69 76 61 74 65 20 24 73 private.$lastHeaders;.private.$s
86720 74 6f 72 65 41 75 74 68 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f toreAuth;.........public.functio
86740 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
86760 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 6f 70 74 onfig.$config.=.null,.array.$opt
86780 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 69 6f 20 3d 20 24 69 ions.=.array()).{.$this->io.=.$i
867a0 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 o;.$this->config.=.$config;.$thi
867c0 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s->options.=.$options;.}........
867e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 67 69 .....public.function.copy($origi
86800 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 nUrl,.$fileUrl,.$fileName,.$prog
86820 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 28 29 29 ress.=.true,.$options.=.array())
86840 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 72 6c 2c .{.return.$this->get($originUrl,
86860 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 .$fileUrl,.$options,.$fileName,.
86880 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $progress);.}............public.
868a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c function.getContents($originUrl,
868c0 20 24 66 69 6c 65 55 72 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f 70 .$fileUrl,.$progress.=.true,.$op
868e0 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 69 73 2d tions.=.array()).{.return.$this-
86900 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 70 74 69 >get($originUrl,.$fileUrl,.$opti
86920 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ons,.null,.$progress);.}.......p
86940 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 72 65 ublic.function.getOptions().{.re
86960 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 70 75 62 turn.$this->options;.}.......pub
86980 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 61 73 74 48 65 61 64 65 72 73 28 29 0a 7b 0a lic.function.getLastHeaders().{.
869a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 61 73 74 48 65 61 64 65 72 73 3b 0a 7d 0a 0a 0a 0a return.$this->lastHeaders;.}....
869c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 ............protected.function.g
869e0 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 61 64 64 69 74 69 et($originUrl,.$fileUrl,.$additi
86a00 6f 6e 61 6c 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 66 69 6c 65 4e 61 6d 65 onalOptions.=.array(),.$fileName
86a20 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 .=.null,.$progress.=.true).{.if.
86a40 28 73 74 72 70 6f 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 27 2e 67 69 74 68 75 62 2e 63 6f 6d (strpos($originUrl,.'.github.com
86a60 27 29 20 3d 3d 3d 20 28 73 74 72 6c 65 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 20 2d 20 31 31 29 ').===.(strlen($originUrl).-.11)
86a80 29 20 7b 0a 24 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d ).{.$originUrl.=.'github.com';.}
86aa0 0a 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6f 72 ..$this->bytesMax.=.0;.$this->or
86ac0 69 67 69 6e 55 72 6c 20 3d 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c iginUrl.=.$originUrl;.$this->fil
86ae0 65 55 72 6c 20 3d 20 24 66 69 6c 65 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 eUrl.=.$fileUrl;.$this->fileName
86b00 20 3d 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 3d 20 .=.$fileName;.$this->progress.=.
86b20 24 70 72 6f 67 72 65 73 73 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d $progress;.$this->lastProgress.=
86b40 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 20 3d .null;.$this->retryAuthFailure.=
86b60 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 48 65 61 64 65 72 73 20 3d 20 61 72 72 61 .true;.$this->lastHeaders.=.arra
86b80 79 28 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f y();....if.(preg_match('{^https?
86ba0 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 27 2c 20 24 66 69 6c 65 55 72 ://(.+):(.+)@([^/]+)}i',.$fileUr
86bc0 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 l,.$match)).{.$this->io->setAuth
86be0 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 75 72 6c 64 65 63 6f 64 65 entication($originUrl,.urldecode
86c00 28 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 32 5d ($match[1]),.urldecode($match[2]
86c20 29 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 ));.}..if.(isset($additionalOpti
86c40 6f 6e 73 5b 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 5d 29 29 20 7b 0a 24 74 ons['retry-auth-failure'])).{.$t
86c60 68 69 73 2d 3e 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 20 3d 20 28 62 6f 6f 6c 29 20 24 his->retryAuthFailure.=.(bool).$
86c80 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 5b 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 additionalOptions['retry-auth-fa
86ca0 69 6c 75 72 65 27 5d 3b 0a 0a 75 6e 73 65 74 28 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f ilure'];..unset($additionalOptio
86cc0 6e 73 5b 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 5d 29 3b 0a 7d 0a 0a 24 6f ns['retry-auth-failure']);.}..$o
86ce0 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c ptions.=.$this->getOptionsForUrl
86d00 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 ($originUrl,.$additionalOptions)
86d20 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 29 29 20 7b 0a 24 ;..if.($this->io->isDebug()).{.$
86d40 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 28 73 75 62 73 74 72 28 24 66 69 this->io->writeError((substr($fi
86d60 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 27 20 3f 20 27 44 6f 77 6e 6c leUrl,.0,.4).===.'http'.?.'Downl
86d80 6f 61 64 69 6e 67 20 27 20 3a 20 27 52 65 61 64 69 6e 67 20 27 29 20 2e 20 24 66 69 6c 65 55 72 oading.'.:.'Reading.')...$fileUr
86da0 6c 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 67 69 74 68 75 62 l);.}.if.(isset($options['github
86dc0 2d 74 6f 6b 65 6e 27 5d 29 29 20 7b 0a 24 66 69 6c 65 55 72 6c 20 2e 3d 20 28 66 61 6c 73 65 20 -token'])).{.$fileUrl..=.(false.
86de0 3d 3d 3d 20 73 74 72 70 6f 73 28 24 66 69 6c 65 55 72 6c 2c 20 27 3f 27 29 20 3f 20 27 3f 27 20 ===.strpos($fileUrl,.'?').?.'?'.
86e00 3a 20 27 26 27 29 20 2e 20 27 61 63 63 65 73 73 5f 74 6f 6b 65 6e 3d 27 2e 24 6f 70 74 69 6f 6e :.'&')...'access_token='.$option
86e20 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e s['github-token'];.unset($option
86e40 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 s['github-token']);.}.if.(isset(
86e60 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 $options['http'])).{.$options['h
86e80 74 74 70 27 5d 5b 27 69 67 6e 6f 72 65 5f 65 72 72 6f 72 73 27 5d 20 3d 20 74 72 75 65 3b 0a 7d ttp']['ignore_errors'].=.true;.}
86ea0 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 3a 67 65 .$ctx.=.StreamContextFactory::ge
86ec0 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 61 72 72 tContext($fileUrl,.$options,.arr
86ee0 61 79 28 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 27 20 3d 3e 20 61 72 72 61 79 28 24 74 68 69 73 ay('notification'.=>.array($this
86f00 2c 20 27 63 61 6c 6c 62 61 63 6b 47 65 74 27 29 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ,.'callbackGet')));..if.($this->
86f20 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 45 72 72 6f progress).{.$this->io->writeErro
86f40 72 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 43 6f 6e r("....Downloading:.<comment>Con
86f60 6e 65 63 74 69 6e 67 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 necting...</comment>",.false);.}
86f80 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 24 65 72 72 6f 72 43 6f 64 65 ..$errorMessage.=.'';.$errorCode
86fa0 20 3d 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 .=.0;.$result.=.false;.set_error
86fc0 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 6d 73 67 29 20 _handler(function.($code,.$msg).
86fe0 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 24 65 72 72 6f use.(&$errorMessage).{.if.($erro
87000 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 3d 20 22 5c 6e rMessage).{.$errorMessage..=."\n
87020 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 72 65 70 6c 61 ";.}.$errorMessage..=.preg_repla
87040 63 65 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 ce('{^file_get_contents\(.*?\):.
87060 7d 27 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 }',.'',.$msg);.});.try.{.$result
87080 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 65 55 72 6c 2c 20 66 .=.file_get_contents($fileUrl,.f
870a0 61 6c 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 alse,.$ctx);.}.catch.(\Exception
870c0 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 72 61 6e 73 70 6f .$e).{.if.($e.instanceof.Transpo
870e0 72 74 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 rtException.&&.!empty($http_resp
87100 6f 6e 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 onse_header[0])).{.$e->setHeader
87120 73 28 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 69 66 20 28 s($http_response_header);.}.if.(
87140 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e $e.instanceof.TransportException
87160 20 26 26 20 24 72 65 73 75 6c 74 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 65 2d 3e 73 65 74 .&&.$result.!==.false).{.$e->set
87180 52 65 73 70 6f 6e 73 65 28 24 72 65 73 75 6c 74 29 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 3d 20 66 Response($result);.}.$result.=.f
871a0 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 26 26 20 21 69 6e alse;.}.if.($errorMessage.&&.!in
871c0 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 72 i_get('allow_url_fopen')).{.$err
871e0 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 6d 75 73 orMessage.=.'allow_url_fopen.mus
87200 74 20 62 65 20 65 6e 61 62 6c 65 64 20 69 6e 20 70 68 70 2e 69 6e 69 20 28 27 2e 24 65 72 72 6f t.be.enabled.in.php.ini.('.$erro
87220 72 4d 65 73 73 61 67 65 2e 27 29 27 3b 0a 7d 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 rMessage.')';.}.restore_error_ha
87240 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 20 26 26 20 21 24 74 68 69 73 ndler();.if.(isset($e).&&.!$this
87260 2d 3e 72 65 74 72 79 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 ->retry).{.throw.$e;.}....if.(!e
87280 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 20 26 mpty($http_response_header[0]).&
872a0 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 5c 53 2b 20 28 5b 34 35 5d 5c 64 &.preg_match('{^HTTP/\S+.([45]\d
872c0 5c 64 29 7d 69 27 2c 20 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d \d)}i',.$http_response_header[0]
872e0 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 24 6d 61 74 63 68 ,.$match)).{.$errorCode.=.$match
87300 5b 31 5d 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 24 65 20 3d 20 6e [1];.if.(!$this->retry).{.$e.=.n
87320 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 74 ew.TransportException('The."'.$t
87340 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 62 his->fileUrl.'".file.could.not.b
87360 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 28 27 2e 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 e.downloaded.('.$http_response_h
87380 65 61 64 65 72 5b 30 5d 2e 27 29 27 2c 20 24 65 72 72 6f 72 43 6f 64 65 29 3b 0a 24 65 2d 3e 73 eader[0].')',.$errorCode);.$e->s
873a0 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 etHeaders($http_response_header)
873c0 3b 0a 24 65 2d 3e 73 65 74 52 65 73 70 6f 6e 73 65 28 24 72 65 73 75 6c 74 29 3b 0a 74 68 72 6f ;.$e->setResponse($result);.thro
873e0 77 20 24 65 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 w.$e;.}.$result.=.false;.}....if
87400 20 28 24 72 65 73 75 6c 74 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a .($result.&&.extension_loaded('z
87420 6c 69 62 27 29 20 26 26 20 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 lib').&&.substr($fileUrl,.0,.4).
87440 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 ===.'http').{.$decode.=.false;.f
87460 6f 72 65 61 63 68 20 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 20 61 73 oreach.($http_response_header.as
87480 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f .$header).{.if.(preg_match('{^co
874a0 6e 74 65 6e 74 2d 65 6e 63 6f 64 69 6e 67 3a 20 2a 67 7a 69 70 20 2a 24 7d 69 27 2c 20 24 68 65 ntent-encoding:.*gzip.*$}i',.$he
874c0 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 ader)).{.$decode.=.true;.continu
874e0 65 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 48 54 54 50 2f e;.}.elseif.(preg_match('{^HTTP/
87500 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 }i',.$header)).{.$decode.=.false
87520 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 63 6f 64 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f ;.}.}..if.($decode).{.if.(versio
87540 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 2e 30 27 2c 20 n_compare(PHP_VERSION,.'5.4.0',.
87560 27 3e 3d 27 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 7a 6c 69 62 5f 64 65 63 6f 64 65 28 24 '>=')).{.$result.=.zlib_decode($
87580 72 65 73 75 6c 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 66 69 result);.}.else.{...$result.=.fi
875a0 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 27 63 6f 6d 70 72 65 73 73 2e 7a 6c 69 62 3a 2f le_get_contents('compress.zlib:/
875c0 2f 64 61 74 61 3a 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 3b 62 /data:application/octet-stream;b
875e0 61 73 65 36 34 2c 27 2e 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 72 65 73 75 6c 74 29 29 3b ase64,'.base64_encode($result));
87600 0a 7d 0a 0a 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 .}..if.(!$result).{.throw.new.Tr
87620 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 64 65 63 6f ansportException('Failed.to.deco
87640 64 65 20 7a 6c 69 62 20 73 74 72 65 61 6d 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 de.zlib.stream');.}.}.}..if.($th
87660 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 26 26 20 21 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b is->progress.&&.!$this->retry).{
87680 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 .$this->io->overwriteError("....
876a0 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 31 30 30 25 3c 2f 63 6f 6d 6d Downloading:.<comment>100%</comm
876c0 65 6e 74 3e 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 72 65 73 75 ent>");.}....if.(false.!==.$resu
876e0 6c 74 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 69 66 20 28 lt.&&.null.!==.$fileName).{.if.(
87700 27 27 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e ''.===.$result).{.throw.new.Tran
87720 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 sportException('"'.$this->fileUr
87740 6c 2e 27 22 20 61 70 70 65 61 72 73 20 62 72 6f 6b 65 6e 2c 20 61 6e 64 20 72 65 74 75 72 6e 65 l.'".appears.broken,.and.returne
87760 64 20 61 6e 20 65 6d 70 74 79 20 32 30 30 20 72 65 73 70 6f 6e 73 65 27 29 3b 0a 7d 0a 0a 24 65 d.an.empty.200.response');.}..$e
87780 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 rrorMessage.=.'';.set_error_hand
877a0 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 65 20 28 ler(function.($code,.$msg).use.(
877c0 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 65 73 73 &$errorMessage).{.if.($errorMess
877e0 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 0a 7d 0a age).{.$errorMessage..=."\n";.}.
87800 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 28 27 7b $errorMessage..=.preg_replace('{
87820 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 ^file_put_contents\(.*?\):.}',.'
87840 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 28 62 6f 6f 6c 29 20 66 ',.$msg);.});.$result.=.(bool).f
87860 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 72 65 73 ile_put_contents($fileName,.$res
87880 75 6c 74 29 3b 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 ult);.restore_error_handler();.i
878a0 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 f.(false.===.$result).{.throw.ne
878c0 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 74 68 w.TransportException('The."'.$th
878e0 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 62 65 is->fileUrl.'".file.could.not.be
87900 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 3a 20 27 2e 24 65 72 .written.to.'.$fileName.':.'.$er
87920 72 6f 72 4d 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 72 65 74 rorMessage);.}.}..if.($this->ret
87940 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 72 65 ry).{.$this->retry.=.false;..$re
87960 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 sult.=.$this->get($this->originU
87980 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 74 69 6f 6e 61 6c 4f rl,.$this->fileUrl,.$additionalO
879a0 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 24 74 68 69 73 2d 3e ptions,.$this->fileName,.$this->
879c0 70 72 6f 67 72 65 73 73 29 3b 0a 0a 24 61 75 74 68 48 65 6c 70 65 72 20 3d 20 6e 65 77 20 41 75 progress);..$authHelper.=.new.Au
879e0 74 68 48 65 6c 70 65 72 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 thHelper($this->io,.$this->confi
87a00 67 29 3b 0a 24 61 75 74 68 48 65 6c 70 65 72 2d 3e 73 74 6f 72 65 41 75 74 68 28 24 74 68 69 73 g);.$authHelper->storeAuth($this
87a20 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 29 3b 0a ->originUrl,.$this->storeAuth);.
87a40 24 74 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 $this->storeAuth.=.false;..retur
87a60 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 n.$result;.}..if.(false.===.$res
87a80 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 45 78 63 65 70 74 69 ult).{.$e.=.new.TransportExcepti
87aa0 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c on('The."'.$this->fileUrl.'".fil
87ac0 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 3a 20 27 2e 24 65 72 e.could.not.be.downloaded:.'.$er
87ae0 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 69 66 20 28 21 65 6d rorMessage,.$errorCode);.if.(!em
87b00 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b pty($http_response_header[0])).{
87b20 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 .$e->setHeaders($http_response_h
87b40 65 61 64 65 72 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 eader);.}..throw.$e;.}..if.(!emp
87b60 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a ty($http_response_header[0])).{.
87b80 24 74 68 69 73 2d 3e 6c 61 73 74 48 65 61 64 65 72 73 20 3d 20 24 68 74 74 70 5f 72 65 73 70 6f $this->lastHeaders.=.$http_respo
87ba0 6e 73 65 5f 68 65 61 64 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d nse_header;.}..return.$result;.}
87bc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .............protected.function.
87be0 63 61 6c 6c 62 61 63 6b 47 65 74 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 2c 20 24 callbackGet($notificationCode,.$
87c00 73 65 76 65 72 69 74 79 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 6d 65 73 73 61 67 65 43 6f 64 65 severity,.$message,.$messageCode
87c20 2c 20 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 2c 20 24 62 79 74 65 73 4d 61 78 29 0a ,.$bytesTransferred,.$bytesMax).
87c40 7b 0a 73 77 69 74 63 68 20 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 29 20 7b 0a 63 {.switch.($notificationCode).{.c
87c60 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 41 49 4c 55 52 45 3a 0a 63 61 73 65 20 ase.STREAM_NOTIFY_FAILURE:.case.
87c80 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 51 55 49 52 45 44 3a 0a 69 66 20 STREAM_NOTIFY_AUTH_REQUIRED:.if.
87ca0 28 34 30 31 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 0a 20 69 66 20 28 21 (401.===.$messageCode).{...if.(!
87cc0 24 74 68 69 73 2d 3e 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 29 20 7b 0a 62 72 65 61 6b $this->retryAuthFailure).{.break
87ce0 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 72 79 28 24 ;.}..$this->promptAuthAndRetry($
87d00 6d 65 73 73 61 67 65 43 6f 64 65 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 messageCode);.break;.}.break;..c
87d20 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 53 55 4c 54 3a 0a 69 ase.STREAM_NOTIFY_AUTH_RESULT:.i
87d40 66 20 28 34 30 33 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 24 74 68 69 73 f.(403.===.$messageCode).{.$this
87d60 2d 3e 70 72 6f 6d 70 74 41 75 74 68 41 6e 64 52 65 74 72 79 28 24 6d 65 73 73 61 67 65 43 6f 64 ->promptAuthAndRetry($messageCod
87d80 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 e,.$message);.break;.}.break;..c
87da0 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 49 4c 45 5f 53 49 5a 45 5f 49 53 3a 0a ase.STREAM_NOTIFY_FILE_SIZE_IS:.
87dc0 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3c 20 24 62 79 74 65 73 4d 61 78 29 if.($this->bytesMax.<.$bytesMax)
87de0 20 7b 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 24 62 79 74 65 73 4d 61 78 3b 0a .{.$this->bytesMax.=.$bytesMax;.
87e00 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 4f }.break;..case.STREAM_NOTIFY_PRO
87e20 47 52 45 53 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 20 26 GRESS:.if.($this->bytesMax.>.0.&
87e40 26 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f &.$this->progress).{.$progressio
87e60 6e 20 3d 20 30 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 29 n.=.0;..if.($this->bytesMax.>.0)
87e80 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 72 6f 75 6e 64 28 24 62 79 74 65 73 54 72 .{.$progression.=.round($bytesTr
87ea0 61 6e 73 66 65 72 72 65 64 20 2f 20 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 2a 20 31 30 ansferred./.$this->bytesMax.*.10
87ec0 30 29 3b 0a 7d 0a 0a 69 66 20 28 28 30 20 3d 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 25 0);.}..if.((0.===.$progression.%
87ee0 20 35 29 20 26 26 20 31 30 30 20 21 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 26 26 20 24 .5).&&.100.!==.$progression.&&.$
87f00 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
87f20 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
87f40 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 45 ogression;.$this->io->overwriteE
87f60 72 72 6f 72 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 rror("....Downloading:.<comment>
87f80 24 70 72 6f 67 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 $progression%</comment>",.false)
87fa0 3b 0a 7d 0a 7d 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 ;.}.}.break;..default:.break;.}.
87fc0 7d 0a 0a 70 72 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 }..protected.function.promptAuth
87fe0 41 6e 64 52 65 74 72 79 28 24 68 74 74 70 53 74 61 74 75 73 2c 20 24 72 65 61 73 6f 6e 20 3d 20 AndRetry($httpStatus,.$reason.=.
88000 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 26 26 20 69 6e 5f null).{.if.($this->config.&&.in_
88020 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 63 array($this->originUrl,.$this->c
88040 6f 6e 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 2c 20 74 72 onfig->get('github-domains'),.tr
88060 75 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 6f ue)).{.$message.=."\n".'Could.no
88080 74 20 66 65 74 63 68 20 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 2c 20 65 6e 74 65 t.fetch.'.$this->fileUrl.',.ente
880a0 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 68 74 r.your.GitHub.credentials.'.($ht
880c0 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 34 20 3f 20 27 74 6f 20 61 63 63 65 73 73 20 70 72 tpStatus.===.404.?.'to.access.pr
880e0 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 20 41 ivate.repos'.:.'to.go.over.the.A
88100 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 20 6e PI.rate.limit');.$gitHubUtil.=.n
88120 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 6e 66 ew.GitHub($this->io,.$this->conf
88140 69 67 2c 20 6e 75 6c 6c 29 3b 0a 69 66 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 ig,.null);.if.(!$gitHubUtil->aut
88160 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 0a 26 26 horizeOAuth($this->originUrl).&&
88180 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 7c .(!$this->io->isInteractive().||
881a0 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 74 .!$gitHubUtil->authorizeOAuthInt
881c0 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d 65 eractively($this->originUrl,.$me
881e0 73 73 61 67 65 29 29 0a 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 ssage)).).{.throw.new.TransportE
88200 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 61 74 65 xception('Could.not.authenticate
88220 20 61 67 61 69 6e 73 74 20 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 34 30 31 .against.'.$this->originUrl,.401
88240 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 68 74 74 70 53 74 61 74 75 73 20 );.}.}.else.{...if.($httpStatus.
88260 3d 3d 3d 20 34 30 34 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 68 ===.404).{.return;.}....if.(!$th
88280 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 69 66 20 28 24 is->io->isInteractive()).{.if.($
882a0 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 31 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d httpStatus.===.401).{.$message.=
882c0 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 ."The.'"...$this->fileUrl..."'.U
882e0 52 4c 20 72 65 71 75 69 72 65 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 5c 6e 59 6f 75 RL.required.authentication.\nYou
88300 20 6d 75 73 74 20 62 65 20 75 73 69 6e 67 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 .must.be.using.the.interactive.c
88320 6f 6e 73 6f 6c 65 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 22 3b 0a 7d 0a 69 66 20 28 24 onsole.to.authenticate";.}.if.($
88340 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 33 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d httpStatus.===.403).{.$message.=
88360 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 ."The.'"...$this->fileUrl..."'.U
88380 52 4c 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 63 63 65 73 73 65 64 3a 20 22 20 2e 20 24 72 RL.could.not.be.accessed:."...$r
883a0 65 61 73 6f 6e 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 eason;.}..throw.new.TransportExc
883c0 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 68 74 74 70 53 74 61 74 75 73 29 3b 0a 7d eption($message,.$httpStatus);.}
883e0 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 ...if.($this->io->hasAuthenticat
88400 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e ion($this->originUrl)).{.throw.n
88420 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 63 ew.TransportException("Invalid.c
88440 72 65 64 65 6e 74 69 61 6c 73 20 66 6f 72 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 redentials.for.'"...$this->fileU
88460 72 6c 20 2e 20 22 27 2c 20 61 62 6f 72 74 69 6e 67 2e 22 2c 20 24 68 74 74 70 53 74 61 74 75 73 rl..."',.aborting.",.$httpStatus
88480 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 );.}..$this->io->overwriteError(
884a0 27 20 20 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 '....Authentication.required.(<i
884c0 6e 66 6f 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 nfo>'.parse_url($this->fileUrl,.
884e0 50 48 50 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 PHP_URL_HOST).'</info>):');.$use
88500 72 6e 61 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 rname.=.$this->io->ask('......Us
88520 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 68 69 73 2d 3e 69 ername:.');.$password.=.$this->i
88540 6f 2d 3e 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 o->askAndHideAnswer('......Passw
88560 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
88580 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d ation($this->originUrl,.$usernam
885a0 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 20 e,.$password);.$this->storeAuth.
885c0 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 73 74 6f 72 65 2d 61 75 74 68 =.$this->config->get('store-auth
885e0 73 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 74 68 72 s');.}..$this->retry.=.true;.thr
88600 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 52 45 54 52 59 ow.new.TransportException('RETRY
88620 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 65 74 4f 70 74 ');.}..protected.function.getOpt
88640 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 69 74 69 6f 6e ionsForUrl($originUrl,.$addition
88660 61 6c 4f 70 74 69 6f 6e 73 29 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 alOptions).{.if.(defined('HHVM_V
88680 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 70 68 70 56 65 72 73 69 6f 6e 20 3d 20 27 48 48 56 4d 20 ERSION')).{.$phpVersion.=.'HHVM.
886a0 27 20 2e 20 48 48 56 4d 5f 56 45 52 53 49 4f 4e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 68 70 56 '...HHVM_VERSION;.}.else.{.$phpV
886c0 65 72 73 69 6f 6e 20 3d 20 27 50 48 50 20 27 20 2e 20 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 ersion.=.'PHP.'...PHP_MAJOR_VERS
886e0 49 4f 4e 20 2e 20 27 2e 27 20 2e 20 50 48 50 5f 4d 49 4e 4f 52 5f 56 45 52 53 49 4f 4e 20 2e 20 ION...'.'...PHP_MINOR_VERSION...
88700 27 2e 27 20 2e 20 50 48 50 5f 52 45 4c 45 41 53 45 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 24 68 '.'...PHP_RELEASE_VERSION;.}..$h
88720 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 73 70 72 69 6e 74 66 28 0a 27 55 73 65 72 2d 41 eaders.=.array(.sprintf(.'User-A
88740 67 65 6e 74 3a 20 43 6f 6d 70 6f 73 65 72 2f 25 73 20 28 25 73 3b 20 25 73 3b 20 25 73 29 27 2c gent:.Composer/%s.(%s;.%s;.%s)',
88760 0a 43 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 .Composer::VERSION.===.'@package
88780 5f 76 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 _version@'.?.'source'.:.Composer
887a0 3a 3a 56 45 52 53 49 4f 4e 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 2c 0a 70 68 70 5f 75 ::VERSION,.php_uname('s'),.php_u
887c0 6e 61 6d 65 28 27 72 27 29 2c 0a 24 70 68 70 56 65 72 73 69 6f 6e 0a 29 0a 29 3b 0a 0a 69 66 20 name('r'),.$phpVersion.).);..if.
887e0 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 68 65 (extension_loaded('zlib')).{.$he
88800 61 64 65 72 73 5b 5d 20 3d 20 27 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 aders[].=.'Accept-Encoding:.gzip
88820 27 3b 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 65 5f 72 ';.}..$options.=.array_replace_r
88840 65 63 75 72 73 69 76 65 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 61 64 64 69 74 69 ecursive($this->options,.$additi
88860 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 3e 69 6f 2d 3e 68 61 onalOptions);..if.($this->io->ha
88880 73 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 29 20 7b 0a 24 sAuthentication($originUrl)).{.$
888a0 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 74 auth.=.$this->io->getAuthenticat
888c0 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 6f 6d ion($originUrl);.if.('github.com
888e0 27 20 3d 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 20 26 26 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 '.===.$originUrl.&&.'x-oauth-bas
88900 69 63 27 20 3d 3d 3d 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 20 7b 0a 24 6f 70 ic'.===.$auth['password']).{.$op
88920 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 20 3d 20 24 61 75 74 68 5b 27 75 tions['github-token'].=.$auth['u
88940 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 75 74 68 53 74 72 20 3d 20 62 sername'];.}.else.{.$authStr.=.b
88960 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 2e ase64_encode($auth['username']..
88980 20 27 3a 27 20 2e 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 24 68 65 61 64 .':'...$auth['password']);.$head
889a0 65 72 73 5b 5d 20 3d 20 27 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 27 2e ers[].=.'Authorization:.Basic.'.
889c0 24 61 75 74 68 53 74 72 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e $authStr;.}.}..if.(isset($option
889e0 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 20 26 26 20 21 69 73 5f 61 72 72 61 s['http']['header']).&&.!is_arra
88a00 79 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 29 20 7b y($options['http']['header'])).{
88a20 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 5d 20 3d 20 65 78 .$options['http']['header'].=.ex
88a40 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 74 72 69 6d 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 plode("\r\n",.trim($options['htt
88a60 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 7d 0a 66 6f 72 65 61 p']['header'],."\r\n"));.}.forea
88a80 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 24 6f 70 74 69 ch.($headers.as.$header).{.$opti
88aa0 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 24 68 65 61 64 65 ons['http']['header'][].=.$heade
88ac0 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 r;.}..return.$options;.}.}.<?php
88ae0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 ............namespace.Composer\U
88b00 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c 61 73 73 20 53 74 72 65 61 6d 43 6f til;........final.class.StreamCo
88b20 6e 74 65 78 74 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 ntextFactory.{..........public.s
88b40 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 78 74 28 24 75 72 6c 2c 20 tatic.function.getContext($url,.
88b60 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 2c array.$defaultOptions.=.array(),
88b80 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 29 .array.$defaultParams.=.array())
88ba0 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 .{.$options.=.array('http'.=>.ar
88bc0 72 61 79 28 0a 0a 20 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 69 6f 6e 27 20 3d 3e 20 31 2c 0a 27 ray(...'follow_location'.=>.1,.'
88be0 6d 61 78 5f 72 65 64 69 72 65 63 74 73 27 20 3d 3e 20 32 30 2c 0a 29 29 3b 0a 0a 0a 20 69 66 20 max_redirects'.=>.20,.));....if.
88c00 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 20 (!empty($_SERVER['HTTP_PROXY']).
88c20 7c 7c 20 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d ||.!empty($_SERVER['http_proxy']
88c40 29 29 20 7b 0a 0a 20 24 70 72 6f 78 79 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 21 65 6d 70 74 79 )).{...$proxy.=.parse_url(!empty
88c60 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 5f 53 45 52 ($_SERVER['http_proxy']).?.$_SER
88c80 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 5b 27 48 54 VER['http_proxy'].:.$_SERVER['HT
88ca0 54 50 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 TP_PROXY']);.}....if.(preg_match
88cc0 28 27 7b 5e 68 74 74 70 73 3a 2f 2f 7d 69 27 2c 20 24 75 72 6c 29 20 26 26 20 28 21 65 6d 70 74 ('{^https://}i',.$url).&&.(!empt
88ce0 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 53 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 21 65 y($_SERVER['HTTPS_PROXY']).||.!e
88d00 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 73 5f 70 72 6f 78 79 27 5d 29 29 29 20 mpty($_SERVER['https_proxy']))).
88d20 7b 0a 24 70 72 6f 78 79 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 21 65 6d 70 74 79 28 24 5f 53 45 {.$proxy.=.parse_url(!empty($_SE
88d40 52 56 45 52 5b 27 68 74 74 70 73 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 5b RVER['https_proxy']).?.$_SERVER[
88d60 27 68 74 74 70 73 5f 70 72 6f 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 53 'https_proxy'].:.$_SERVER['HTTPS
88d80 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 _PROXY']);.}....if.(!empty($_SER
88da0 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 5f 75 72 6c 28 24 75 VER['no_proxy']).&&.parse_url($u
88dc0 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 74 65 72 6e 20 3d 20 rl,.PHP_URL_HOST)).{.$pattern.=.
88de0 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 45 52 5b 27 6e 6f 5f new.NoProxyPattern($_SERVER['no_
88e00 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 65 73 74 28 24 75 72 proxy']);.if.($pattern->test($ur
88e20 6c 29 29 20 7b 0a 75 6e 73 65 74 28 24 70 72 6f 78 79 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 l)).{.unset($proxy);.}.}..if.(!e
88e40 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 73 65 mpty($proxy)).{.$proxyURL.=.isse
88e60 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 73 63 t($proxy['scheme']).?.$proxy['sc
88e80 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 20 2e heme']...'://'.:.'';.$proxyURL..
88ea0 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 78 79 =.isset($proxy['host']).?.$proxy
88ec0 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 78 79 ['host'].:.'';..if.(isset($proxy
88ee0 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 2e 20 ['port'])).{.$proxyURL..=.":"...
88f00 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 70 3a $proxy['port'];.}.elseif.('http:
88f20 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 29 20 //'.==.substr($proxyURL,.0,.7)).
88f40 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 20 28 {.$proxyURL..=.":80";.}.elseif.(
88f60 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 2c 20 'https://'.==.substr($proxyURL,.
88f80 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 7d 0a 0,.8)).{.$proxyURL..=.":443";.}.
88fa0 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 61 79 ...$proxyURL.=.str_replace(array
88fc0 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 28 27 ('http://',.'https://'),.array('
88fe0 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 3b 0a tcp://',.'ssl://'),.$proxyURL);.
89000 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 73 73 .if.(0.===.strpos($proxyURL,.'ss
89020 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 6e 73 l:').&&.!extension_loaded('opens
89040 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 70 74 sl')).{.throw.new.\RuntimeExcept
89060 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 73 6c ion('You.must.enable.the.openssl
89080 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 20 68 .extension.to.use.a.proxy.over.h
890a0 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 72 6f ttps');.}..$options['http']['pro
890c0 78 79 27 5d 20 3d 20 24 70 72 6f 78 79 55 52 4c 3b 0a 0a 0a 20 73 77 69 74 63 68 20 28 70 61 72 xy'].=.$proxyURL;....switch.(par
890e0 73 65 5f 75 72 6c 28 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 se_url($url,.PHP_URL_SCHEME)).{.
89100 63 61 73 65 20 27 68 74 74 70 27 3a 20 0a 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 20 case.'http':...$reqFullUriEnv.=.
89120 67 65 74 65 6e 76 28 27 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 getenv('HTTP_PROXY_REQUEST_FULLU
89140 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 3d 3d 3d 20 66 61 6c RI');.if.($reqFullUriEnv.===.fal
89160 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 27 27 20 7c 7c 20 28 se.||.$reqFullUriEnv.===.''.||.(
89180 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 29 20 21 3d 3d 20 27 strtolower($reqFullUriEnv).!==.'
891a0 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 55 72 69 45 6e 76 29 false'.&&.(bool).$reqFullUriEnv)
891c0 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 75 65 73 74 5f 66 75 ).{.$options['http']['request_fu
891e0 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 63 61 73 65 20 27 68 lluri'].=.true;.}.break;.case.'h
89200 74 74 70 73 27 3a 20 0a 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 20 67 65 74 65 6e 76 ttps':...$reqFullUriEnv.=.getenv
89220 28 27 48 54 54 50 53 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 27 29 3b ('HTTPS_PROXY_REQUEST_FULLURI');
89240 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c .if.($reqFullUriEnv.===.false.||
89260 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 27 27 20 7c 7c 20 28 73 74 72 74 6f .$reqFullUriEnv.===.''.||.(strto
89280 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 29 20 21 3d 3d 20 27 66 61 6c 73 65 lower($reqFullUriEnv).!==.'false
892a0 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 29 29 20 7b 0a 24 '.&&.(bool).$reqFullUriEnv)).{.$
892c0 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 options['http']['request_fulluri
892e0 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 68 74 '].=.true;.}.break;.}....if.('ht
89300 74 70 73 27 20 3d 3d 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c tps'.===.parse_url($url,.PHP_URL
89320 5f 53 43 48 45 4d 45 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 73 73 6c 27 5d 5b 27 53 4e 49 _SCHEME)).{.$options['ssl']['SNI
89340 5f 65 6e 61 62 6c 65 64 27 5d 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 _enabled'].=.true;.if.(version_c
89360 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 36 2e 30 27 2c 20 27 3c 27 ompare(PHP_VERSION,.'5.6.0',.'<'
89380 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 73 73 6c 27 5d 5b 27 53 4e 49 5f 73 65 72 76 65 72 )).{.$options['ssl']['SNI_server
893a0 5f 6e 61 6d 65 27 5d 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 _name'].=.parse_url($url,.PHP_UR
893c0 4c 5f 48 4f 53 54 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 L_HOST);.}.}....if.(isset($proxy
893e0 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 75 72 6c 64 65 63 6f 64 65 28 24 ['user'])).{.$auth.=.urldecode($
89400 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 proxy['user']);.if.(isset($proxy
89420 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 2e 3d 20 27 3a 27 20 2e 20 75 72 6c 64 ['pass'])).{.$auth..=.':'...urld
89440 65 63 6f 64 65 28 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 3b 0a 7d 0a 24 61 75 74 68 20 3d ecode($proxy['pass']);.}.$auth.=
89460 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 29 3b 0a 0a 0a 20 69 66 20 28 69 73 .base64_encode($auth);....if.(is
89480 73 65 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 set($defaultOptions['http']['hea
894a0 64 65 72 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 65 66 61 75 6c 74 der'])).{.if.(is_string($default
894c0 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 29 20 7b 0a 24 64 Options['http']['header'])).{.$d
894e0 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 27 5d 20 efaultOptions['http']['header'].
89500 3d 20 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b =.array($defaultOptions['http'][
89520 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 'header']);.}.$defaultOptions['h
89540 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 6f ttp']['header'][].=."Proxy-Autho
89560 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 22 3b 0a 7d 20 65 6c 73 65 rization:.Basic.{$auth}";.}.else
89580 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 5d 20 3d 20 .{.$options['http']['header'].=.
895a0 61 72 72 61 79 28 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 69 array("Proxy-Authorization:.Basi
895c0 63 20 7b 24 61 75 74 68 7d 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 c.{$auth}");.}.}.}..$options.=.a
895e0 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 6f 70 74 69 6f 6e 73 2c rray_replace_recursive($options,
89600 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f .$defaultOptions);..if.(isset($o
89620 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 24 6f 70 ptions['http']['header'])).{.$op
89640 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 73 65 6c 66 3a 3a tions['http']['header'].=.self::
89660 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 65 6c 64 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 fixHttpHeaderField($options['htt
89680 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d p']['header']);.}..return.stream
896a0 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 _context_create($options,.$defau
896c0 6c 74 50 61 72 61 6d 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ltParams);.}............private.
896e0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 65 static.function.fixHttpHeaderFie
89700 6c 64 28 24 68 65 61 64 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 68 65 61 ld($header).{.if.(!is_array($hea
89720 64 65 72 29 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 der)).{.$header.=.explode("\r\n"
89740 2c 20 24 68 65 61 64 65 72 29 3b 0a 7d 0a 75 61 73 6f 72 74 28 24 68 65 61 64 65 72 2c 20 66 75 ,.$header);.}.uasort($header,.fu
89760 6e 63 74 69 6f 6e 20 28 24 65 6c 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 nction.($el).{.return.preg_match
89780 28 27 7b 5e 63 6f 6e 74 65 6e 74 2d 74 79 70 65 7d 69 27 2c 20 24 65 6c 29 20 3f 20 31 20 3a 20 ('{^content-type}i',.$el).?.1.:.
897a0 2d 31 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 -1;.});..return.$header;.}.}.<?p
897c0 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
897e0 5c 55 74 69 6c 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 \Util;..use.Composer\Package\Loa
89800 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 der\ArrayLoader;.use.Composer\Pa
89820 63 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 ckage\Loader\ValidatingArrayLoad
89840 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 72 5c er;.use.Composer\Package\Loader\
89860 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d InvalidPackageException;.use.Com
89880 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 poser\Json\JsonValidationExcepti
898a0 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;
898c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a .use.Composer\Json\JsonFile;....
898e0 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 0a 7b 0a 70 72 69 76 ....class.ConfigValidator.{.priv
89900 61 74 65 20 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 ate.$io;..public.function.__cons
89920 74 72 75 63 74 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 truct(IOInterface.$io).{.$this->
89940 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 io.=.$io;.}..........public.func
89960 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 2c 20 24 61 72 72 61 79 4c 6f 61 64 65 tion.validate($file,.$arrayLoade
89980 72 56 61 6c 69 64 61 74 69 6f 6e 46 6c 61 67 73 20 3d 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 rValidationFlags.=.ValidatingArr
899a0 61 79 4c 6f 61 64 65 72 3a 3a 43 48 45 43 4b 5f 41 4c 4c 29 0a 7b 0a 24 65 72 72 6f 72 73 20 3d ayLoader::CHECK_ALL).{.$errors.=
899c0 20 61 72 72 61 79 28 29 3b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 3d 20 61 72 72 61 79 .array();.$publishErrors.=.array
899e0 28 29 3b 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 6c 61 78 ();.$warnings.=.array();....$lax
89a00 56 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 Valid.=.false;.try.{.$json.=.new
89a20 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 .JsonFile($file,.new.RemoteFiles
89a40 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 6d 61 6e 69 66 65 73 74 20 3d 20 24 ystem($this->io));.$manifest.=.$
89a60 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 json->read();..$json->validateSc
89a80 68 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 61 78 hema(JsonFile::LAX_SCHEMA);.$lax
89aa0 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 Valid.=.true;.$json->validateSch
89ac0 65 6d 61 28 29 3b 0a 7d 20 63 61 74 63 68 20 28 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 ema();.}.catch.(JsonValidationEx
89ae0 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 45 72 ception.$e).{.foreach.($e->getEr
89b00 72 6f 72 73 28 29 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 6c 61 78 56 61 rors().as.$message).{.if.($laxVa
89b20 6c 69 64 29 20 7b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 lid).{.$publishErrors[].=.$messa
89b40 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 ge;.}.else.{.$errors[].=.$messag
89b60 65 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b e;.}.}.}.catch.(\Exception.$e).{
89b80 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 0a .$errors[].=.$e->getMessage();..
89ba0 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 68 45 72 return.array($errors,.$publishEr
89bc0 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 rors,.$warnings);.}....if.(!empt
89be0 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 0a 20 69 66 20 y($manifest['license'])).{...if.
89c00 28 69 73 5f 61 72 72 61 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 (is_array($manifest['license']))
89c20 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d .{.foreach.($manifest['license']
89c40 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 69 66 20 28 27 70 72 6f .as.$key.=>.$license).{.if.('pro
89c60 70 72 69 65 74 61 72 79 27 20 3d 3d 3d 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 75 6e 73 65 74 28 prietary'.===.$license).{.unset(
89c80 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d $manifest['license'][$key]);.}.}
89ca0 0a 7d 0a 0a 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 70 64 78 .}..$licenseValidator.=.new.Spdx
89cc0 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 69 66 20 28 27 70 72 6f 70 72 69 LicenseIdentifier();.if.('propri
89ce0 65 74 61 72 79 27 20 21 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 etary'.!==.$manifest['license'].
89d00 26 26 20 61 72 72 61 79 28 29 20 21 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 &&.array().!==.$manifest['licens
89d20 65 27 5d 20 26 26 20 21 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 e'].&&.!$licenseValidator->valid
89d40 61 74 65 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 77 61 ate($manifest['license'])).{.$wa
89d60 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 4c 69 63 65 6e 73 65 20 25 73 20 rnings[].=.sprintf(.'License.%s.
89d80 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 53 50 44 58 20 6c 69 63 65 6e 73 65 20 69 64 65 6e is.not.a.valid.SPDX.license.iden
89da0 74 69 66 69 65 72 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 70 64 78 2e 6f 72 67 2f tifier,.see.http://www.spdx.org/
89dc0 6c 69 63 65 6e 73 65 73 2f 20 69 66 20 79 6f 75 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 licenses/.if.you.use.an.open.lic
89de0 65 6e 73 65 2e 27 0a 2e 22 5c 6e 49 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 73 20 63 6c ense.'.."\nIf.the.software.is.cl
89e00 6f 73 65 64 2d 73 6f 75 72 63 65 2c 20 79 6f 75 20 6d 61 79 20 75 73 65 20 5c 22 70 72 6f 70 72 osed-source,.you.may.use.\"propr
89e20 69 65 74 61 72 79 5c 22 20 61 73 20 6c 69 63 65 6e 73 65 2e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f ietary\".as.license.",.json_enco
89e40 64 65 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d 0a 7d 20 de($manifest['license']).);.}.}.
89e60 65 6c 73 65 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 6e 73 65 else.{.$warnings[].=.'No.license
89e80 20 73 70 65 63 69 66 69 65 64 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f .specified,.it.is.recommended.to
89ea0 20 64 6f 20 73 6f 2e 20 46 6f 72 20 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 20 73 6f 66 74 77 61 .do.so..For.closed-source.softwa
89ec0 72 65 20 79 6f 75 20 6d 61 79 20 75 73 65 20 22 70 72 6f 70 72 69 65 74 61 72 79 22 20 61 73 20 re.you.may.use."proprietary".as.
89ee0 6c 69 63 65 6e 73 65 2e 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 license.';.}..if.(isset($manifes
89f00 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 t['version'])).{.$warnings[].=.'
89f20 54 68 65 20 76 65 72 73 69 6f 6e 20 66 69 65 6c 64 20 69 73 20 70 72 65 73 65 6e 74 2c 20 69 74 The.version.field.is.present,.it
89f40 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 6c 65 61 76 65 20 69 74 20 6f 75 74 20 .is.recommended.to.leave.it.out.
89f60 69 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 70 75 62 6c 69 73 68 65 64 20 6f 6e 20 50 if.the.package.is.published.on.P
89f80 61 63 6b 61 67 69 73 74 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 ackagist.';.}..if.(!empty($manif
89fa0 65 73 74 5b 27 6e 61 6d 65 27 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 2d est['name']).&&.preg_match('{[A-
89fc0 5a 5d 7d 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 67 Z]}',.$manifest['name'])).{.$sug
89fe0 67 65 73 74 4e 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b 61 gestName.=.preg_replace('{(?:([a
8a000 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 29 -z])([A-Z])|([A-Z])([A-Z][a-z]))
8a020 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 }',.'\\1\\3-\\2\\4',.$manifest['
8a040 6e 61 6d 65 27 5d 29 3b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 name']);.$suggestName.=.strtolow
8a060 65 72 28 24 73 75 67 67 65 73 74 4e 61 6d 65 29 3b 0a 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d er($suggestName);..$warnings[].=
8a080 20 73 70 72 69 6e 74 66 28 0a 27 4e 61 6d 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 .sprintf(.'Name."%s".does.not.ma
8a0a0 74 63 68 20 74 68 65 20 62 65 73 74 20 70 72 61 63 74 69 63 65 20 28 65 2e 67 2e 20 6c 6f 77 65 tch.the.best.practice.(e.g..lowe
8a0c0 72 2d 63 61 73 65 64 2f 77 69 74 68 2d 64 61 73 68 65 73 29 2e 20 57 65 20 73 75 67 67 65 73 74 r-cased/with-dashes)..We.suggest
8a0e0 20 75 73 69 6e 67 20 22 25 73 22 20 69 6e 73 74 65 61 64 2e 20 41 73 20 73 75 63 68 20 79 6f 75 .using."%s".instead..As.such.you
8a100 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20 73 75 62 6d 69 74 20 69 74 20 74 .will.not.be.able.to.submit.it.t
8a120 6f 20 50 61 63 6b 61 67 69 73 74 2e 27 2c 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d o.Packagist.',.$manifest['name']
8a140 2c 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 ,.$suggestName.);.}..if.(!empty(
8a160 24 6d 61 6e 69 66 65 73 74 5b 27 74 79 70 65 27 5d 29 20 26 26 20 24 6d 61 6e 69 66 65 73 74 5b $manifest['type']).&&.$manifest[
8a180 27 74 79 70 65 27 5d 20 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 'type'].==.'composer-installer')
8a1a0 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 22 54 68 65 20 70 61 63 6b 61 67 65 20 74 79 .{.$warnings[].=."The.package.ty
8a1c0 70 65 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 69 73 20 64 65 70 72 65 pe.'composer-installer'.is.depre
8a1e0 63 61 74 65 64 2e 20 50 6c 65 61 73 65 20 64 69 73 74 72 69 62 75 74 65 20 79 6f 75 72 20 63 75 cated..Please.distribute.your.cu
8a200 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 70 6c 75 67 69 6e 73 20 66 72 6f 6d 20 stom.installers.as.plugins.from.
8a220 6e 6f 77 20 6f 6e 2e 20 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f now.on..See.http://getcomposer.o
8a240 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 70 6c 75 67 69 6e 73 2e 6d 64 20 66 6f 72 20 70 rg/doc/articles/plugins.md.for.p
8a260 6c 75 67 69 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 22 3b 0a 7d 0a 0a 0a 20 69 66 20 28 lugin.documentation.";.}....if.(
8a280 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 27 5d 29 20 26 26 20 69 isset($manifest['require']).&&.i
8a2a0 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 29 20 sset($manifest['require-dev'])).
8a2c0 7b 0a 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 65 {.$requireOverrides.=.array_inte
8a2e0 72 73 65 63 74 5f 6b 65 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 27 5d 2c 20 rsect_key($manifest['require'],.
8a300 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 3b 0a 0a 69 66 20 28 $manifest['require-dev']);..if.(
8a320 21 65 6d 70 74 79 28 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 29 29 20 7b 0a 24 70 6c !empty($requireOverrides)).{.$pl
8a340 75 72 61 6c 20 3d 20 28 63 6f 75 6e 74 28 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 29 ural.=.(count($requireOverrides)
8a360 20 3e 20 31 29 20 3f 20 27 61 72 65 27 20 3a 20 27 69 73 27 3b 0a 24 77 61 72 6e 69 6e 67 73 5b .>.1).?.'are'.:.'is';.$warnings[
8a380 5d 20 3d 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 72 65 ].=.implode(',.',.array_keys($re
8a3a0 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 29 29 2e 20 22 20 7b 24 70 6c 75 72 61 6c 7d 20 72 65 quireOverrides))..".{$plural}.re
8a3c0 71 75 69 72 65 64 20 62 6f 74 68 20 69 6e 20 72 65 71 75 69 72 65 20 61 6e 64 20 72 65 71 75 69 quired.both.in.require.and.requi
8a3e0 72 65 2d 64 65 76 2c 20 74 68 69 73 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 75 6e 65 78 70 65 63 re-dev,.this.can.lead.to.unexpec
8a400 74 65 64 20 62 65 68 61 76 69 6f 72 22 3b 0a 7d 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6c 6f 61 64 65 ted.behavior";.}.}..try.{.$loade
8a420 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 r.=.new.ValidatingArrayLoader(ne
8a440 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 2c 20 74 72 75 65 2c 20 6e 75 6c 6c 2c 20 24 61 72 w.ArrayLoader(),.true,.null,.$ar
8a460 72 61 79 4c 6f 61 64 65 72 56 61 6c 69 64 61 74 69 6f 6e 46 6c 61 67 73 29 3b 0a 69 66 20 28 21 rayLoaderValidationFlags);.if.(!
8a480 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 isset($manifest['version'])).{.$
8a4a0 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d manifest['version'].=.'1.0.0';.}
8a4c0 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 .if.(!isset($manifest['name'])).
8a4e0 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 64 75 6d 6d 79 2f 64 75 6d {.$manifest['name'].=.'dummy/dum
8a500 6d 79 27 3b 0a 7d 0a 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 61 6e 69 66 65 73 74 29 3b my';.}.$loader->load($manifest);
8a520 0a 7d 20 63 61 74 63 68 20 28 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f .}.catch.(InvalidPackageExceptio
8a540 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 n.$e).{.$errors.=.array_merge($e
8a560 72 72 6f 72 73 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 24 77 61 72 rrors,.$e->getErrors());.}..$war
8a580 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 77 61 72 6e 69 6e 67 73 2c 20 24 nings.=.array_merge($warnings,.$
8a5a0 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 loader->getWarnings());..return.
8a5c0 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 array($errors,.$publishErrors,.$
8a5e0 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a warnings);.}.}.<?php............
8a600 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 namespace.Composer\Util;.......c
8a620 6c 61 73 73 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 lass.ErrorHandler.{............p
8a640 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 28 24 6c 65 ublic.static.function.handle($le
8a660 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 0a 7b 0a 0a vel,.$message,.$file,.$line).{..
8a680 20 69 66 20 28 21 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 29 29 20 7b 0a 72 65 74 75 72 .if.(!error_reporting()).{.retur
8a6a0 6e 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d n;.}..if.(ini_get('xdebug.scream
8a6c0 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 57 61 72 6e 69 6e 67 3a 20 ')).{.$message..=."\n\nWarning:.
8a6e0 59 6f 75 20 68 61 76 65 20 78 64 65 62 75 67 2e 73 63 72 65 61 6d 20 65 6e 61 62 6c 65 64 2c 20 You.have.xdebug.scream.enabled,.
8a700 74 68 65 20 77 61 72 6e 69 6e 67 20 61 62 6f 76 65 20 6d 61 79 20 62 65 22 2e 0a 22 5c 6e 61 20 the.warning.above.may.be".."\na.
8a720 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 73 75 70 70 72 65 73 73 65 64 20 65 72 72 6f 72 20 74 68 legitimately.suppressed.error.th
8a740 61 74 20 79 6f 75 20 77 65 72 65 20 6e 6f 74 20 73 75 70 70 6f 73 65 64 20 74 6f 20 73 65 65 2e at.you.were.not.supposed.to.see.
8a760 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 28 ";.}..throw.new.\ErrorException(
8a780 24 6d 65 73 73 61 67 65 2c 20 30 2c 20 24 6c 65 76 65 6c 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e $message,.0,.$level,.$file,.$lin
8a7a0 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 e);.}.......public.static.functi
8a7c0 6f 6e 20 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 on.register().{.set_error_handle
8a7e0 72 28 61 72 72 61 79 28 5f 5f 43 4c 41 53 53 5f 5f 2c 20 27 68 61 6e 64 6c 65 27 29 29 3b 0a 7d r(array(__CLASS__,.'handle'));.}
8a800 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
8a820 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 mposer\Util;..use.Composer\Confi
8a840 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a g;.use.Composer\IO\IOInterface;.
8a860 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 74 68 48 65 6c 70 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 ....class.AuthHelper.{.protected
8a880 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 0a 70 75 62 6c 69 63 .$io;.protected.$config;..public
8a8a0 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
8a8c0 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 74 68 69 73 2d 3e e.$io,.Config.$config).{.$this->
8a8e0 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 io.=.$io;.$this->config.=.$confi
8a900 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 72 65 41 75 74 68 28 g;.}..public.function.storeAuth(
8a920 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 73 74 6f 72 65 41 75 74 68 29 0a 7b 0a 24 73 74 6f 72 65 $originUrl,.$storeAuth).{.$store
8a940 20 3d 20 66 61 6c 73 65 3b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d .=.false;.$configSource.=.$this-
8a960 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 3b 0a >config->getAuthConfigSource();.
8a980 69 66 20 28 24 73 74 6f 72 65 41 75 74 68 20 3d 3d 3d 20 74 72 75 65 29 20 7b 0a 24 73 74 6f 72 if.($storeAuth.===.true).{.$stor
8a9a0 65 20 3d 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 73 74 e.=.$configSource;.}.elseif.($st
8a9c0 6f 72 65 41 75 74 68 20 3d 3d 3d 20 27 70 72 6f 6d 70 74 27 29 20 7b 0a 24 61 6e 73 77 65 72 20 oreAuth.===.'prompt').{.$answer.
8a9e0 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 27 44 6f =.$this->io->askAndValidate(.'Do
8aa00 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 73 74 6f 72 65 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 .you.want.to.store.credentials.f
8aa20 6f 72 20 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2e 27 20 69 6e 20 27 2e 24 63 6f 6e 66 69 67 53 6f or.'.$originUrl.'.in.'.$configSo
8aa40 75 72 63 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3f 20 5b 59 6e 5d 20 27 2c 0a 66 75 6e 63 urce->getName().'.?.[Yn].',.func
8aa60 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 73 74 72 74 6f 6c 6f tion.($value).{.$input.=.strtolo
8aa80 77 65 72 28 73 75 62 73 74 72 28 74 72 69 6d 28 24 76 61 6c 75 65 29 2c 20 30 2c 20 31 29 29 3b wer(substr(trim($value),.0,.1));
8aaa0 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 69 6e 70 75 74 2c 20 61 72 72 61 79 28 27 79 27 2c .if.(in_array($input,.array('y',
8aac0 27 6e 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 3b 0a 7d 0a 74 68 72 6f 77 20 'n'))).{.return.$input;.}.throw.
8aae0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 6c 65 61 73 65 20 61 6e new.\RuntimeException('Please.an
8ab00 73 77 65 72 20 28 79 29 65 73 20 6f 72 20 28 6e 29 6f 27 29 3b 0a 7d 2c 0a 66 61 6c 73 65 2c 0a swer.(y)es.or.(n)o');.},.false,.
8ab20 27 79 27 0a 29 3b 0a 0a 69 66 20 28 24 61 6e 73 77 65 72 20 3d 3d 3d 20 27 79 27 29 20 7b 0a 24 'y'.);..if.($answer.===.'y').{.$
8ab40 73 74 6f 72 65 20 3d 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 7d 0a 69 66 20 28 24 store.=.$configSource;.}.}.if.($
8ab60 73 74 6f 72 65 29 20 7b 0a 24 73 74 6f 72 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e store).{.$store->addConfigSettin
8ab80 67 28 0a 27 68 74 74 70 2d 62 61 73 69 63 2e 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2c 0a 24 74 68 g(.'http-basic.'.$originUrl,.$th
8aba0 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 is->io->getAuthentication($origi
8abc0 6e 55 72 6c 29 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a nUrl).);.}.}.}.<?php............
8abe0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f namespace.Composer\Util;..use.Co
8ac00 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 mposer\Json\JsonFile;........cla
8ac20 73 73 20 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 0a 7b 0a 0a 0a 0a 70 72 ss.SpdxLicenseIdentifier.{....pr
8ac40 69 76 61 74 65 20 24 69 64 65 6e 74 69 66 69 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ivate.$identifiers;..public.func
8ac60 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 tion.__construct().{.$this->init
8ac80 49 64 65 6e 74 69 66 69 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 Identifiers();.}........public.f
8aca0 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 69 66 20 unction.validate($license).{.if.
8acc0 28 69 73 5f 61 72 72 61 79 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 24 63 6f 75 6e 74 20 3d 20 (is_array($license)).{.$count.=.
8ace0 63 6f 75 6e 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 21 3d 3d 20 count($license);.if.($count.!==.
8ad00 63 6f 75 6e 74 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6c 69 63 65 6e 73 65 2c 20 27 69 73 count(array_filter($license,.'is
8ad20 5f 73 74 72 69 6e 67 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 _string'))).{.throw.new.\Invalid
8ad40 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 72 72 61 79 20 6f 66 20 73 74 72 69 ArgumentException('Array.of.stri
8ad60 6e 67 73 20 65 78 70 65 63 74 65 64 2e 27 29 3b 0a 7d 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 63 ngs.expected.');.}.$license.=.$c
8ad80 6f 75 6e 74 20 3e 20 31 20 3f 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 20 6f 72 20 27 2c 20 24 ount.>.1.?.'('.implode('.or.',.$
8ada0 6c 69 63 65 6e 73 65 29 2e 27 29 27 20 3a 20 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 6c license).')'.:.(string).reset($l
8adc0 69 63 65 6e 73 65 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 6c 69 63 65 6e icense);.}.if.(!is_string($licen
8ade0 73 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e se)).{.throw.new.\InvalidArgumen
8ae00 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 41 72 72 61 79 20 6f 72 20 53 74 tException(sprintf(.'Array.or.St
8ae20 72 69 6e 67 20 65 78 70 65 63 74 65 64 2c 20 25 73 20 67 69 76 65 6e 2e 27 2c 20 67 65 74 74 79 ring.expected,.%s.given.',.getty
8ae40 70 65 28 24 6c 69 63 65 6e 73 65 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 pe($license).));.}..return.$this
8ae60 2d 3e 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 ->isValidLicenseString($license)
8ae80 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 49 64 65 ;.}.....private.function.initIde
8aea0 6e 74 69 66 69 65 72 73 28 29 0a 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f ntifiers().{.$jsonFile.=.new.Jso
8aec0 6e 46 69 6c 65 28 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 73 nFile(__DIR__...'/../../../res/s
8aee0 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 64 pdx-identifier.json');.$this->id
8af00 65 6e 74 69 66 69 65 72 73 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d entifiers.=.$jsonFile->read();.}
8af20 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c .......private.function.isValidL
8af40 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a icenseIdentifier($identifier).{.
8af60 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 return.in_array($identifier,.$th
8af80 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 is->identifiers);.}........priva
8afa0 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 te.function.isValidLicenseString
8afc0 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 70 ($license).{.$tokens.=.array(.'p
8afe0 6f 27 20 3d 3e 20 27 5c 28 27 2c 0a 27 70 63 27 20 3d 3e 20 27 5c 29 27 2c 0a 27 6f 70 27 20 3d o'.=>.'\(',.'pc'.=>.'\)',.'op'.=
8b000 3e 20 27 28 3f 3a 6f 72 7c 61 6e 64 29 27 2c 0a 27 6c 69 78 27 20 3d 3e 20 27 28 3f 3a 4e 4f 4e >.'(?:or|and)',.'lix'.=>.'(?:NON
8b020 45 7c 4e 4f 41 53 53 45 52 54 49 4f 4e 29 27 2c 0a 27 6c 69 72 27 20 3d 3e 20 27 4c 69 63 65 6e E|NOASSERTION)',.'lir'.=>.'Licen
8b040 73 65 52 65 66 2d 5c 64 2b 27 2c 0a 27 6c 69 63 27 20 3d 3e 20 27 5b 2d 2b 5f 2e 61 2d 7a 41 2d seRef-\d+',.'lic'.=>.'[-+_.a-zA-
8b060 5a 30 2d 39 5d 7b 33 2c 7d 27 2c 0a 27 77 73 27 20 3d 3e 20 27 5c 73 2b 27 2c 0a 27 5f 27 20 3d Z0-9]{3,}',.'ws'.=>.'\s+',.'_'.=
8b080 3e 20 27 2e 27 2c 0a 29 3b 0a 0a 24 6e 65 78 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 75 >.'.',.);..$next.=.function.().u
8b0a0 73 65 20 28 24 6c 69 63 65 6e 73 65 2c 20 24 74 6f 6b 65 6e 73 29 20 7b 0a 73 74 61 74 69 63 20 se.($license,.$tokens).{.static.
8b0c0 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 69 66 20 28 24 6f 66 66 73 65 74 20 3e 3d 20 73 74 72 $offset.=.0;..if.($offset.>=.str
8b0e0 6c 65 6e 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a len($license)).{.return.null;.}.
8b100 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 74 .foreach.($tokens.as.$name.=>.$t
8b120 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 20 3d 20 70 72 65 67 5f oken).{.if.(false.===.$r.=.preg_
8b140 6d 61 74 63 68 28 27 7b 27 20 2e 20 24 74 6f 6b 65 6e 20 2e 20 27 7d 27 2c 20 24 6c 69 63 65 6e match('{'...$token...'}',.$licen
8b160 73 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 52 se,.$matches,.PREG_OFFSET_CAPTUR
8b180 45 2c 20 24 6f 66 66 73 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d E,.$offset)).{.throw.new.\Runtim
8b1a0 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 74 74 65 72 6e 20 66 6f 72 20 74 6f 6b 65 6e 20 25 73 eException('Pattern.for.token.%s
8b1c0 20 66 61 69 6c 65 64 20 28 72 65 67 65 78 20 65 72 72 6f 72 29 2e 27 2c 20 24 6e 61 6d 65 29 3b .failed.(regex.error).',.$name);
8b1e0 0a 7d 0a 69 66 20 28 24 72 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 .}.if.($r.===.0).{.continue;.}.i
8b200 66 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 5b 31 5d 20 21 3d 3d 20 24 6f 66 66 73 65 74 29 20 7b f.($matches[0][1].!==.$offset).{
8b220 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 6f 66 66 73 65 74 20 2b 3d 20 73 74 72 6c 65 6e 28 24 .continue;.}.$offset.+=.strlen($
8b240 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6e matches[0][0]);..return.array($n
8b260 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e ame,.$matches[0][0]);.}..throw.n
8b280 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 74 20 6c 65 61 73 74 20 74 ew.\RuntimeException('At.least.t
8b2a0 68 65 20 6c 61 73 74 20 70 61 74 74 65 72 6e 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 2c 20 he.last.pattern.needs.to.match,.
8b2c0 62 75 74 20 69 74 20 64 69 64 20 6e 6f 74 20 28 64 6f 74 2d 6d 61 74 63 68 2d 61 6c 6c 20 69 73 but.it.did.not.(dot-match-all.is
8b2e0 20 6d 69 73 73 69 6e 67 3f 29 2e 27 29 3b 0a 7d 3b 0a 0a 24 6f 70 65 6e 20 3d 20 30 3b 0a 24 72 .missing?).');.};..$open.=.0;.$r
8b300 65 71 75 69 72 65 20 3d 20 31 3b 0a 24 6c 61 73 74 6f 70 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 equire.=.1;.$lastop.=.null;..whi
8b320 6c 65 20 28 6c 69 73 74 28 24 74 6f 6b 65 6e 2c 20 24 73 74 72 69 6e 67 29 20 3d 20 24 6e 65 78 le.(list($token,.$string).=.$nex
8b340 74 28 29 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 63 61 73 65 20 27 70 t()).{.switch.($token).{.case.'p
8b360 6f 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 7c 7c 20 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 65 o':.if.($open.||.!$require).{.re
8b380 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a turn.false;.}.$open.=.1;.break;.
8b3a0 63 61 73 65 20 27 70 63 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 21 3d 3d 20 31 20 7c 7c 20 24 72 case.'pc':.if.($open.!==.1.||.$r
8b3c0 65 71 75 69 72 65 20 7c 7c 20 21 24 6c 61 73 74 6f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c equire.||.!$lastop).{.return.fal
8b3e0 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 32 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 70 se;.}.$open.=.2;.break;.case.'op
8b400 27 3a 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6f 70 65 6e 29 20 7b 0a 72 65 74 ':.if.($require.||.!$open).{.ret
8b420 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6c 61 73 74 6f 70 20 7c 7c 20 24 6c 61 73 74 6f 70 20 urn.false;.}.$lastop.||.$lastop.
8b440 3d 20 24 73 74 72 69 6e 67 3b 0a 69 66 20 28 24 6c 61 73 74 6f 70 20 21 3d 3d 20 24 73 74 72 69 =.$string;.if.($lastop.!==.$stri
8b460 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 3d ng).{.return.false;.}.$require.=
8b480 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6c 69 78 27 3a 0a 69 66 20 28 24 6f 70 65 6e .1;.break;.case.'lix':.if.($open
8b4a0 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 67 6f 74 6f 20 6c 69 72 3b 0a 63 61 ).{.return.false;.}.goto.lir;.ca
8b4c0 73 65 20 27 6c 69 63 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 63 se.'lic':.if.(!$this->isValidLic
8b4e0 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 enseIdentifier($string)).{.retur
8b500 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 20 63 61 73 65 20 27 6c 69 72 27 3a 0a 6c 69 72 3a 0a 69 66 n.false;.}...case.'lir':.lir:.if
8b520 20 28 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 .(!$require).{.return.false;.}.$
8b540 72 65 71 75 69 72 65 20 3d 20 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 77 73 27 3a 0a 62 require.=.0;.break;.case.'ws':.b
8b560 72 65 61 6b 3b 0a 63 61 73 65 20 27 5f 27 3a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 64 65 reak;.case.'_':.return.false;.de
8b580 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 fault:.throw.new.\RuntimeExcepti
8b5a0 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 70 61 72 73 65 64 20 74 6f 6b 65 6e 3a 20 25 73 2e 27 on(sprintf('Unparsed.token:.%s.'
8b5c0 2c 20 70 72 69 6e 74 5f 72 28 24 74 6f 6b 65 6e 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 7d 0a 0a ,.print_r($token,.true)));.}.}..
8b5e0 72 65 74 75 72 6e 20 21 28 24 6f 70 65 6e 20 25 20 32 20 7c 7c 20 24 72 65 71 75 69 72 65 29 3b return.!($open.%.2.||.$require);
8b600 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.
8b620 43 6f 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 Composer\Util;.....class.NoProxy
8b640 50 61 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 Pattern.{....protected.$rules.=.
8b660 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 5f 5f 63 array();.....public.function.__c
8b680 6f 6e 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 onstruct($pattern).{.$this->rule
8b6a0 73 20 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 s.=.preg_split("/[\s,]+/",.$patt
8b6c0 65 72 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 ern);.}.........public.function.
8b6e0 74 65 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 test($url).{.$host.=.parse_url($
8b700 75 72 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 url,.PHP_URL_HOST);.$port.=.pars
8b720 65 5f 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 e_url($url,.PHP_URL_PORT);..if.(
8b740 65 6d 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 empty($port)).{.switch.(parse_ur
8b760 6c 28 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 l($url,.PHP_URL_SCHEME)).{.case.
8b780 27 68 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 'http':.$port.=.80;.break;.case.
8b7a0 27 68 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 'https':.$port.=.443;.break;.}.}
8b7c0 0a 0a 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 ..foreach.($this->rules.as.$rule
8b7e0 29 20 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 ).{.if.($rule.==.'*').{.return.t
8b800 72 75 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 rue;.}..$match.=.false;..list($r
8b820 75 6c 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 uleHost).=.explode(':',.$rule);.
8b840 6c 69 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 list($base).=.explode('/',.$rule
8b860 48 6f 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 Host);..if.(filter_var($base,.FI
8b880 4c 54 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 LTER_VALIDATE_IP,.FILTER_FLAG_IP
8b8a0 56 34 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 V4)).{...if.(!isset($ip)).{.$ip.
8b8c0 3d 20 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 =.gethostbyname($host);.}..if.(s
8b8e0 74 72 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 trpos($ruleHost,.'/').===.false)
8b900 20 7b 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 .{.$match.=.$ip.===.$ruleHost;.}
8b920 20 65 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 .else.{.....if.($ip.===.$host).{
8b940 0a 24 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 .$match.=.false;.}.else.{...$mat
8b960 63 68 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 ch.=.self::inCIDRBlock($ruleHost
8b980 2c 20 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 ,.$ip);.}.}.}.else.{...$haystack
8b9a0 20 3d 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 .=.'.'...trim($host,.'.')...'.';
8b9c0 0a 24 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 .$needle.=.'.'..trim($ruleHost,.
8b9e0 27 2e 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 '.')..'.';.$match.=.stripos(strr
8ba00 65 76 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 ev($haystack),.strrev($needle)).
8ba20 3d 3d 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 ===.0;.}....if.($match.&&.strpos
8ba40 28 24 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 ($rule,.':').!==.false).{.list(,
8ba60 20 24 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 .$rulePort).=.explode(':',.$rule
8ba80 29 3b 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 );.if.(!empty($rulePort).&&.$por
8baa0 74 20 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 t.!=.$rulePort).{.$match.=.false
8bac0 3b 0a 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 ;.}.}..if.($match).{.return.true
8bae0 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ;.}.}..return.false;.}..........
8bb00 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 69 6e 43 49 44 52 ..private.static.function.inCIDR
8bb20 42 6c 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 Block($cidr,.$ip).{...list($base
8bb40 2c 20 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 ,.$bits).=.explode('/',.$cidr);.
8bb60 0a 0a 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 ...list($a,.$b,.$c,.$d).=.explod
8bb80 65 28 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 e('.',.$base);....$i.=.($a.<<.24
8bba0 29 20 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 ).+.($b.<<.16).+.($c.<<.8).+.$d;
8bbc0 0a 24 6d 61 73 6b 20 3d 20 24 62 69 74 73 20 3d 3d 20 30 20 3f 20 30 20 3a 20 28 7e 30 20 3c 3c .$mask.=.$bits.==.0.?.0.:.(~0.<<
8bbe0 20 28 33 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 .(32.-.$bits));....$low.=.$i.&.$
8bc00 6d 61 73 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 mask;....$high.=.$i.|.(~$mask.&.
8bc20 30 78 46 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 0xFFFFFFFF);....list($a,.$b,.$c,
8bc40 20 24 64 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 .$d).=.explode('.',.$ip);....$ch
8bc60 65 63 6b 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 eck.=.($a.<<.24).+.($b.<<.16).+.
8bc80 28 24 63 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 ($c.<<.8).+.$d;......return.$che
8bca0 63 6b 20 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 ck.>=.$low.&&.$check.<=.$high;.}
8bcc0 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
8bce0 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 mposer\Util;..use.Composer\Confi
8bd00 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a g;.use.Composer\IO\IOInterface;.
8bd20 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 0a 7b 0a 63 6f 6e 73 74 20 4d 41 58 5f 51 54 59 5f 41 .....class.Svn.{.const.MAX_QTY_A
8bd40 55 54 48 5f 54 52 49 45 53 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 72 UTH_TRIES.=.5;.....protected.$cr
8bd60 65 64 65 6e 74 69 61 6c 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 41 75 74 edentials;.....protected.$hasAut
8bd80 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 h;.....protected.$io;.....protec
8bda0 74 65 64 20 24 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 43 72 ted.$url;.....protected.$cacheCr
8bdc0 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 edentials.=.true;.....protected.
8bde0 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 71 74 79 41 75 74 68 $process;.....protected.$qtyAuth
8be00 54 72 69 65 73 20 3d 20 30 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 Tries.=.0;.....protected.$config
8be20 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
8be40 72 75 63 74 28 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 ruct($url,.IOInterface.$io,.Conf
8be60 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 70 72 6f ig.$config,.ProcessExecutor.$pro
8be80 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
8bea0 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 63 6f 6e 66 69 67 ;.$this->io.=.$io;.$this->config
8bec0 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 .=.$config;.$this->process.=.$pr
8bee0 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a ocess.?:.new.ProcessExecutor;.}.
8bf00 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 6c 65 61 6e 45 6e 76 .public.static.function.cleanEnv
8bf20 28 29 0a 7b 0a 0a 20 70 75 74 65 6e 76 28 22 44 59 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 ().{...putenv("DYLD_LIBRARY_PATH
8bf40 22 29 3b 0a 75 6e 73 65 74 28 24 5f 53 45 52 56 45 52 5b 27 44 59 4c 44 5f 4c 49 42 52 41 52 59 ");.unset($_SERVER['DYLD_LIBRARY
8bf60 5f 50 41 54 48 27 5d 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 _PATH']);.}................publi
8bf80 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 c.function.execute($command,.$ur
8bfa0 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 76 l,.$cwd.=.null,.$path.=.null,.$v
8bfc0 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 73 76 6e 43 6f 6d 6d 61 6e 64 20 3d 20 erbose.=.false).{.$svnCommand.=.
8bfe0 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c $this->getCommand($command,.$url
8c000 2c 20 24 70 61 74 68 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 69 6f 20 3d 20 ,.$path);.$output.=.null;.$io.=.
8c020 24 74 68 69 73 2d 3e 69 6f 3b 0a 24 68 61 6e 64 6c 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 $this->io;.$handler.=.function.(
8c040 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 2c 20 24 $type,.$buffer).use.(&$output,.$
8c060 69 6f 2c 20 24 76 65 72 62 6f 73 65 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 6f io,.$verbose).{.if.($type.!==.'o
8c080 75 74 27 29 20 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 ut').{.return;.}.if.('Redirectin
8c0a0 67 20 74 6f 20 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 g.to.URL.'.===.substr($buffer,.0
8c0c0 2c 20 31 39 29 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 ,.19)).{.return;.}.$output..=.$b
8c0e0 75 66 66 65 72 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 uffer;.if.($verbose).{.$io->writ
8c100 65 45 72 72 6f 72 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 3b 0a 24 73 74 eError($buffer,.false);.}.};.$st
8c120 61 74 75 73 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 65 28 24 atus.=.$this->process->execute($
8c140 73 76 6e 43 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 2c 20 24 63 77 64 29 3b 0a 69 66 20 svnCommand,.$handler,.$cwd);.if.
8c160 28 30 20 3d 3d 3d 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 (0.===.$status).{.return.$output
8c180 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 ;.}..if.(empty($output)).{.$outp
8c1a0 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 72 4f 75 74 ut.=.$this->process->getErrorOut
8c1c0 70 75 74 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f put();.}....if.(false.===.stripo
8c1e0 73 28 24 6f 75 74 70 75 74 2c 20 27 43 6f 75 6c 64 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 61 s($output,.'Could.not.authentica
8c200 74 65 20 74 6f 20 73 65 72 76 65 72 3a 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 te.to.server:').&&.false.===.str
8c220 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 69 ipos($output,.'authorization.fai
8c240 6c 65 64 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 led').&&.false.===.stripos($outp
8c260 75 74 2c 20 27 73 76 6e 3a 20 45 31 37 30 30 30 31 3a 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d ut,.'svn:.E170001:').&&.false.==
8c280 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 45 32 31 35 30 30 34 =.stripos($output,.'svn:.E215004
8c2a0 3a 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 :')).{.throw.new.\RuntimeExcepti
8c2c0 6f 6e 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 on($output);.}..if.(!$this->hasA
8c2e0 75 74 68 28 29 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 7d uth()).{.$this->doAuthDance();.}
8c300 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 71 74 79 41 75 74 68 54 72 69 65 73 2b 2b 20 3c 20 ....if.($this->qtyAuthTries++.<.
8c320 73 65 6c 66 3a 3a 4d 41 58 5f 51 54 59 5f 41 55 54 48 5f 54 52 49 45 53 29 20 7b 0a 0a 20 72 65 self::MAX_QTY_AUTH_TRIES).{...re
8c340 74 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 turn.$this->execute($command,.$u
8c360 72 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 rl,.$cwd,.$path,.$verbose);.}..t
8c380 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 77 72 6f hrow.new.\RuntimeException(.'wro
8c3a0 6e 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 ng.credentials.provided.('.$outp
8c3c0 75 74 2e 27 29 27 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 ut.')'.);.}.....public.function.
8c3e0 73 65 74 43 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 28 24 63 61 63 68 65 43 72 65 64 65 6e setCacheCredentials($cacheCreden
8c400 74 69 61 6c 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 tials).{.$this->cacheCredentials
8c420 20 3d 20 24 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 .=.$cacheCredentials;.}........p
8c440 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 75 74 68 44 61 6e 63 65 28 29 0a rotected.function.doAuthDance().
8c460 7b 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 63 74 69 76 {...if.(!$this->io->isInteractiv
8c480 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 65 70 74 69 e()).{.throw.new.\RuntimeExcepti
8c4a0 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 69 63 61 74 on(.'can.not.ask.for.authenticat
8c4c0 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 27 0a 29 3b 0a ion.in.non.interactive.mode'.);.
8c4e0 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 54 68 65 20 53 75 }..$this->io->writeError("The.Su
8c500 62 76 65 72 73 69 6f 6e 20 73 65 72 76 65 72 20 28 7b 24 74 68 69 73 2d 3e 75 72 6c 7d 29 20 72 bversion.server.({$this->url}).r
8c520 65 71 75 65 73 74 65 64 20 63 72 65 64 65 6e 74 69 61 6c 73 3a 22 29 3b 0a 0a 24 74 68 69 73 2d equested.credentials:");..$this-
8c540 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 >hasAuth.=.true;.$this->credenti
8c560 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b als['username'].=.$this->io->ask
8c580 28 22 55 73 65 72 6e 61 6d 65 3a 20 22 29 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 ("Username:.");.$this->credentia
8c5a0 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 ls['password'].=.$this->io->askA
8c5c0 6e 64 48 69 64 65 41 6e 73 77 65 72 28 22 50 61 73 73 77 6f 72 64 3a 20 22 29 3b 0a 0a 24 74 68 ndHideAnswer("Password:.");..$th
8c5e0 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 69 6f is->cacheCredentials.=.$this->io
8c600 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 22 53 68 6f 75 6c 64 20 53 75 62 76 65 72 ->askConfirmation("Should.Subver
8c620 73 69 6f 6e 20 63 61 63 68 65 20 74 68 65 73 65 20 63 72 65 64 65 6e 74 69 61 6c 73 3f 20 28 79 sion.cache.these.credentials?.(y
8c640 65 73 2f 6e 6f 29 20 22 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a es/no).",.true);..return.$this;.
8c660 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 }...........protected.function.g
8c680 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6d 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 etCommand($cmd,.$url,.$path.=.nu
8c6a0 6c 6c 29 0a 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 25 73 20 25 73 ll).{.$cmd.=.sprintf('%s.%s%s.%s
8c6c0 27 2c 0a 24 63 6d 64 2c 0a 27 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 27 2c 0a 24 ',.$cmd,.'--non-interactive.',.$
8c6e0 74 68 69 73 2d 3e 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 2c 0a 50 72 6f this->getCredentialString(),.Pro
8c700 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 0a 29 3b 0a 0a 69 cessExecutor::escape($url).);..i
8c720 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 50 72 6f 63 65 73 f.($path).{.$cmd..=.'.'...Proces
8c740 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 sExecutor::escape($path);.}..ret
8c760 75 72 6e 20 24 63 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 urn.$cmd;.}.........protected.fu
8c780 6e 63 74 69 6f 6e 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 nction.getCredentialString().{.i
8c7a0 66 20 28 21 24 74 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 f.(!$this->hasAuth()).{.return.'
8c7c0 27 3b 0a 7d 0a 0a 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 ';.}..return.sprintf(.'.%s--user
8c7e0 6e 61 6d 65 20 25 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 name.%s.--password.%s.',.$this->
8c800 67 65 74 41 75 74 68 43 61 63 68 65 28 29 2c 0a 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a getAuthCache(),.ProcessExecutor:
8c820 3a 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 6e 61 6d 65 28 29 29 2c 0a 50 :escape($this->getUsername()),.P
8c840 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e 67 65 rocessExecutor::escape($this->ge
8c860 74 50 61 73 73 77 6f 72 64 28 29 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 tPassword()).);.}........protect
8c880 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 73 77 6f 72 64 28 29 0a 7b 0a 69 66 20 28 ed.function.getPassword().{.if.(
8c8a0 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 0a 74 $this->credentials.===.null).{.t
8c8c0 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 76 6e hrow.new.\LogicException("No.svn
8c8e0 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 69 73 73 .auth.detected.");.}..return.iss
8c900 65 74 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 et($this->credentials['password'
8c920 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 ]).?.$this->credentials['passwor
8c940 64 27 5d 20 3a 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e d'].:.'';.}........protected.fun
8c960 63 74 69 6f 6e 20 67 65 74 55 73 65 72 6e 61 6d 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d ction.getUsername().{.if.($this-
8c980 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f 77 20 6e >credentials.===.null).{.throw.n
8c9a0 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 61 75 74 68 20 ew.\LogicException("No.svn.auth.
8c9c0 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 detected.");.}..return.$this->cr
8c9e0 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 edentials['username'];.}.......p
8ca00 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 28 29 0a 7b 0a 69 66 rotected.function.hasAuth().{.if
8ca20 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 29 20 7b 0a 72 65 74 .(null.!==.$this->hasAuth).{.ret
8ca40 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 urn.$this->hasAuth;.}..if.(false
8ca60 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 75 74 68 46 72 6f 6d 43 6f 6e 66 69 67 .===.$this->createAuthFromConfig
8ca80 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 75 74 68 46 72 6f 6d 55 72 6c 28 29 ()).{.$this->createAuthFromUrl()
8caa0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 3b 0a 7d 0a 0a 0a ;.}..return.$this->hasAuth;.}...
8cac0 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 41 75 74 68 43 61 ....protected.function.getAuthCa
8cae0 63 68 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 che().{.return.$this->cacheCrede
8cb00 6e 74 69 61 6c 73 20 3f 20 27 27 20 3a 20 27 2d 2d 6e 6f 2d 61 75 74 68 2d 63 61 63 68 65 20 27 ntials.?.''.:.'--no-auth-cache.'
8cb20 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 63 72 65 61 74 ;.}.......private.function.creat
8cb40 65 41 75 74 68 46 72 6f 6d 43 6f 6e 66 69 67 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e eAuthFromConfig().{.if.(!$this->
8cb60 63 6f 6e 66 69 67 2d 3e 68 61 73 28 27 68 74 74 70 2d 62 61 73 69 63 27 29 29 20 7b 0a 72 65 74 config->has('http-basic')).{.ret
8cb80 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 urn.$this->hasAuth.=.false;.}..$
8cba0 61 75 74 68 43 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 authConfig.=.$this->config->get(
8cbc0 27 68 74 74 70 2d 62 61 73 69 63 27 29 3b 0a 0a 24 68 6f 73 74 20 3d 20 70 61 72 73 65 5f 75 72 'http-basic');..$host.=.parse_ur
8cbe0 6c 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 69 66 20 l($this->url,.PHP_URL_HOST);.if.
8cc00 28 69 73 73 65 74 28 24 61 75 74 68 43 6f 6e 66 69 67 5b 24 68 6f 73 74 5d 29 29 20 7b 0a 24 74 (isset($authConfig[$host])).{.$t
8cc20 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 20 3d 20 24 his->credentials['username'].=.$
8cc40 61 75 74 68 43 6f 6e 66 69 67 5b 24 68 6f 73 74 5d 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 24 authConfig[$host]['username'];.$
8cc60 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 this->credentials['password'].=.
8cc80 24 61 75 74 68 43 6f 6e 66 69 67 5b 24 68 6f 73 74 5d 5b 27 70 61 73 73 77 6f 72 64 27 5d 3b 0a $authConfig[$host]['password'];.
8cca0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 7d .return.$this->hasAuth.=.true;.}
8ccc0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 66 61 6c 73 65 3b ..return.$this->hasAuth.=.false;
8cce0 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 63 72 65 61 74 65 .}.......private.function.create
8cd00 41 75 74 68 46 72 6f 6d 55 72 6c 28 29 0a 7b 0a 24 75 72 69 20 3d 20 70 61 72 73 65 5f 75 72 6c AuthFromUrl().{.$uri.=.parse_url
8cd20 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 69 5b 27 75 73 ($this->url);.if.(empty($uri['us
8cd40 65 72 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d er'])).{.return.$this->hasAuth.=
8cd60 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 .false;.}..$this->credentials['u
8cd80 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 75 72 69 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 21 65 sername'].=.$uri['user'];.if.(!e
8cda0 6d 70 74 79 28 24 75 72 69 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 72 65 mpty($uri['pass'])).{.$this->cre
8cdc0 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 75 72 69 5b 27 70 61 73 dentials['password'].=.$uri['pas
8cde0 73 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 s'];.}..return.$this->hasAuth.=.
8ce00 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 0a 6e 61 6d 65 73 true;.}.}.<?php............names
8ce20 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 50 61 63 pace.Composer;..use.Composer\Pac
8ce40 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 kage\RootPackageInterface;.use.C
8ce60 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b 0a 75 73 65 20 43 6f 6d 70 omposer\Package\Locker;.use.Comp
8ce80 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 oser\Repository\RepositoryManage
8cea0 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
8cec0 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 50 6c 75 67 lationManager;.use.Composer\Plug
8cee0 69 6e 5c 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 in\PluginManager;.use.Composer\D
8cf00 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 20 43 ownloader\DownloadManager;.use.C
8cf20 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
8cf40 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 patcher;.use.Composer\Autoload\A
8cf60 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f utoloadGenerator;.......class.Co
8cf80 6d 70 6f 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 66 31 30 63 37 31 mposer.{.const.VERSION.=.'f10c71
8cfa0 34 37 35 31 36 37 61 34 36 36 31 32 32 35 62 31 34 35 36 30 63 61 30 61 34 30 30 64 37 33 30 38 475167a4661225b14560ca0a400d7308
8cfc0 32 39 27 3b 0a 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f 41 4c 49 41 53 5f 56 45 52 53 49 4f 4e 20 29';.const.BRANCH_ALIAS_VERSION.
8cfe0 3d 20 27 31 2e 30 2d 64 65 76 27 3b 0a 63 6f 6e 73 74 20 52 45 4c 45 41 53 45 5f 44 41 54 45 20 =.'1.0-dev';.const.RELEASE_DATE.
8d000 3d 20 27 32 30 31 35 2d 30 33 2d 32 39 20 31 34 3a 33 37 3a 34 32 27 3b 0a 0a 0a 0a 0a 70 72 69 =.'2015-03-29.14:37:42';.....pri
8d020 76 61 74 65 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b vate.$package;.....private.$lock
8d040 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 er;.....private.$repositoryManag
8d060 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 er;.....private.$downloadManager
8d080 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 ;.....private.$installationManag
8d0a0 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a er;.....private.$pluginManager;.
8d0c0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ....private.$config;.....private
8d0e0 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 .$eventDispatcher;.....private.$
8d100 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 autoloadGenerator;......public.f
8d120 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 63 6b 61 67 65 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e unction.setPackage(RootPackageIn
8d140 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 terface.$package).{.$this->packa
8d160 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ge.=.$package;.}.....public.func
8d180 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
8d1a0 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ->package;.}.....public.function
8d1c0 20 73 65 74 43 6f 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 .setConfig(Config.$config).{.$th
8d1e0 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c is->config.=.$config;.}.....publ
8d200 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e ic.function.getConfig().{.return
8d220 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$this->config;.}.....public.fun
8d240 63 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 65 72 28 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 29 0a ction.setLocker(Locker.$locker).
8d260 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a {.$this->locker.=.$locker;.}....
8d280 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 72 28 29 0a 7b 0a 72 .public.function.getLocker().{.r
8d2a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 eturn.$this->locker;.}.....publi
8d2c0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 c.function.setRepositoryManager(
8d2e0 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 RepositoryManager.$manager).{.$t
8d300 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 his->repositoryManager.=.$manage
8d320 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f r;.}.....public.function.getRepo
8d340 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e sitoryManager().{.return.$this->
8d360 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 repositoryManager;.}.....public.
8d380 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 44 6f 77 6e function.setDownloadManager(Down
8d3a0 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 loadManager.$manager).{.$this->d
8d3c0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a ownloadManager.=.$manager;.}....
8d3e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 .public.function.getDownloadMana
8d400 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 ger().{.return.$this->downloadMa
8d420 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 nager;.}.....public.function.set
8d440 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 49 6e 73 74 61 6c 6c 61 74 69 6f 6e InstallationManager(Installation
8d460 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 Manager.$manager).{.$this->insta
8d480 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a llationManager.=.$manager;.}....
8d4a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e .public.function.getInstallation
8d4c0 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c Manager().{.return.$this->instal
8d4e0 6c 61 74 69 6f 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 lationManager;.}.....public.func
8d500 74 69 6f 6e 20 73 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 50 6c 75 67 69 6e 4d 61 6e 61 tion.setPluginManager(PluginMana
8d520 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 4d 61 6e ger.$manager).{.$this->pluginMan
8d540 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 20 66 75 ager.=.$manager;.}.....public.fu
8d560 6e 63 74 69 6f 6e 20 67 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 nction.getPluginManager().{.retu
8d580 72 6e 20 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 rn.$this->pluginManager;.}.....p
8d5a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 ublic.function.setEventDispatche
8d5c0 72 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 68 r(EventDispatcher.$eventDispatch
8d5e0 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 24 er).{.$this->eventDispatcher.=.$
8d600 65 76 65 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 eventDispatcher;.}.....public.fu
8d620 6e 63 74 69 6f 6e 20 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 0a 7b 0a 72 65 nction.getEventDispatcher().{.re
8d640 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a turn.$this->eventDispatcher;.}..
8d660 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 ...public.function.setAutoloadGe
8d680 6e 65 72 61 74 6f 72 28 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c nerator(AutoloadGenerator.$autol
8d6a0 6f 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 oadGenerator).{.$this->autoloadG
8d6c0 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d enerator.=.$autoloadGenerator;.}
8d6e0 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 6f 6c 6f 61 64 .....public.function.getAutoload
8d700 47 65 6e 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 61 75 74 6f Generator().{.return.$this->auto
8d720 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a loadGenerator;.}.}.<?php........
8d740 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a ....namespace.Composer\Json;....
8d760 0a 63 6c 61 73 73 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 .class.JsonManipulator.{.private
8d780 20 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 3b 0a 70 72 69 76 61 74 65 .static.$RECURSE_BLOCKS;.private
8d7a0 20 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 5f 41 52 52 41 59 53 3b 0a 70 72 69 76 61 74 65 .static.$RECURSE_ARRAYS;.private
8d7c0 20 73 74 61 74 69 63 20 24 4a 53 4f 4e 5f 56 41 4c 55 45 3b 0a 70 72 69 76 61 74 65 20 73 74 61 .static.$JSON_VALUE;.private.sta
8d7e0 74 69 63 20 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 tic.$JSON_STRING;..private.$cont
8d800 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 6e 65 77 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 ents;.private.$newline;.private.
8d820 24 69 6e 64 65 6e 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 $indent;..public.function.__cons
8d840 74 72 75 63 74 28 24 63 6f 6e 74 65 6e 74 73 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 52 truct($contents).{.if.(!self::$R
8d860 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 29 20 7b 0a 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f ECURSE_BLOCKS).{.self::$RECURSE_
8d880 42 4c 4f 43 4b 53 20 3d 20 27 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c BLOCKS.=.'(?:[^{}]*|\{(?:[^{}]*|
8d8a0 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 5b 5e 7b 7d 5d 2a \{(?:[^{}]*|\{(?:[^{}]*|\{[^{}]*
8d8c0 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 27 3b 0a 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 \})*\})*\})*\})*';.self::$RECURS
8d8e0 45 5f 41 52 52 41 59 53 20 3d 20 27 28 3f 3a 5b 5e 5c 5d 5d 2a 7c 5c 5b 28 3f 3a 5b 5e 5c 5d 5d E_ARRAYS.=.'(?:[^\]]*|\[(?:[^\]]
8d900 2a 7c 5c 5b 28 3f 3a 5b 5e 5c 5d 5d 2a 7c 5c 5b 28 3f 3a 5b 5e 5c 5d 5d 2a 7c 5c 5b 5b 5e 5c 5d *|\[(?:[^\]]*|\[(?:[^\]]*|\[[^\]
8d920 5d 2a 5c 5d 29 2a 5c 5d 29 2a 5c 5d 29 2a 5c 5d 7c 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 ]*\])*\])*\])*\]|'.self::$RECURS
8d940 45 5f 42 4c 4f 43 4b 53 2e 27 29 2a 27 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e E_BLOCKS.')*';.self::$JSON_STRIN
8d960 47 20 3d 20 27 22 28 3f 3a 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 G.=.'"(?:[^\0-\x09\x0a-\x1f\\\\"
8d980 5d 2b 7c 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 2d ]+|\\\\["bfnrt/\\\\]|\\\\u[a-fA-
8d9a0 46 30 2d 39 5d 7b 34 7d 29 2a 22 27 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 20 F0-9]{4})*"';.self::$JSON_VALUE.
8d9c0 3d 20 27 28 3f 3a 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 27 2e =.'(?:[0-9.]+|null|true|false|'.
8d9e0 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 7c 5c 5b 27 2e 73 65 6c 66 3a 3a 24 self::$JSON_STRING.'|\['.self::$
8da00 52 45 43 55 52 53 45 5f 41 52 52 41 59 53 2e 27 5c 5d 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 45 RECURSE_ARRAYS.'\]|\{'.self::$RE
8da20 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 73 CURSE_BLOCKS.'\})';.}..$contents
8da40 20 3d 20 74 72 69 6d 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 .=.trim($contents);.if.($content
8da60 73 20 3d 3d 3d 20 27 27 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 27 7b 7d 27 3b 0a 7d 0a s.===.'').{.$contents.=.'{}';.}.
8da80 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5e 5c 7b 28 2e 2a 29 5c if.(!$this->pregMatch('#^\{(.*)\
8daa0 7d 24 23 73 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c }$#s',.$contents)).{.throw.new.\
8dac0 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 6a 73 InvalidArgumentException('The.js
8dae0 6f 6e 20 66 69 6c 65 20 6d 75 73 74 20 62 65 20 61 6e 20 6f 62 6a 65 63 74 20 28 7b 7d 29 27 29 on.file.must.be.an.object.({})')
8db00 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 ;.}.$this->newline.=.false.!==.s
8db20 74 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 22 5c 72 5c 6e 22 29 20 3f 20 22 5c 72 5c 6e trpos($contents,."\r\n").?."\r\n
8db40 22 20 3a 20 22 5c 6e 22 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 63 6f 6e ".:."\n";.$this->contents.=.$con
8db60 74 65 6e 74 73 20 3d 3d 3d 20 27 7b 7d 27 20 3f 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 tents.===.'{}'.?.'{'...$this->ne
8db80 77 6c 69 6e 65 20 2e 20 27 7d 27 20 3a 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 24 74 68 69 73 2d 3e wline...'}'.:.$contents;.$this->
8dba0 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e detectIndenting();.}..public.fun
8dbc0 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getContents().{.return.$th
8dbe0 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 7d is->contents...$this->newline;.}
8dc00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c ..public.function.addLink($type,
8dc20 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 73 6f 72 74 50 61 63 .$package,.$constraint,.$sortPac
8dc40 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e kages.=.false).{.$decoded.=.Json
8dc60 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 File::parseJson($this->contents)
8dc80 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 74 79 70 65 5d 29 ;....if.(!isset($decoded[$type])
8dca0 29 20 7b 0a 72 65 74 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 ).{.return.$this->addMainKey($ty
8dcc0 70 65 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e pe,.array($package.=>.$constrain
8dce0 74 29 29 3b 0a 7d 0a 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 t));.}..$regex.=.'{^(\s*\{\s*(?:
8dd00 27 2e 73 65 6c 66 3a 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 '.self::$JSON_STRING.'\s*:\s*'.s
8dd20 65 6c 66 3a 3a 24 4a 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 elf::$JSON_VALUE.'\s*,\s*)*?)'..
8dd40 27 28 27 2e 70 72 65 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 '('.preg_quote(JsonFile::encode(
8dd60 24 74 79 70 65 29 29 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 $type)).'\s*:\s*)('.self::$JSON_
8dd80 56 41 4c 55 45 2e 27 29 28 2e 2a 29 7d 73 27 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 VALUE.')(.*)}s';.if.(!$this->pre
8dda0 67 4d 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 2c 20 gMatch($regex,.$this->contents,.
8ddc0 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 0a 7d 0a 0a 24 6c $matches)).{.return.false;.}..$l
8dde0 69 6e 6b 73 20 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 inks.=.$matches[3];..if.(isset($
8de00 64 65 63 6f 64 65 64 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 0a 20 24 decoded[$type][$package])).{...$
8de20 70 61 63 6b 61 67 65 52 65 67 65 78 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 packageRegex.=.str_replace('/',.
8de40 27 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 70 61 63 6b 61 67 65 29 29 3b '\\\\?/',.preg_quote($package));
8de60 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 22 27 2e 24 70 ...$links.=.preg_replace('{"'.$p
8de80 61 63 6b 61 67 65 52 65 67 65 78 2e 27 22 28 5c 73 2a 3a 5c 73 2a 29 27 2e 73 65 6c 66 3a 3a 24 ackageRegex.'"(\s*:\s*)'.self::$
8dea0 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 7d 69 27 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 4a 73 JSON_STRING.'}i',.addcslashes(Js
8dec0 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 24 7b 31 7d 22 27 onFile::encode($package).'${1}"'
8dee0 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 22 27 2c 20 27 5c 5c 27 29 2c 20 24 6c 69 6e 6b 73 29 .$constraint.'"',.'\\'),.$links)
8df00 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 ;.}.else.{.if.($this->pregMatch(
8df20 27 23 5e 5c 73 2a 5c 7b 5c 73 2a 5c 53 2b 2e 2a 3f 28 5c 73 2a 5c 7d 5c 73 2a 29 24 23 73 27 2c '#^\s*\{\s*\S+.*?(\s*\}\s*)$#s',
8df40 20 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 .$links,.$match)).{...$links.=.p
8df60 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 7b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 reg_replace(.'{'.preg_quote($mat
8df80 63 68 5b 31 5d 29 2e 27 24 7d 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 ch[1]).'$}',.addcslashes(','...$
8dfa0 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...
8dfc0 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
8dfe0 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 ($package).':.'.JsonFile::encode
8e000 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 ($constraint)...$match[1],.'\\')
8e020 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 ,.$links.);.}.else.{...$links.=.
8e040 27 7b 27 20 2e 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 '{'...$this->newline...$this->in
8e060 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a dent...$this->indent...JsonFile:
8e080 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a :encode($package).':.'.JsonFile:
8e0a0 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 :encode($constraint)...$this->ne
8e0c0 77 6c 69 6e 65 20 2e 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 27 7d 27 3b 0a 7d 0a 7d wline...$this->indent...'}';.}.}
8e0e0 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 29 20 7b 0a ..if.(true.===.$sortPackages).{.
8e100 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6c 69 6e $requirements.=.json_decode($lin
8e120 6b 73 2c 20 74 72 75 65 29 3b 0a 0a 6b 73 6f 72 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 ks,.true);..ksort($requirements)
8e140 3b 0a 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 72 65 71 75 69 72 ;.$links.=.$this->format($requir
8e160 65 6d 65 6e 74 73 29 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 ements);.}..$this->contents.=.$m
8e180 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
8e1a0 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;.}.
8e1c0 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($
8e1e0 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
8e200 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,
8e220 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
8e240 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.$
8e260 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
8e280 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
8e2a0 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).{
8e2c0 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
8e2e0 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
8e300 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
8e320 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(
8e340 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
8e360 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
8e380 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a ,.$value).{.$decoded.=.JsonFile:
8e3a0 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 :parseJson($this->contents);....
8e3c0 69 66 20 28 21 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 29 29 if.(!isset($decoded[$mainNode]))
8e3e0 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 .{.$this->addMainKey($mainNode,.
8e400 61 72 72 61 79 28 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e array($name.=>.$value));..return
8e420 20 74 72 75 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 69 .true;.}..$subName.=.null;.if.(i
8e440 6e 5f 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 61 72 72 61 79 28 27 63 6f 6e 66 69 67 n_array($mainNode,.array('config
8e460 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d ',.'repositories')).&&.false.!==
8e480 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d .strpos($name,.'.')).{.list($nam
8e4a0 65 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 6e 61 6d e,.$subName).=.explode('.',.$nam
8e4c0 65 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 7b 5e 28 5c 73 2a e,.2);.}....$nodeRegex.=.'{^(\s*
8e4e0 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 2e 27 5c 73 \{\s*(?:'.self::$JSON_STRING.'\s
8e500 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 2a 2c 5c 73 *:\s*'.self::$JSON_VALUE.'\s*,\s
8e520 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 69 6c 65 3a *)*?)'..'('.preg_quote(JsonFile:
8e540 3a 65 6e 63 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 29 29 2e 27 5c 73 2a 3a 5c 73 2a 5c 7b 29 28 :encode($mainNode)).'\s*:\s*\{)(
8e560 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 28 2e '.self::$RECURSE_BLOCKS.')(\})(.
8e580 2a 29 7d 73 27 3b 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 *)}s';.try.{.if.(!$this->pregMat
8e5a0 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,.
8e5c0 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 7d 20 63 61 74 $match)).{.return.false;.}.}.cat
8e5e0 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 66 20 28 ch.(\RuntimeException.$e).{.if.(
8e600 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 50 52 45 47 5f 42 41 43 4b 54 52 41 43 4b $e->getCode().===.PREG_BACKTRACK
8e620 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a _LIMIT_ERROR).{.return.false;.}.
8e640 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b throw.$e;.}..$children.=.$match[
8e660 33 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 3];....if.(!@json_decode('{'.$ch
8e680 69 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ildren.'}')).{.return.false;.}..
8e6a0 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 $that.=.$this;....if.($this->pre
8e6c0 67 4d 61 74 63 68 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 gMatch('{("'.preg_quote($name).'
8e6e0 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 45 2e 27 29 "\s*:\s*)('.self::$JSON_VALUE.')
8e700 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 29 20 7b 0a (,?)}',.$children,.$matches)).{.
8e720 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 6c 62 61 63 $children.=.preg_replace_callbac
8e740 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 5c 73 2a 3a k('{("'.preg_quote($name).'"\s*:
8e760 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 2c 3f 29 7d \s*)('.self::$JSON_VALUE.')(,?)}
8e780 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 24 6e 61 6d ',.function.($matches).use.($nam
8e7a0 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 7b 0a 69 66 e,.$subName,.$value,.$that).{.if
8e7c0 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 61 6c 20 3d .($subName.!==.null).{.$curVal.=
8e7e0 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 75 65 29 3b .json_decode($matches[2],.true);
8e800 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 0a 24 76 61 .$curVal[$subName].=.$value;.$va
8e820 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 74 63 68 65 lue.=.$curVal;.}..return.$matche
8e840 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 20 31 29 20 s[1]...$that->format($value,.1).
8e860 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 3b 0a 7d 20 ..$matches[3];.},.$children);.}.
8e880 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5b 5e 5c 73 5d elseif.($this->pregMatch('#[^\s]
8e8a0 28 5c 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 (\s*)$#',.$children,.$match)).{.
8e8c0 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 76 61 6c 75 65 20 if.($subName.!==.null).{.$value.
8e8e0 3d 20 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 =.array($subName.=>.$value);.}..
8e900 0a 20 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 ..$children.=.preg_replace(.'#'.
8e920 24 6d 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 $match[1].'$#',.addcslashes(','.
8e940 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 ..$this->newline...$this->indent
8e960 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 ...$this->indent...JsonFile::enc
8e980 6f 64 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 ode($name).':.'.$this->format($v
8e9a0 61 6c 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 alue,.1)...$match[1],.'\\'),.$ch
8e9c0 69 6c 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 ildren.);.}.else.{.if.($subName.
8e9e0 21 3d 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 !==.null).{.$value.=.array($subN
8ea00 61 6d 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 ame.=>.$value);.}....$children.=
8ea20 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 .$this->newline...$this->indent.
8ea40 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f ..$this->indent...JsonFile::enco
8ea60 64 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 de($name).':.'.$this->format($va
8ea80 6c 75 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 lue,.1)...$children;.}..$this->c
8eaa0 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 ontents.=.preg_replace($nodeRege
8eac0 78 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 27 24 7b 31 7d 24 7b 32 7d 27 2e 24 63 68 69 6c 64 x,.addcslashes('${1}${2}'.$child
8eae0 72 65 6e 2e 27 24 7b 34 7d 24 7b 35 7d 27 2c 20 27 5c 5c 27 29 2c 20 24 74 68 69 73 2d 3e 63 6f ren.'${4}${5}',.'\\'),.$this->co
8eb00 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 ntents);..return.true;.}..public
8eb20 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 .function.removeSubNode($mainNod
8eb40 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a e,.$name).{.$decoded.=.JsonFile:
8eb60 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 :parseJson($this->contents);....
8eb80 69 66 20 28 65 6d 70 74 79 28 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 29 29 20 if.(empty($decoded[$mainNode])).
8eba0 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d {.return.true;.}....$nodeRegex.=
8ebc0 20 27 7b 5e 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 .'{^(\s*\{\s*(?:'.self::$JSON_ST
8ebe0 52 49 4e 47 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 RING.'\s*:\s*'.self::$JSON_VALUE
8ec00 2e 27 5c 73 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 .'\s*,\s*)*?)'..'('.preg_quote(J
8ec20 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 29 29 2e 27 5c 73 2a sonFile::encode($mainNode)).'\s*
8ec40 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 4b 53 2e :\s*\{)('.self::$RECURSE_BLOCKS.
8ec60 27 29 28 5c 7d 29 28 2e 2a 29 7d 73 27 3b 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d ')(\})(.*)}s';.try.{.if.(!$this-
8ec80 3e 70 72 65 67 4d 61 74 63 68 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f >pregMatch($nodeRegex,.$this->co
8eca0 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ntents,.$match)).{.return.false;
8ecc0 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 .}.}.catch.(\RuntimeException.$e
8ece0 29 20 7b 0a 69 66 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 50 52 45 47 5f 42 ).{.if.($e->getCode().===.PREG_B
8ed00 41 43 4b 54 52 41 43 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 29 20 7b 0a 72 65 74 75 72 6e 20 66 ACKTRACK_LIMIT_ERROR).{.return.f
8ed20 61 6c 73 65 3b 0a 7d 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d alse;.}.throw.$e;.}..$children.=
8ed40 20 24 6d 61 74 63 68 5b 33 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 .$match[3];....if.(!@json_decode
8ed60 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 ('{'.$children.'}',.true)).{.ret
8ed80 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 69 urn.false;.}..$subName.=.null;.i
8eda0 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 61 72 72 61 79 28 27 63 6f f.(in_array($mainNode,.array('co
8edc0 6e 66 69 67 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 20 26 26 20 66 61 6c 73 65 nfig',.'repositories')).&&.false
8ede0 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 7b 0a 6c 69 73 74 28 .!==.strpos($name,.'.')).{.list(
8ee00 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 $name,.$subName).=.explode('.',.
8ee20 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 65 63 6f $name,.2);.}....if.(!isset($deco
8ee40 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 5b 24 6e 61 6d 65 5d 29 20 7c 7c 20 28 24 73 75 62 4e ded[$mainNode][$name]).||.($subN
8ee60 61 6d 65 20 26 26 20 21 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 ame.&&.!isset($decoded[$mainNode
8ee80 5d 5b 24 6e 61 6d 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 ][$name][$subName]))).{.return.t
8eea0 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 rue;.}....if.($this->pregMatch('
8eec0 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 7d 69 27 2c {"'.preg_quote($name).'"\s*:}i',
8eee0 20 24 63 68 69 6c 64 72 65 6e 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 5f .$children)).{...if.(preg_match_
8ef00 61 6c 6c 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 22 5c 73 2a all('{"'.preg_quote($name).'"\s*
8ef20 3a 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 7d 27 2c :\s*(?:'.self::$JSON_VALUE.')}',
8ef40 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 62 65 73 74 4d 61 .$children,.$matches)).{.$bestMa
8ef60 74 63 68 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 20 61 tch.=.'';.foreach.($matches[0].a
8ef80 73 20 24 6d 61 74 63 68 29 20 7b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 62 65 73 74 4d 61 74 63 s.$match).{.if.(strlen($bestMatc
8efa0 68 29 20 3c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 h).<.strlen($match)).{.$bestMatc
8efc0 68 20 3d 20 24 6d 61 74 63 68 3b 0a 7d 0a 7d 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d h.=.$match;.}.}.$childrenClean.=
8efe0 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2c 5c 73 2a 27 2e 70 72 65 67 5f 71 75 6f 74 65 .preg_replace('{,\s*'.preg_quote
8f000 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e ($bestMatch).'}i',.'',.$children
8f020 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 6f 75 6e 74 29 ,.-1,.$count);.if.(1.!==.$count)
8f040 20 7b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 .{.$childrenClean.=.preg_replace
8f060 28 27 7b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 5c 73 2a ('{'.preg_quote($bestMatch).'\s*
8f080 2c 3f 5c 73 2a 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 2c 20 2d 31 ,?\s*}i',.'',.$childrenClean,.-1
8f0a0 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 72 ,.$count);.if.(1.!==.$count).{.r
8f0c0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 68 69 eturn.false;.}.}.}.}.else.{.$chi
8f0e0 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 ldrenClean.=.$children;.}....if.
8f100 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 68 69 73 2d (!trim($childrenClean)).{.$this-
8f120 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 >contents.=.preg_replace($nodeRe
8f140 67 65 78 2c 20 27 24 31 24 32 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2e 24 74 68 69 73 gex,.'$1$2'.$this->newline.$this
8f160 2d 3e 69 6e 64 65 6e 74 2e 27 24 34 24 35 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 ->indent.'$4$5',.$this->contents
8f180 29 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 );....if.($subName.!==.null).{.$
8f1a0 63 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 curVal.=.json_decode('{'.$childr
8f1c0 65 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 en.'}',.true);.unset($curVal[$na
8f1e0 6d 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 me][$subName]);.$this->addSubNod
8f200 65 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 e($mainNode,.$name,.$curVal[$nam
8f220 65 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 e]);.}..return.true;.}..$that.=.
8f240 24 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 $this;.$this->contents.=.preg_re
8f260 70 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 place_callback($nodeRegex,.funct
8f280 69 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 ion.($matches).use.($that,.$name
8f2a0 2c 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 ,.$subName,.$childrenClean).{.if
8f2c0 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 61 6c 20 3d .($subName.!==.null).{.$curVal.=
8f2e0 20 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 33 5d 2e 27 7d 27 .json_decode('{'.$matches[3].'}'
8f300 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 65 5d 5b 24 73 ,.true);.unset($curVal[$name][$s
8f320 75 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 ubName]);.$childrenClean.=.subst
8f340 72 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 r($that->format($curVal,.0),.1,.
8f360 2d 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 6d 61 -1);.}..return.$matches[1]...$ma
8f380 74 63 68 65 73 5b 32 5d 20 2e 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 2e 20 24 6d 61 74 tches[2]...$childrenClean...$mat
8f3a0 63 68 65 73 5b 34 5d 20 2e 20 24 6d 61 74 63 68 65 73 5b 35 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d ches[4]...$matches[5];.},.$this-
8f3c0 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 >contents);..return.true;.}..pub
8f3e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4d 61 69 6e 4b 65 79 28 24 6b 65 79 2c 20 24 63 lic.function.addMainKey($key,.$c
8f400 6f 6e 74 65 6e 74 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 ontent).{.$decoded.=.JsonFile::p
8f420 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 24 63 6f 6e 74 arseJson($this->contents);.$cont
8f440 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a ent.=.$this->format($content);..
8f460 0a 20 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 ..$regex.=.'{^(\s*\{\s*(?:'.self
8f480 3a 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 ::$JSON_STRING.'\s*:\s*'.self::$
8f4a0 4a 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 JSON_VALUE.'\s*,\s*)*?)'..'('.pr
8f4c0 65 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 6b 65 79 29 29 eg_quote(JsonFile::encode($key))
8f4e0 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 29 28 .'\s*:\s*'.self::$JSON_VALUE.')(
8f500 2e 2a 29 7d 73 27 3b 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6b 65 79 5d .*)}s';.if.(isset($decoded[$key]
8f520 29 20 26 26 20 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 74 ).&&.$this->pregMatch($regex,.$t
8f540 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 0a 20 69 66 his->contents,.$matches)).{...if
8f560 20 28 21 40 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 .(!@json_decode('{'.$matches[2].
8f580 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e '}')).{.return.false;.}..$this->
8f5a0 63 6f 6e 74 65 6e 74 73 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 4a 73 6f 6e 46 69 6c contents.=.$matches[1]...JsonFil
8f5c0 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 e::encode($key).':.'.$content...
8f5e0 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 $matches[3];..return.true;.}....
8f600 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5b 5e 7b 5c 73 5d 28 5c 73 if.($this->pregMatch('#[^{\s](\s
8f620 2a 29 5c 7d 24 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 *)\}$#',.$this->contents,.$match
8f640 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c )).{.$this->contents.=.preg_repl
8f660 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 5c 7d 24 23 27 2c 0a 61 64 64 63 73 ace(.'#'.$match[1].'\}$#',.addcs
8f680 6c 61 73 68 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 lashes(','...$this->newline...$t
8f6a0 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 28 24 his->indent...JsonFile::encode($
8f6c0 6b 65 79 29 2e 20 27 3a 20 27 2e 20 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 key)..':.'..$content...$this->ne
8f6e0 77 6c 69 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 wline...'}',.'\\'),.$this->conte
8f700 6e 74 73 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d nts.);..return.true;.}....$this-
8f720 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5c 7d 24 23 >contents.=.preg_replace(.'#\}$#
8f740 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a ',.addcslashes($this->indent...J
8f760 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 27 2e 24 63 6f 6e sonFile::encode($key)..':.'.$con
8f780 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 20 27 5c 5c tent...$this->newline...'}',.'\\
8f7a0 27 29 2c 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 '),.$this->contents.);..return.t
8f7c0 72 75 65 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 rue;.}..public.function.format($
8f7e0 64 61 74 61 2c 20 24 64 65 70 74 68 20 3d 20 30 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 data,.$depth.=.0).{.if.(is_array
8f800 28 24 64 61 74 61 29 29 20 7b 0a 72 65 73 65 74 28 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 ($data)).{.reset($data);..if.(is
8f820 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 64 61 74 61 29 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 _numeric(key($data))).{.foreach.
8f840 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 64 61 74 61 5b ($data.as.$key.=>.$val).{.$data[
8f860 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 64 65 70 $key].=.$this->format($val,.$dep
8f880 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 th.+.1);.}..return.'['.implode('
8f8a0 2c 20 27 2c 20 24 64 61 74 61 29 2e 27 5d 27 3b 0a 7d 0a 0a 24 6f 75 74 20 3d 20 27 7b 27 20 2e ,.',.$data).']';.}..$out.=.'{'..
8f8c0 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 24 65 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 .$this->newline;.$elems.=.array(
8f8e0 29 3b 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 76 61 );.foreach.($data.as.$key.=>.$va
8f900 6c 29 20 7b 0a 24 65 6c 65 6d 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 l).{.$elems[].=.str_repeat($this
8f920 2d 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 32 29 20 2e 20 4a 73 6f 6e 46 69 6c 65 ->indent,.$depth.+.2)...JsonFile
8f940 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d ::encode($key)..':.'.$this->form
8f960 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.
8f980 24 6f 75 74 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e $out...implode(','.$this->newlin
8f9a0 65 2c 20 24 65 6c 65 6d 73 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 73 74 e,.$elems)...$this->newline...st
8f9c0 72 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 r_repeat($this->indent,.$depth.+
8f9e0 20 31 29 20 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 .1)...'}';.}..return.JsonFile::e
8fa00 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ncode($data);.}..protected.funct
8fa20 69 6f 6e 20 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 ion.detectIndenting().{.if.($thi
8fa40 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 7b 5e 28 5c 73 2b 29 22 7d 6d 27 2c 20 24 74 68 69 73 s->pregMatch('{^(\s+)"}m',.$this
8fa60 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 68 69 73 2d 3e 69 6e ->contents,.$match)).{.$this->in
8fa80 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 7b 0a 24 74 68 69 73 dent.=.$match[1];.}.else.{.$this
8faa0 2d 3e 69 6e 64 65 6e 74 20 3d 20 27 20 20 20 20 27 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ->indent.=.'....';.}.}..protecte
8fac0 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 67 4d 61 74 63 68 28 24 72 65 2c 20 24 73 74 72 2c 20 d.function.pregMatch($re,.$str,.
8fae0 26 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 75 6e 74 20 3d 20 &$matches.=.array()).{.$count.=.
8fb00 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 2c 20 24 73 74 72 2c 20 24 6d 61 74 63 68 65 73 29 3b preg_match($re,.$str,.$matches);
8fb20 0a 0a 69 66 20 28 24 63 6f 75 6e 74 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 73 77 69 74 63 68 ..if.($count.===.false).{.switch
8fb40 20 28 70 72 65 67 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 50 52 45 47 .(preg_last_error()).{.case.PREG
8fb60 5f 4e 4f 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 _NO_ERROR:.throw.new.\RuntimeExc
8fb80 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 72 65 67 65 78 3a eption('Failed.to.execute.regex:
8fba0 20 50 52 45 47 5f 4e 4f 5f 45 52 52 4f 52 27 2c 20 50 52 45 47 5f 4e 4f 5f 45 52 52 4f 52 29 3b .PREG_NO_ERROR',.PREG_NO_ERROR);
8fbc0 0a 63 61 73 65 20 50 52 45 47 5f 49 4e 54 45 52 4e 41 4c 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 .case.PREG_INTERNAL_ERROR:.throw
8fbe0 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
8fc00 6f 20 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 49 4e 54 45 52 4e 41 4c 5f 45 o.execute.regex:.PREG_INTERNAL_E
8fc20 52 52 4f 52 27 2c 20 50 52 45 47 5f 49 4e 54 45 52 4e 41 4c 5f 45 52 52 4f 52 29 3b 0a 63 61 73 RROR',.PREG_INTERNAL_ERROR);.cas
8fc40 65 20 50 52 45 47 5f 42 41 43 4b 54 52 41 43 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 3a 0a 74 68 e.PREG_BACKTRACK_LIMIT_ERROR:.th
8fc60 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 row.new.\RuntimeException('Faile
8fc80 64 20 74 6f 20 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 42 41 43 4b 54 52 41 d.to.execute.regex:.PREG_BACKTRA
8fca0 43 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 27 2c 20 50 52 45 47 5f 42 41 43 4b 54 52 41 43 4b 5f CK_LIMIT_ERROR',.PREG_BACKTRACK_
8fcc0 4c 49 4d 49 54 5f 45 52 52 4f 52 29 3b 0a 63 61 73 65 20 50 52 45 47 5f 52 45 43 55 52 53 49 4f LIMIT_ERROR);.case.PREG_RECURSIO
8fce0 4e 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d N_LIMIT_ERROR:.throw.new.\Runtim
8fd00 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 72 65 eException('Failed.to.execute.re
8fd20 67 65 78 3a 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 27 gex:.PREG_RECURSION_LIMIT_ERROR'
8fd40 2c 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 29 3b 0a 63 ,.PREG_RECURSION_LIMIT_ERROR);.c
8fd60 61 73 65 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 20 6e ase.PREG_BAD_UTF8_ERROR:.throw.n
8fd80 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 ew.\RuntimeException('Failed.to.
8fda0 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 45 52 52 execute.regex:.PREG_BAD_UTF8_ERR
8fdc0 4f 52 27 2c 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 45 52 52 4f 52 29 3b 0a 63 61 73 65 20 OR',.PREG_BAD_UTF8_ERROR);.case.
8fde0 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 4f 46 46 53 45 54 5f 45 52 52 4f 52 3a 0a 74 68 72 6f PREG_BAD_UTF8_OFFSET_ERROR:.thro
8fe00 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 20 w.new.\RuntimeException('Failed.
8fe20 74 6f 20 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f to.execute.regex:.PREG_BAD_UTF8_
8fe40 4f 46 46 53 45 54 5f 45 52 52 4f 52 27 2c 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 4f 46 46 OFFSET_ERROR',.PREG_BAD_UTF8_OFF
8fe60 53 45 54 5f 45 52 52 4f 52 29 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c SET_ERROR);.default:.throw.new.\
8fe80 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 RuntimeException('Failed.to.exec
8fea0 75 74 65 20 72 65 67 65 78 3a 20 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 29 3b 0a 7d 0a 7d 0a ute.regex:.Unknown.error');.}.}.
8fec0 0a 72 65 74 75 72 6e 20 24 63 6f 75 6e 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a .return.$count;.}.}.<?php.......
8fee0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 .....namespace.Composer\Json;..u
8ff00 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 65 6c se.JsonSchema\Validator;.use.Sel
8ff20 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 65 6c 64 5c d\JsonLint\JsonParser;.use.Seld\
8ff40 4a 73 6f 6e 4c 69 6e 74 5c 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 JsonLint\ParsingException;.use.C
8ff60 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 75 omposer\Util\RemoteFilesystem;.u
8ff80 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 se.Composer\Downloader\Transport
8ffa0 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 46 69 6c 65 Exception;........class.JsonFile
8ffc0 0a 7b 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 48 45 4d 41 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 .{.const.LAX_SCHEMA.=.1;.const.S
8ffe0 54 52 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e TRICT_SCHEMA.=.2;..const.JSON_UN
90000 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 3d 20 36 34 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e ESCAPED_SLASHES.=.64;.const.JSON
90020 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3d 20 31 32 38 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f _PRETTY_PRINT.=.128;.const.JSON_
90040 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 20 3d 20 32 35 36 3b 0a 0a 70 72 69 76 61 74 UNESCAPED_UNICODE.=.256;..privat
90060 65 20 24 70 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 e.$path;.private.$rfs;.........p
90080 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 ublic.function.__construct($path
900a0 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a ,.RemoteFilesystem.$rfs.=.null).
900c0 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 0a 69 66 20 28 6e 75 6c 6c {.$this->path.=.$path;..if.(null
900e0 20 3d 3d 3d 20 24 72 66 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 .===.$rfs.&&.preg_match('{^https
90100 3f 3a 2f 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e ?://}i',.$path)).{.throw.new.\In
90120 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 68 74 74 70 20 75 72 6c validArgumentException('http.url
90140 73 20 72 65 71 75 69 72 65 20 61 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 69 6e 73 s.require.a.RemoteFilesystem.ins
90160 74 61 6e 63 65 20 74 6f 20 62 65 20 70 61 73 73 65 64 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 tance.to.be.passed');.}.$this->r
90180 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e fs.=.$rfs;.}.....public.function
901a0 20 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b .getPath().{.return.$this->path;
901c0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 69 73 74 73 28 .}.......public.function.exists(
901e0 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b ).{.return.is_file($this->path);
90200 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 29 .}........public.function.read()
90220 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 66 73 29 20 7b 0a 24 6a 73 6f 6e .{.try.{.if.($this->rfs).{.$json
90240 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 .=.$this->rfs->getContents($this
90260 2d 3e 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 65 ->path,.$this->path,.false);.}.e
90280 6c 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 lse.{.$json.=.file_get_contents(
902a0 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f $this->path);.}.}.catch.(Transpo
902c0 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e rtException.$e).{.throw.new.\Run
902e0 74 69 6d 65 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 2c 20 timeException($e->getMessage(),.
90300 30 2c 20 24 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 0,.$e);.}.catch.(\Exception.$e).
90320 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 43 {.throw.new.\RuntimeException('C
90340 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 27 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 22 5c 6e 5c ould.not.read.'.$this->path."\n\
90360 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 n".$e->getMessage());.}..return.
90380 73 74 61 74 69 63 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 74 68 69 73 2d 3e static::parseJson($json,.$this->
903a0 70 61 74 68 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 path);.}.........public.function
903c0 20 77 72 69 74 65 28 61 72 72 61 79 20 24 68 61 73 68 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 34 .write(array.$hash,.$options.=.4
903e0 34 38 29 0a 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 70 61 74 68 48).{.$dir.=.dirname($this->path
90400 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 69 66 20 28 66 69 6c 65 );.if.(!is_dir($dir)).{.if.(file
90420 5f 65 78 69 73 74 73 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 _exists($dir)).{.throw.new.\Unex
90440 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 65 78 69 pectedValueException(.$dir.'.exi
90460 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 74 6f 72 79 2e 27 0a 29 3b 0a sts.and.is.not.a.directory.'.);.
90480 7d 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 }.if.(!@mkdir($dir,.0777,.true))
904a0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 .{.throw.new.\UnexpectedValueExc
904c0 65 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e eption(.$dir.'.does.not.exist.an
904e0 64 20 63 6f 75 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 d.could.not.be.created.'.);.}.}.
90500 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d .$retries.=.3;.while.($retries--
90520 29 20 7b 0a 74 72 79 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 ).{.try.{.file_put_contents($thi
90540 73 2d 3e 70 61 74 68 2c 20 73 74 61 74 69 63 3a 3a 65 6e 63 6f 64 65 28 24 68 61 73 68 2c 20 24 s->path,.static::encode($hash,.$
90560 6f 70 74 69 6f 6e 73 29 2e 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e options)..($options.&.self::JSON
90580 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3f 20 22 5c 6e 22 20 3a 20 27 27 29 29 3b 0a 62 72 65 _PRETTY_PRINT.?."\n".:.''));.bre
905a0 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 0a 69 66 ak;.}.catch.(\Exception.$e).{.if
905c0 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 63 6f .($retries).{.usleep(500000);.co
905e0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a ntinue;.}..throw.$e;.}.}.}......
90600 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 63 68 65 6d ...public.function.validateSchem
90620 61 28 24 73 63 68 65 6d 61 20 3d 20 73 65 6c 66 3a 3a 53 54 52 49 43 54 5f 53 43 48 45 4d 41 29 a($schema.=.self::STRICT_SCHEMA)
90640 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 .{.$content.=.file_get_contents(
90660 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 $this->path);.$data.=.json_decod
90680 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 61 74 61 e($content);..if.(null.===.$data
906a0 20 26 26 20 27 6e 75 6c 6c 27 20 21 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 73 65 6c 66 3a .&&.'null'.!==.$content).{.self:
906c0 3a 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 63 6f 6e 74 65 6e 74 2c 20 24 74 68 69 73 2d :validateSyntax($content,.$this-
906e0 3e 70 61 74 68 29 3b 0a 7d 0a 0a 24 73 63 68 65 6d 61 46 69 6c 65 20 3d 20 5f 5f 44 49 52 5f 5f >path);.}..$schemaFile.=.__DIR__
90700 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 63 6f 6d 70 6f 73 65 72 2d 73 63 68 65 6d ...'/../../../res/composer-schem
90720 61 2e 6a 73 6f 6e 27 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f a.json';.$schemaData.=.json_deco
90740 64 65 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 73 63 68 65 6d 61 46 69 6c 65 de(file_get_contents($schemaFile
90760 29 29 3b 0a 0a 69 66 20 28 24 73 63 68 65 6d 61 20 3d 3d 3d 20 73 65 6c 66 3a 3a 4c 41 58 5f 53 ));..if.($schema.===.self::LAX_S
90780 43 48 45 4d 41 29 20 7b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c CHEMA).{.$schemaData->additional
907a0 50 72 6f 70 65 72 74 69 65 73 20 3d 20 74 72 75 65 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e Properties.=.true;.$schemaData->
907c0 72 65 71 75 69 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f required.=.array();.}..$validato
907e0 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 6f 72 28 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d r.=.new.Validator();.$validator-
90800 3e 63 68 65 63 6b 28 24 64 61 74 61 2c 20 24 73 63 68 65 6d 61 44 61 74 61 29 3b 0a 0a 0a 0a 69 >check($data,.$schemaData);....i
90820 66 20 28 21 24 76 61 6c 69 64 61 74 6f 72 2d 3e 69 73 56 61 6c 69 64 28 29 29 20 7b 0a 24 65 72 f.(!$validator->isValid()).{.$er
90840 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 rors.=.array();.foreach.((array)
90860 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 20 61 73 20 24 65 72 72 .$validator->getErrors().as.$err
90880 6f 72 29 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 28 24 65 72 72 6f 72 5b 27 70 72 6f 70 65 or).{.$errors[].=.($error['prope
908a0 72 74 79 27 5d 20 3f 20 24 65 72 72 6f 72 5b 27 70 72 6f 70 65 72 74 79 27 5d 2e 27 20 3a 20 27 rty'].?.$error['property'].'.:.'
908c0 20 3a 20 27 27 29 2e 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 3b 0a 7d 0a 74 68 72 6f .:.'').$error['message'];.}.thro
908e0 77 20 6e 65 77 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 27 22 w.new.JsonValidationException('"
90900 27 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 '.$this->path.'".does.not.match.
90920 74 68 65 20 65 78 70 65 63 74 65 64 20 4a 53 4f 4e 20 73 63 68 65 6d 61 27 2c 20 24 65 72 72 6f the.expected.JSON.schema',.$erro
90940 72 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rs);.}..return.true;.}.........p
90960 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6f 64 65 28 24 64 61 ublic.static.function.encode($da
90980 74 61 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f ta,.$options.=.448).{.if.(versio
909a0 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 2c 20 27 3e n_compare(PHP_VERSION,.'5.4',.'>
909c0 3d 27 29 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 =')).{.$json.=.json_encode($data
909e0 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6a 73 6f 6e ,.$options);.if.(false.===.$json
90a00 29 20 7b 0a 73 65 6c 66 3a 3a 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 6f 72 28 6a 73 6f 6e 5f ).{.self::throwEncodeError(json_
90a20 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 50 48 50 5f 56 45 52 53 last_error());.}....if.(PHP_VERS
90a40 49 4f 4e 5f 49 44 20 3c 20 35 30 34 32 38 20 7c 7c 20 28 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 ION_ID.<.50428.||.(PHP_VERSION_I
90a60 44 20 3e 3d 20 35 30 35 30 30 20 26 26 20 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 20 3c 20 35 D.>=.50500.&&.PHP_VERSION_ID.<.5
90a80 30 35 31 32 29 20 7c 7c 20 28 64 65 66 69 6e 65 64 28 27 4a 53 4f 4e 5f 43 5f 56 45 52 53 49 4f 0512).||.(defined('JSON_C_VERSIO
90aa0 4e 27 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 70 68 70 76 65 72 73 69 6f N').&&.version_compare(phpversio
90ac0 6e 28 27 6a 73 6f 6e 27 29 2c 20 27 31 2e 33 2e 36 27 2c 20 27 3c 27 29 29 29 20 7b 0a 24 6a 73 n('json'),.'1.3.6',.'<'))).{.$js
90ae0 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 5b 5c 73 2b 5c 5d 2f 27 2c 20 27 on.=.preg_replace('/\[\s+\]/',.'
90b00 5b 5d 27 2c 20 24 6a 73 6f 6e 29 3b 0a 24 6a 73 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 []',.$json);.$json.=.preg_replac
90b20 65 28 27 2f 5c 7b 5c 73 2b 5c 7d 2f 27 2c 20 27 7b 7d 27 2c 20 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a e('/\{\s+\}/',.'{}',.$json);.}..
90b40 72 65 74 75 72 6e 20 24 6a 73 6f 6e 3b 0a 7d 0a 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e return.$json;.}..$json.=.json_en
90b60 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6a 73 6f 6e code($data);.if.(false.===.$json
90b80 29 20 7b 0a 73 65 6c 66 3a 3a 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 6f 72 28 6a 73 6f 6e 5f ).{.self::throwEncodeError(json_
90ba0 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 3b 0a 7d 0a 0a 24 70 72 65 74 74 79 50 72 69 6e 74 20 3d last_error());.}..$prettyPrint.=
90bc0 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 50 .(bool).($options.&.self::JSON_P
90be0 52 45 54 54 59 5f 50 52 49 4e 54 29 3b 0a 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 3d RETTY_PRINT);.$unescapeUnicode.=
90c00 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 .(bool).($options.&.self::JSON_U
90c20 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a 24 75 6e 65 73 63 61 70 65 53 6c 61 73 NESCAPED_UNICODE);.$unescapeSlas
90c40 68 65 73 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a hes.=.(bool).($options.&.self::J
90c60 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 29 3b 0a 0a 69 66 20 28 21 24 70 SON_UNESCAPED_SLASHES);..if.(!$p
90c80 72 65 74 74 79 50 72 69 6e 74 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 rettyPrint.&&.!$unescapeUnicode.
90ca0 26 26 20 21 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 &&.!$unescapeSlashes).{.return.$
90cc0 6a 73 6f 6e 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 4a 73 6f 6e 46 6f 72 6d 61 74 74 65 72 json;.}..$result.=.JsonFormatter
90ce0 3a 3a 66 6f 72 6d 61 74 28 24 6a 73 6f 6e 2c 20 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 ::format($json,.$unescapeUnicode
90d00 2c 20 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 ,.$unescapeSlashes);..return.$re
90d20 73 75 6c 74 3b 0a 7d 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 sult;.}........private.static.fu
90d40 6e 63 74 69 6f 6e 20 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 6f 72 28 24 63 6f 64 65 29 0a 7b nction.throwEncodeError($code).{
90d60 0a 73 77 69 74 63 68 20 28 24 63 6f 64 65 29 20 7b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f .switch.($code).{.case.JSON_ERRO
90d80 52 5f 44 45 50 54 48 3a 0a 24 6d 73 67 20 3d 20 27 4d 61 78 69 6d 75 6d 20 73 74 61 63 6b 20 64 R_DEPTH:.$msg.=.'Maximum.stack.d
90da0 65 70 74 68 20 65 78 63 65 65 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e epth.exceeded';.break;.case.JSON
90dc0 5f 45 52 52 4f 52 5f 53 54 41 54 45 5f 4d 49 53 4d 41 54 43 48 3a 0a 24 6d 73 67 20 3d 20 27 55 _ERROR_STATE_MISMATCH:.$msg.=.'U
90de0 6e 64 65 72 66 6c 6f 77 20 6f 72 20 74 68 65 20 6d 6f 64 65 73 20 6d 69 73 6d 61 74 63 68 27 3b nderflow.or.the.modes.mismatch';
90e00 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 43 54 52 4c 5f 43 48 41 .break;.case.JSON_ERROR_CTRL_CHA
90e20 52 3a 0a 24 6d 73 67 20 3d 20 27 55 6e 65 78 70 65 63 74 65 64 20 63 6f 6e 74 72 6f 6c 20 63 68 R:.$msg.=.'Unexpected.control.ch
90e40 61 72 61 63 74 65 72 20 66 6f 75 6e 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e aracter.found';.break;.case.JSON
90e60 5f 45 52 52 4f 52 5f 55 54 46 38 3a 0a 24 6d 73 67 20 3d 20 27 4d 61 6c 66 6f 72 6d 65 64 20 55 _ERROR_UTF8:.$msg.=.'Malformed.U
90e80 54 46 2d 38 20 63 68 61 72 61 63 74 65 72 73 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 63 6f 72 72 TF-8.characters,.possibly.incorr
90ea0 65 63 74 6c 79 20 65 6e 63 6f 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a ectly.encoded';.break;.default:.
90ec0 24 6d 73 67 20 3d 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 3b 0a 7d 0a 0a 74 68 72 6f 77 $msg.=.'Unknown.error';.}..throw
90ee0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 65 6e 63 .new.\RuntimeException('JSON.enc
90f00 6f 64 69 6e 67 20 66 61 69 6c 65 64 3a 20 27 2e 24 6d 73 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a oding.failed:.'.$msg);.}........
90f20 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 4a 73 ..public.static.function.parseJs
90f40 6f 6e 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 on($json,.$file.=.null).{.if.(nu
90f60 6c 6c 20 3d 3d 3d 20 24 6a 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 64 61 74 61 20 ll.===.$json).{.return;.}.$data.
90f80 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 =.json_decode($json,.true);.if.(
90fa0 6e 75 6c 6c 20 3d 3d 3d 20 24 64 61 74 61 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e null.===.$data.&&.JSON_ERROR_NON
90fc0 45 20 21 3d 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 73 65 6c 66 3a E.!==.json_last_error()).{.self:
90fe0 3a 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 29 3b 0a 7d :validateSyntax($json,.$file);.}
91000 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f ..return.$data;.}............pro
91020 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 tected.static.function.validateS
91040 79 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 yntax($json,.$file.=.null).{.$pa
91060 72 73 65 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 73 75 6c 74 rser.=.new.JsonParser();.$result
91080 20 3d 20 24 70 61 72 73 65 72 2d 3e 6c 69 6e 74 28 24 6a 73 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c .=.$parser->lint($json);.if.(nul
910a0 6c 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 4a 53 l.===.$result).{.if.(defined('JS
910c0 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 27 29 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 ON_ERROR_UTF8').&&.JSON_ERROR_UT
910e0 46 38 20 3d 3d 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 74 68 72 6f F8.===.json_last_error()).{.thro
91100 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 w.new.\UnexpectedValueException(
91120 27 22 27 2e 24 66 69 6c 65 2e 27 22 20 69 73 20 6e 6f 74 20 55 54 46 2d 38 2c 20 63 6f 75 6c 64 '"'.$file.'".is.not.UTF-8,.could
91140 20 6e 6f 74 20 70 61 72 73 65 20 61 73 20 4a 53 4f 4e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 .not.parse.as.JSON');.}..return.
91160 74 72 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 true;.}..throw.new.ParsingExcept
91180 69 6f 6e 28 27 22 27 2e 24 66 69 6c 65 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 ion('"'.$file.'".does.not.contai
911a0 6e 20 76 61 6c 69 64 20 4a 53 4f 4e 27 2e 22 5c 6e 22 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d n.valid.JSON'."\n".$result->getM
911c0 65 73 73 61 67 65 28 29 2c 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 44 65 74 61 69 6c 73 28 29 29 essage(),.$result->getDetails())
911e0 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
91200 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a .Composer\Json;..........class.J
91220 73 6f 6e 46 6f 72 6d 61 74 74 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c sonFormatter.{..............publ
91240 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 28 24 6a 73 6f 6e 2c ic.static.function.format($json,
91260 20 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 2c 20 24 75 6e 65 73 63 61 70 65 53 6c 61 73 .$unescapeUnicode,.$unescapeSlas
91280 68 65 73 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 27 27 3b 0a 24 70 6f 73 20 3d 20 30 3b 0a 24 hes).{.$result.=.'';.$pos.=.0;.$
912a0 73 74 72 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6a 73 6f 6e 29 3b 0a 24 69 6e 64 65 6e 74 53 strLen.=.strlen($json);.$indentS
912c0 74 72 20 3d 20 27 20 20 20 20 27 3b 0a 24 6e 65 77 4c 69 6e 65 20 3d 20 22 5c 6e 22 3b 0a 24 6f tr.=.'....';.$newLine.=."\n";.$o
912e0 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 74 72 75 65 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b utOfQuotes.=.true;.$buffer.=.'';
91300 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b .$noescape.=.true;..for.($i.=.0;
91320 20 24 69 20 3c 20 24 73 74 72 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 0a 20 24 63 68 61 72 20 3d .$i.<.$strLen;.$i++).{...$char.=
91340 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 27 22 .substr($json,.$i,.1);....if.('"
91360 27 20 3d 3d 3d 20 24 63 68 61 72 20 26 26 20 24 6e 6f 65 73 63 61 70 65 29 20 7b 0a 24 6f 75 74 '.===.$char.&&.$noescape).{.$out
91380 4f 66 51 75 6f 74 65 73 20 3d 20 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 3b 0a 7d 0a 0a 69 66 20 OfQuotes.=.!$outOfQuotes;.}..if.
913a0 28 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 29 20 7b 0a 24 62 75 66 66 65 72 20 2e 3d 20 24 63 68 (!$outOfQuotes).{.$buffer..=.$ch
913c0 61 72 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 27 5c 5c 27 20 3d 3d 3d 20 24 63 68 61 72 20 3f ar;.$noescape.=.'\\'.===.$char.?
913e0 20 21 24 6e 6f 65 73 63 61 70 65 20 3a 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 .!$noescape.:.true;.continue;.}.
91400 65 6c 73 65 69 66 20 28 27 27 20 21 3d 3d 20 24 62 75 66 66 65 72 29 20 7b 0a 69 66 20 28 24 75 elseif.(''.!==.$buffer).{.if.($u
91420 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b 0a 24 62 75 66 66 65 72 20 3d 20 73 74 72 5f nescapeSlashes).{.$buffer.=.str_
91440 72 65 70 6c 61 63 65 28 27 5c 5c 2f 27 2c 20 27 2f 27 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a replace('\\/',.'/',.$buffer);.}.
91460 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 26 26 20 66 75 6e 63 74 69 6f .if.($unescapeUnicode.&&.functio
91480 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 27 29 29 n_exists('mb_convert_encoding'))
914a0 20 7b 0a 0a 20 24 62 75 66 66 65 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c .{...$buffer.=.preg_replace_call
914c0 62 61 63 6b 28 27 2f 28 5c 5c 5c 5c 2b 29 75 28 5b 30 2d 39 61 2d 66 5d 7b 34 7d 29 2f 69 27 2c back('/(\\\\+)u([0-9a-f]{4})/i',
914e0 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 7b 0a 24 6c 20 3d 20 73 74 72 6c 65 6e .function.($match).{.$l.=.strlen
91500 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 0a 69 66 20 28 24 6c 20 25 20 32 29 20 7b 0a 72 65 74 75 ($match[1]);..if.($l.%.2).{.retu
91520 72 6e 20 73 74 72 5f 72 65 70 65 61 74 28 27 5c 5c 27 2c 20 24 6c 20 2d 20 31 29 20 2e 20 6d 62 rn.str_repeat('\\',.$l.-.1)...mb
91540 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 0a 70 61 63 6b 28 27 48 2a 27 2c 20 24 6d _convert_encoding(.pack('H*',.$m
91560 61 74 63 68 5b 32 5d 29 2c 0a 27 55 54 46 2d 38 27 2c 0a 27 55 43 53 2d 32 42 45 27 0a 29 3b 0a atch[2]),.'UTF-8',.'UCS-2BE'.);.
91580 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 7d 2c 20 24 62 75 66 66 65 72 29 }..return.$match[0];.},.$buffer)
915a0 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 62 75 66 66 65 72 2e 24 63 68 61 72 3b 0a 24 ;.}..$result..=.$buffer.$char;.$
915c0 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 3a buffer.=.'';.continue;.}..if.(':
915e0 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 0a 20 24 63 68 61 72 20 2e 3d 20 27 20 27 3b 0a 7d '.===.$char).{...$char..=.'.';.}
91600 20 65 6c 73 65 69 66 20 28 28 27 7d 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5d 27 20 3d .elseif.(('}'.===.$char.||.']'.=
91620 3d 3d 20 24 63 68 61 72 29 29 20 7b 0a 24 70 6f 73 2d 2d 3b 0a 24 70 72 65 76 43 68 61 72 20 3d ==.$char)).{.$pos--;.$prevChar.=
91640 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 20 2d 20 31 2c 20 31 29 3b 0a 0a 69 66 20 28 .substr($json,.$i.-.1,.1);..if.(
91660 27 7b 27 20 21 3d 3d 20 24 70 72 65 76 43 68 61 72 20 26 26 20 27 5b 27 20 21 3d 3d 20 24 70 72 '{'.!==.$prevChar.&&.'['.!==.$pr
91680 65 76 43 68 61 72 29 20 7b 0a 0a 20 0a 20 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e 65 77 4c 69 6e evChar).{.....$result..=.$newLin
916a0 65 3b 0a 66 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 e;.for.($j.=.0;.$j.<.$pos;.$j++)
916c0 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 20 65 6c .{.$result..=.$indentStr;.}.}.el
916e0 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 72 74 72 69 6d 28 24 72 65 73 75 6c 74 29 3b se.{...$result.=.rtrim($result);
91700 0a 7d 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 63 68 61 72 3b 0a 0a 0a 20 0a 20 69 66 20 .}.}..$result..=.$char;......if.
91720 28 27 2c 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 (','.===.$char.||.'{'.===.$char.
91740 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 ||.'['.===.$char).{.$result..=.$
91760 6e 65 77 4c 69 6e 65 3b 0a 0a 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 newLine;..if.('{'.===.$char.||.'
91780 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 70 6f 73 2b 2b 3b 0a 7d 0a 0a 66 6f 72 20 28 ['.===.$char).{.$pos++;.}..for.(
917a0 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
917c0 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 lt..=.$indentStr;.}.}.}..return.
917e0 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 61 $result;.}.}.<?php............na
91800 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 45 78 63 65 mespace.Composer\Json;..use.Exce
91820 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 ption;.....class.JsonValidationE
91840 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f xception.extends.Exception.{.pro
91860 74 65 63 74 65 64 20 24 65 72 72 6f 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tected.$errors;..public.function
91880 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 65 72 72 6f 72 73 20 3d .__construct($message,.$errors.=
918a0 20 61 72 72 61 79 28 29 2c 20 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 .array(),.Exception.$previous.=.
918c0 6e 75 6c 6c 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 3b null).{.$this->errors.=.$errors;
918e0 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 30 .parent::__construct($message,.0
91900 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ,.$previous);.}..public.function
91920 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
91940 6f 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ors;.}.}.<?php............namesp
91960 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
91980 69 67 5c 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c ig\ConfigSourceInterface;.....cl
919a0 61 73 73 20 43 6f 6e 66 69 67 0a 7b 0a 63 6f 6e 73 74 20 52 45 4c 41 54 49 56 45 5f 50 41 54 48 ass.Config.{.const.RELATIVE_PATH
919c0 53 20 3d 20 31 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 43 6f S.=.1;..public.static.$defaultCo
919e0 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 nfig.=.array(.'process-timeout'.
91a00 3d 3e 20 33 30 30 2c 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 20 3d 3e 20 66 61 =>.300,.'use-include-path'.=>.fa
91a20 6c 73 65 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 27 61 75 74 lse,.'preferred-install'.=>.'aut
91a40 6f 27 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 74 72 75 65 2c o',.'notify-on-install'.=>.true,
91a60 0a 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 27 67 69 .'github-protocols'.=>.array('gi
91a80 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 73 73 68 27 29 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 t',.'https',.'ssh'),.'vendor-dir
91aa0 27 20 3d 3e 20 27 76 65 6e 64 6f 72 27 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 27 7b 24 76 '.=>.'vendor',.'bin-dir'.=>.'{$v
91ac0 65 6e 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c 0a 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 endor-dir}/bin',.'cache-dir'.=>.
91ae0 27 7b 24 68 6f 6d 65 7d 2f 63 61 63 68 65 27 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 '{$home}/cache',.'cache-files-di
91b00 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 27 2c 0a 27 63 61 63 r'.=>.'{$cache-dir}/files',.'cac
91b20 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 72 65 he-repo-dir'.=>.'{$cache-dir}/re
91b40 70 6f 27 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 po',.'cache-vcs-dir'.=>.'{$cache
91b60 2d 64 69 72 7d 2f 76 63 73 27 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 20 3d 3e 20 31 35 35 35 32 -dir}/vcs',.'cache-ttl'.=>.15552
91b80 30 30 30 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 20 3d 3e 20 6e 75 6c 6c 000,...'cache-files-ttl'.=>.null
91ba0 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 20 3d 3e 20 27 33 30 ,...'cache-files-maxsize'.=>.'30
91bc0 30 4d 69 42 27 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 20 3d 3e 20 66 61 6c 73 0MiB',.'discard-changes'.=>.fals
91be0 65 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 6e 75 6c 6c 2c 0a e,.'autoloader-suffix'.=>.null,.
91c00 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 'optimize-autoloader'.=>.false,.
91c20 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 20 3d 3e 20 66 61 6c 73 'classmap-authoritative'.=>.fals
91c40 65 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 20 74 72 75 65 2c e,.'prepend-autoloader'.=>.true,
91c60 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 28 27 67 69 74 68 .'github-domains'.=>.array('gith
91c80 75 62 2e 63 6f 6d 27 29 2c 0a 27 67 69 74 68 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 6e 61 6d ub.com'),.'github-expose-hostnam
91ca0 65 27 20 3d 3e 20 74 72 75 65 2c 0a 27 73 74 6f 72 65 2d 61 75 74 68 73 27 20 3d 3e 20 27 70 72 e'.=>.true,.'store-auths'.=>.'pr
91cc0 6f 6d 70 74 27 2c 0a 0a 20 0a 20 0a 20 29 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 ompt',.......);..public.static.$
91ce0 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 27 70 61 defaultRepositories.=.array(.'pa
91d00 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 27 63 6f ckagist'.=>.array(.'type'.=>.'co
91d20 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 61 63 6b mposer',.'url'.=>.'https?://pack
91d40 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 61 64 65 agist.org',.'allow_ssl_downgrade
91d60 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 66 69 67 '.=>.true,.).);..private.$config
91d80 3b 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 ;.private.$baseDir;.private.$rep
91da0 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 ositories;.private.$configSource
91dc0 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 70 72 69 ;.private.$authConfigSource;.pri
91de0 76 61 74 65 20 24 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 vate.$useEnvironment;.....public
91e00 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 75 73 65 45 6e 76 69 72 6f .function.__construct($useEnviro
91e20 6e 6d 65 6e 74 20 3d 20 74 72 75 65 2c 20 24 62 61 73 65 44 69 72 20 3d 20 6e 75 6c 6c 29 0a 7b nment.=.true,.$baseDir.=.null).{
91e40 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 ...$this->config.=.static::$defa
91e60 75 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d ultConfig;.$this->repositories.=
91e80 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 24 .static::$defaultRepositories;.$
91ea0 74 68 69 73 2d 3e 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 3d 20 28 62 6f 6f 6c 29 20 24 75 this->useEnvironment.=.(bool).$u
91ec0 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 20 seEnvironment;.$this->baseDir.=.
91ee0 24 62 61 73 65 44 69 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 $baseDir;.}..public.function.set
91f00 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 ConfigSource(ConfigSourceInterfa
91f20 63 65 20 24 73 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 ce.$source).{.$this->configSourc
91f40 65 20 3d 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 e.=.$source;.}..public.function.
91f60 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 getConfigSource().{.return.$this
91f80 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->configSource;.}..public.functi
91fa0 6f 6e 20 73 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 on.setAuthConfigSource(ConfigSou
91fc0 72 63 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 61 rceInterface.$source).{.$this->a
91fe0 75 74 68 43 6f 6e 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 uthConfigSource.=.$source;.}..pu
92000 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 blic.function.getAuthConfigSourc
92020 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f e().{.return.$this->authConfigSo
92040 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 65 urce;.}.......public.function.me
92060 72 67 65 28 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e rge($config).{...if.(!empty($con
92080 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 fig['config']).&&.is_array($conf
920a0 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 ig['config'])).{.foreach.($confi
920c0 67 5b 27 63 6f 6e 66 69 67 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 g['config'].as.$key.=>.$val).{.i
920e0 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 72 72 61 79 28 27 67 69 74 68 75 62 2d f.(in_array($key,.array('github-
92100 6f 61 75 74 68 27 2c 20 27 68 74 74 70 2d 62 61 73 69 63 27 29 29 20 26 26 20 69 73 73 65 74 28 oauth',.'http-basic')).&&.isset(
92120 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 $this->config[$key])).{.$this->c
92140 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d onfig[$key].=.array_merge($this-
92160 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 76 61 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 >config[$key],.$val);.}.else.{.$
92180 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a 7d 0a 7d this->config[$key].=.$val;.}.}.}
921a0 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 ..if.(!empty($config['repositori
921c0 65 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 es']).&&.is_array($config['repos
921e0 69 74 6f 72 69 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 itories'])).{.$this->repositorie
92200 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 s.=.array_reverse($this->reposit
92220 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 24 6e 65 77 52 65 70 6f 73 20 3d 20 61 72 72 61 79 5f ories,.true);.$newRepos.=.array_
92240 72 65 76 65 72 73 65 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 2c reverse($config['repositories'],
92260 20 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 52 65 70 6f 73 20 61 73 20 24 6e .true);.foreach.($newRepos.as.$n
92280 61 6d 65 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 20 69 66 20 28 66 61 6c 73 ame.=>.$repository).{...if.(fals
922a0 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 e.===.$repository).{.unset($this
922c0 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 ->repositories[$name]);.continue
922e0 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 ;.}....if.(is_array($repository)
92300 20 26 26 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 72 65 70 6f 73 69 74 6f 72 79 29 20 26 26 20 .&&.1.===.count($repository).&&.
92320 66 61 6c 73 65 20 3d 3d 3d 20 63 75 72 72 65 6e 74 28 24 72 65 70 6f 73 69 74 6f 72 79 29 29 20 false.===.current($repository)).
92340 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 6b 65 79 28 {.unset($this->repositories[key(
92360 24 72 65 70 6f 73 69 74 6f 72 79 29 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 $repository)]);.continue;.}....i
92380 66 20 28 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 f.(is_int($name)).{.$this->repos
923a0 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 20 65 6c 73 65 20 itories[].=.$repository;.}.else.
923c0 7b 0a 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 20 3d 20 24 {.$this->repositories[$name].=.$
923e0 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 repository;.}.}.$this->repositor
92400 69 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 ies.=.array_reverse($this->repos
92420 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 itories,.true);.}.}.....public.f
92440 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 unction.getRepositories().{.retu
92460 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rn.$this->repositories;.}.......
92480 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6b 65 79 2c 20 24 66 6c ...public.function.get($key,.$fl
924a0 61 67 73 20 3d 20 30 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6b 65 79 29 20 7b 0a 63 61 73 65 20 ags.=.0).{.switch.($key).{.case.
924c0 27 76 65 6e 64 6f 72 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 62 69 6e 2d 64 69 72 27 3a 0a 63 61 'vendor-dir':.case.'bin-dir':.ca
924e0 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 63 61 63 68 se.'process-timeout':.case.'cach
92500 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 72 27 3a 0a e-dir':.case.'cache-files-dir':.
92520 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 27 63 61 63 case.'cache-repo-dir':.case.'cac
92540 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 53 45 52 5f he-vcs-dir':...$env.=.'COMPOSER_
92560 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 2d 27 2c 20 '...strtoupper(strtr($key,.'-',.
92580 27 5f 27 29 29 3b 0a 0a 24 76 61 6c 20 3d 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 '_'));..$val.=.rtrim($this->proc
925a0 65 73 73 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 45 6e 76 28 24 65 6e 76 29 20 ess($this->getComposerEnv($env).
925c0 3f 3a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 66 6c 61 67 73 29 2c ?:.$this->config[$key],.$flags),
925e0 20 27 2f 5c 5c 27 29 3b 0a 24 76 61 6c 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e .'/\\');.$val.=.preg_replace('#^
92600 28 5c 24 48 4f 4d 45 7c 7e 29 28 2f 7c 24 29 23 27 2c 20 72 74 72 69 6d 28 67 65 74 65 6e 76 28 (\$HOME|~)(/|$)#',.rtrim(getenv(
92620 27 48 4f 4d 45 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 55 53 45 52 50 52 4f 46 49 4c 45 27 29 'HOME').?:.getenv('USERPROFILE')
92640 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 2c 20 24 76 61 6c 29 3b 0a 0a 69 66 20 28 73 75 62 73 ,.'/\\')...'/',.$val);..if.(subs
92660 74 72 28 24 6b 65 79 2c 20 2d 34 29 20 21 3d 3d 20 27 2d 64 69 72 27 29 20 7b 0a 72 65 74 75 72 tr($key,.-4).!==.'-dir').{.retur
92680 6e 20 24 76 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 66 6c 61 67 73 20 26 20 73 65 6c 66 n.$val;.}..return.($flags.&.self
926a0 3a 3a 52 45 4c 41 54 49 56 45 5f 50 41 54 48 53 20 3d 3d 20 31 29 20 3f 20 24 76 61 6c 20 3a 20 ::RELATIVE_PATHS.==.1).?.$val.:.
926c0 24 74 68 69 73 2d 3e 72 65 61 6c 70 61 74 68 28 24 76 61 6c 29 3b 0a 0a 63 61 73 65 20 27 63 61 $this->realpath($val);..case.'ca
926e0 63 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 che-ttl':.return.(int).$this->co
92700 6e 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 nfig[$key];..case.'cache-files-m
92720 61 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 axsize':.if.(!preg_match('/^\s*(
92740 5b 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 [0-9.]+)\s*(?:([kmg])(?:i?b)?)?\
92760 73 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 s*$/i',.$this->config[$key],.$ma
92780 74 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 tches)).{.throw.new.\RuntimeExce
927a0 70 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 ption(."Could.not.parse.the.valu
927c0 65 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 e.of.'cache-files-maxsize':.{$th
927e0 69 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 is->config[$key]}".);.}.$size.=.
92800 24 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 $matches[1];.if.(isset($matches[
92820 32 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 2])).{.switch.(strtolower($match
92840 65 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 es[2])).{.case.'g':.$size.*=.102
92860 34 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 4;...case.'m':.$size.*=.1024;...
92880 63 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 case.'k':.$size.*=.1024;.break;.
928a0 7d 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 }.}..return.$size;..case.'cache-
928c0 66 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 files-ttl':.if.(isset($this->con
928e0 66 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 fig[$key])).{.return.(int).$this
92900 2d 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 ->config[$key];.}..return.(int).
92920 24 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 $this->config['cache-ttl'];..cas
92940 65 20 27 68 6f 6d 65 27 3a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 e.'home':.return.rtrim($this->pr
92960 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 2c 20 24 66 6c 61 67 ocess($this->config[$key],.$flag
92980 73 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 61 73 65 20 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 s),.'/\\');..case.'discard-chang
929a0 65 73 27 3a 0a 69 66 20 28 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 es':.if.($env.=.$this->getCompos
929c0 65 72 45 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 27 erEnv('COMPOSER_DISCARD_CHANGES'
929e0 29 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 65 6e 76 2c 20 61 72 72 61 79 28 27 )).{.if.(!in_array($env,.array('
92a00 73 74 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 stash',.'true',.'false',.'1',.'0
92a20 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 74 69 6d 65 45 '),.true)).{.throw.new.\RuntimeE
92a40 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 72 20 43 4f 4d xception(."Invalid.value.for.COM
92a60 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 3a 20 7b 24 65 6e 76 7d 2e 20 45 POSER_DISCARD_CHANGES:.{$env}..E
92a80 78 70 65 63 74 65 64 20 31 2c 20 30 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 xpected.1,.0,.true,.false.or.sta
92aa0 73 68 22 0a 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 65 6e 76 29 20 7b sh".);.}.if.('stash'.===.$env).{
92ac0 0a 72 65 74 75 72 6e 20 27 73 74 61 73 68 27 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 65 6e .return.'stash';.}....return.$en
92ae0 76 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 65 6e 76 3b 0a 7d 0a v.!==.'false'.&&.(bool).$env;.}.
92b00 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 .if.(!in_array($this->config[$ke
92b20 79 5d 2c 20 61 72 72 61 79 28 74 72 75 65 2c 20 66 61 6c 73 65 2c 20 27 73 74 61 73 68 27 29 2c y],.array(true,.false,.'stash'),
92b40 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 .true)).{.throw.new.\RuntimeExce
92b60 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 27 64 69 73 63 61 ption(."Invalid.value.for.'disca
92b80 72 64 2d 63 68 61 6e 67 65 73 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 rd-changes':.{$this->config[$key
92ba0 5d 7d 2e 20 45 78 70 65 63 74 65 64 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 73 ]}..Expected.true,.false.or.stas
92bc0 68 22 0a 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 5b 24 6b h".);.}..return.$this->config[$k
92be0 65 79 5d 3b 0a 0a 63 61 73 65 20 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 3a 0a 69 ey];..case.'github-protocols':.i
92c00 66 20 28 72 65 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 67 69 74 68 75 62 2d 70 f.(reset($this->config['github-p
92c20 72 6f 74 6f 63 6f 6c 73 27 5d 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 74 68 72 6f 77 20 rotocols']).===.'http').{.throw.
92c40 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 68 74 74 70 20 new.\RuntimeException('The.http.
92c60 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 20 67 69 74 68 75 62 20 69 73 20 6e 6f 74 20 61 76 61 69 6c protocol.for.github.is.not.avail
92c80 61 62 6c 65 20 61 6e 79 6d 6f 72 65 2c 20 75 70 64 61 74 65 20 79 6f 75 72 20 63 6f 6e 66 69 67 able.anymore,.update.your.config
92ca0 5c 27 73 20 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 75 73 65 20 22 68 74 74 \'s.github-protocols.to.use."htt
92cc0 70 73 22 2c 20 22 67 69 74 22 20 6f 72 20 22 73 73 68 22 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ps",."git".or."ssh"');.}..return
92ce0 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 0a .$this->config[$key];..default:.
92d00 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 29 if.(!isset($this->config[$key]))
92d20 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 2d .{.return.null;.}..return.$this-
92d40 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 2c 20 24 66 >process($this->config[$key],.$f
92d60 6c 61 67 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 lags);.}.}..public.function.all(
92d80 24 66 6c 61 67 73 20 3d 20 30 29 0a 7b 0a 24 61 6c 6c 20 3d 20 61 72 72 61 79 28 0a 27 72 65 70 $flags.=.0).{.$all.=.array(.'rep
92da0 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f ositories'.=>.$this->getReposito
92dc0 72 69 65 73 28 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 ries(),.);.foreach.(array_keys($
92de0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 24 61 6c 6c 5b 27 63 this->config).as.$key).{.$all['c
92e00 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6b 65 79 2c onfig'][$key].=.$this->get($key,
92e20 20 24 66 6c 61 67 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 6c 3b 0a 7d 0a 0a 70 75 62 .$flags);.}..return.$all;.}..pub
92e40 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 72 6e 20 61 72 72 61 lic.function.raw().{.return.arra
92e60 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 73 2d 3e 67 65 74 52 y(.'repositories'.=>.$this->getR
92e80 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 3e 20 24 74 68 69 73 epositories(),.'config'.=>.$this
92ea0 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 6c 69 63 20 66 75 6e ->config,.);.}........public.fun
92ec0 63 74 69 6f 6e 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b ction.has($key).{.return.array_k
92ee0 65 79 5f 65 78 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a ey_exists($key,.$this->config);.
92f00 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 }.........private.function.proce
92f20 73 73 28 24 76 61 6c 75 65 2c 20 24 66 6c 61 67 73 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 ss($value,.$flags).{.$config.=.$
92f40 74 68 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 this;..if.(!is_string($value)).{
92f60 0a 72 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 .return.$value;.}..return.preg_r
92f80 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 23 5c 7b 5c 24 28 2e 2b 29 5c 7d 23 27 2c 20 eplace_callback('#\{\$(.+)\}#',.
92fa0 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 75 73 65 20 28 24 63 6f 6e 66 69 67 2c 20 function.($match).use.($config,.
92fc0 24 66 6c 61 67 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6d $flags).{.return.$config->get($m
92fe0 61 74 63 68 5b 31 5d 2c 20 24 66 6c 61 67 73 29 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a atch[1],.$flags);.},.$value);.}.
93000 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 6c 70 61 .........private.function.realpa
93020 74 68 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c th($path).{.if.(substr($path,.0,
93040 20 31 29 20 3d 3d 3d 20 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 .1).===.'/'.||.substr($path,.1,.
93060 31 29 20 3d 3d 3d 20 27 3a 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 72 1).===.':').{.return.$path;.}..r
93080 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 2e 20 27 2f 27 20 2e 20 24 70 61 eturn.$this->baseDir...'/'...$pa
930a0 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e th;.}...........private.function
930c0 20 67 65 74 43 6f 6d 70 6f 73 65 72 45 6e 76 28 24 76 61 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 .getComposerEnv($var).{.if.($thi
930e0 73 2d 3e 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 67 65 74 65 s->useEnvironment).{.return.gete
93100 6e 76 28 24 76 61 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c nv($var);.}..return.false;.}.}.<
93120 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
93140 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a er\EventDispatcher;.............
93160 0a 69 6e 74 65 72 66 61 63 65 20 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 .interface.EventSubscriberInterf
93180 61 63 65 0a 7b 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 73 ace.{...................public.s
931a0 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 62 73 63 72 69 62 65 64 45 76 65 6e tatic.function.getSubscribedEven
931c0 74 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ts();.}.<?php............namespa
931e0 63 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 3b 0a 0a 0a 0a ce.Composer\EventDispatcher;....
93200 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6e ...class.Event.{....protected.$n
93220 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 73 3b 0a 0a 0a 0a 0a 70 72 ame;.....protected.$args;.....pr
93240 6f 74 65 63 74 65 64 20 24 66 6c 61 67 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f otected.$flags;.....private.$pro
93260 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 0a 0a 0a 0a 0a 0a pagationStopped.=.false;........
93280 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
932a0 6d 65 2c 20 61 72 72 61 79 20 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 me,.array.$args.=.array(),.array
932c0 20 24 66 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 .$flags.=.array()).{.$this->name
932e0 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 61 72 67 73 20 3d 20 24 61 72 67 73 3b 0a 24 .=.$name;.$this->args.=.$args;.$
93300 74 68 69 73 2d 3e 66 6c 61 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 this->flags.=.$flags;.}.......pu
93320 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
93340 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$this->name;.}.......public.fun
93360 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ction.getArguments().{.return.$t
93380 68 69 73 2d 3e 61 72 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 his->args;.}.......public.functi
933a0 6f 6e 20 67 65 74 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6c on.getFlags().{.return.$this->fl
933c0 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 69 73 50 ags;.}.......public.function.isP
933e0 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ropagationStopped().{.return.$th
93400 69 73 2d 3e 70 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 is->propagationStopped;.}.....pu
93420 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 50 72 6f 70 61 67 61 74 69 6f 6e 28 29 0a blic.function.stopPropagation().
93440 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 20 3d 20 74 72 {.$this->propagationStopped.=.tr
93460 75 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 ue;.}.}.<?php............namespa
93480 63 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 3b 0a 0a 75 73 ce.Composer\EventDispatcher;..us
934a0 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
934c0 6c 69 63 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 44 65 70 65 licyInterface;.use.Composer\Depe
934e0 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 6f 73 65 ndencyResolver\Pool;.use.Compose
93500 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 r\DependencyResolver\Request;.us
93520 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 65 72 45 76 e.Composer\Installer\InstallerEv
93540 65 6e 74 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 ent;.use.Composer\IO\IOInterface
93560 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d ;.use.Composer\Composer;.use.Com
93580 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 poser\DependencyResolver\Operati
935a0 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f on\OperationInterface;.use.Compo
935c0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f ser\Repository\CompositeReposito
935e0 72 79 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 ry;.use.Composer\Script;.use.Com
93600 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
93620 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;...
93640 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
93660 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
93680 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
936a0 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 6c 69 73 74 65 6e cted.$process;.protected.$listen
936c0 65 72 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 ers;.........public.function.__c
936e0 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
93700 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 nterface.$io,.ProcessExecutor.$p
93720 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 rocess.=.null).{.$this->composer
93740 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 .=.$composer;.$this->io.=.$io;.$
93760 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 65 77 20 this->process.=.$process.?:.new.
93780 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ProcessExecutor($io);.}.........
937a0 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 28 24 65 76 65 6e 74 .public.function.dispatch($event
937c0 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 Name,.Event.$event.=.null).{.if.
937e0 28 6e 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 (null.==.$event).{.$event.=.new.
93800 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 Event($eventName);.}..return.$th
93820 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 0a is->doDispatch($event);.}.......
93840 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 68 53 63 72 .....public.function.dispatchScr
93860 69 70 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 ipt($eventName,.$devMode.=.false
93880 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 41 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 66 6c ,.$additionalArgs.=.array(),.$fl
938a0 61 67 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 69 73 2d 3e 64 ags.=.array()).{.return.$this->d
938c0 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 53 63 72 69 70 74 5c 45 76 65 6e 74 28 24 65 76 65 6e oDispatch(new.Script\Event($even
938e0 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
93900 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 41 72 67 73 2c 20 24 66 o,.$devMode,.$additionalArgs,.$f
93920 6c 61 67 73 29 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 lags));.}.................public
93940 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 .function.dispatchPackageEvent($
93960 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 eventName,.$devMode,.PolicyInter
93980 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 face.$policy,.Pool.$pool,.Compos
939a0 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 iteRepository.$installedRepo,.Re
939c0 71 75 65 73 74 20 24 72 65 71 75 65 73 74 2c 20 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e quest.$request,.array.$operation
939e0 73 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 69 6f 6e s,.OperationInterface.$operation
93a00 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 ).{.return.$this->doDispatch(new
93a20 20 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d .PackageEvent($eventName,.$this-
93a40 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 4d 6f 64 65 2c 20 >composer,.$this->io,.$devMode,.
93a60 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 52 65 70 6f 2c 20 $policy,.$pool,.$installedRepo,.
93a80 24 72 65 71 75 65 73 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 24 6f 70 65 72 61 74 69 6f $request,.$operations,.$operatio
93aa0 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e n));.}................public.fun
93ac0 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 28 24 65 76 ction.dispatchInstallerEvent($ev
93ae0 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 entName,.$devMode,.PolicyInterfa
93b00 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 69 74 ce.$policy,.Pool.$pool,.Composit
93b20 65 52 65 70 6f 73 69 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 71 75 eRepository.$installedRepo,.Requ
93b40 65 73 74 20 24 72 65 71 75 65 73 74 2c 20 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 est.$request,.array.$operations.
93b60 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 44 69 73 =.array()).{.return.$this->doDis
93b80 70 61 74 63 68 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 28 24 65 76 65 6e 74 4e patch(new.InstallerEvent($eventN
93ba0 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 6f 2c ame,.$this->composer,.$this->io,
93bc0 20 24 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 .$devMode,.$policy,.$pool,.$inst
93be0 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 73 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 alledRepo,.$request,.$operations
93c00 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ));.}............protected.funct
93c20 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 24 ion.doDispatch(Event.$event).{.$
93c40 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 28 listeners.=.$this->getListeners(
93c60 24 65 76 65 6e 74 29 3b 0a 0a 24 72 65 74 75 72 6e 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 $event);..$return.=.0;.foreach.(
93c80 24 6c 69 73 74 65 6e 65 72 73 20 61 73 20 24 63 61 6c 6c 61 62 6c 65 29 20 7b 0a 69 66 20 28 21 $listeners.as.$callable).{.if.(!
93ca0 69 73 5f 73 74 72 69 6e 67 28 24 63 61 6c 6c 61 62 6c 65 29 20 26 26 20 69 73 5f 63 61 6c 6c 61 is_string($callable).&&.is_calla
93cc0 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 24 74 68 69 73 ble($callable)).{.$event.=.$this
93ce0 2d 3e 63 68 65 63 6b 4c 69 73 74 65 6e 65 72 45 78 70 65 63 74 65 64 45 76 65 6e 74 28 24 63 61 ->checkListenerExpectedEvent($ca
93d00 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 29 3b 0a 24 72 65 74 75 72 6e 20 3d 20 66 61 6c 73 65 llable,.$event);.$return.=.false
93d20 20 3d 3d 3d 20 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 24 .===.call_user_func($callable,.$
93d40 65 76 65 6e 74 29 20 3f 20 31 20 3a 20 30 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d event).?.1.:.0;.}.elseif.($this-
93d60 3e 69 73 50 68 70 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 63 6c 61 73 >isPhpScript($callable)).{.$clas
93d80 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 30 2c 20 73 74 72 sName.=.substr($callable,.0,.str
93da0 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 29 3b 0a 24 6d 65 74 68 6f 64 4e 61 pos($callable,.'::'));.$methodNa
93dc0 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 73 74 72 70 6f 73 28 24 63 me.=.substr($callable,.strpos($c
93de0 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 20 2b 20 32 29 3b 0a 0a 69 66 20 28 21 63 6c 61 73 73 allable,.'::').+.2);..if.(!class
93e00 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 4e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f _exists($className)).{.$this->io
93e20 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6c 61 73 73 20 27 2e 24 ->writeError('<warning>Class.'.$
93e40 63 6c 61 73 73 4e 61 6d 65 2e 27 20 69 73 20 6e 6f 74 20 61 75 74 6f 6c 6f 61 64 61 62 6c 65 2c className.'.is.not.autoloadable,
93e60 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 .can.not.call.'.$event->getName(
93e80 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 ).'.script</warning>');.continue
93ea0 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 ;.}.if.(!is_callable($callable))
93ec0 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 .{.$this->io->writeError('<warni
93ee0 6e 67 3e 4d 65 74 68 6f 64 20 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 73 20 6e 6f 74 20 63 ng>Method.'.$callable.'.is.not.c
93f00 61 6c 6c 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e allable,.can.not.call.'.$event->
93f20 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a getName().'.script</warning>');.
93f40 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 74 75 72 6e 20 3d 20 66 61 6c continue;.}..try.{.$return.=.fal
93f60 73 65 20 3d 3d 3d 20 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 se.===.$this->executeEventPhpScr
93f80 69 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 24 65 76 ipt($className,.$methodName,.$ev
93fa0 65 6e 74 29 20 3f 20 31 20 3a 20 30 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f ent).?.1.:.0;.}.catch.(\Exceptio
93fc0 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 53 63 72 69 70 74 20 25 73 20 68 61 n.$e).{.$message.=."Script.%s.ha
93fe0 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 64 20 77 ndling.the.%s.event.terminated.w
94000 69 74 68 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 22 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 ith.an.exception";.$this->io->wr
94020 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 2e 73 70 72 69 6e 74 66 28 24 6d 65 73 73 iteError('<error>'.sprintf($mess
94040 61 67 65 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 age,.$callable,.$event->getName(
94060 29 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 20 65 6c )).'</error>');.throw.$e;.}.}.el
94080 73 65 20 7b 0a 24 61 72 67 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f se.{.$args.=.implode('.',.array_
940a0 6d 61 70 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 map(array('Composer\Util\Process
940c0 45 78 65 63 75 74 6f 72 27 2c 27 65 73 63 61 70 65 27 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 Executor','escape'),.$event->get
940e0 41 72 67 75 6d 65 6e 74 73 28 29 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 28 24 65 78 69 74 43 Arguments()));.if.(0.!==.($exitC
94100 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 65 28 24 63 ode.=.$this->process->execute($c
94120 61 6c 6c 61 62 6c 65 20 2e 20 28 24 61 72 67 73 20 3d 3d 3d 20 27 27 20 3f 20 27 27 20 3a 20 27 allable...($args.===.''.?.''.:.'
94140 20 27 2e 24 61 72 67 73 29 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 .'.$args)))).{.$this->io->writeE
94160 72 72 6f 72 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 73 20 68 rror(sprintf('<error>Script.%s.h
94180 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 20 77 69 andling.the.%s.event.returned.wi
941a0 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 6c 65 2c th.an.error</error>',.$callable,
941c0 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 6e 65 77 .$event->getName()));..throw.new
941e0 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 70 75 74 .\RuntimeException('Error.Output
94200 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 75 74 70 :.'.$this->process->getErrorOutp
94220 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 76 65 6e ut(),.$exitCode);.}.}..if.($even
94240 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 62 72 65 t->isPropagationStopped()).{.bre
94260 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a ak;.}.}..return.$return;.}......
94280 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 45 76 65 6e 74 .protected.function.executeEvent
942a0 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d PhpScript($className,.$methodNam
942c0 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 65 76 65 6e 74 20 3d 20 24 74 68 69 e,.Event.$event).{.$event.=.$thi
942e0 73 2d 3e 63 68 65 63 6b 4c 69 73 74 65 6e 65 72 45 78 70 65 63 74 65 64 45 76 65 6e 74 28 61 72 s->checkListenerExpectedEvent(ar
94300 72 61 79 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 29 2c 20 24 65 ray($className,.$methodName),.$e
94320 76 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 4e 61 6d 65 3a 3a 24 6d 65 74 68 vent);..return.$className::$meth
94340 6f 64 4e 61 6d 65 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 odName($event);.}.......protecte
94360 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4c 69 73 74 65 6e 65 72 45 78 70 65 63 74 65 64 d.function.checkListenerExpected
94380 45 76 65 6e 74 28 24 74 61 72 67 65 74 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 74 Event($target,.Event.$event).{.t
943a0 72 79 20 7b 0a 24 72 65 66 6c 65 63 74 65 64 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f ry.{.$reflected.=.new.\Reflectio
943c0 6e 50 61 72 61 6d 65 74 65 72 28 24 74 61 72 67 65 74 2c 20 30 29 3b 0a 7d 20 63 61 74 63 68 20 nParameter($target,.0);.}.catch.
943e0 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 3b (\Exception.$e).{.return.$event;
94400 0a 7d 0a 0a 24 74 79 70 65 68 69 6e 74 20 3d 20 24 72 65 66 6c 65 63 74 65 64 2d 3e 67 65 74 43 .}..$typehint.=.$reflected->getC
94420 6c 61 73 73 28 29 3b 0a 0a 69 66 20 28 21 24 74 79 70 65 68 69 6e 74 20 69 6e 73 74 61 6e 63 65 lass();..if.(!$typehint.instance
94440 6f 66 20 5c 52 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 of.\ReflectionClass).{.return.$e
94460 76 65 6e 74 3b 0a 7d 0a 0a 24 65 78 70 65 63 74 65 64 20 3d 20 24 74 79 70 65 68 69 6e 74 2d 3e vent;.}..$expected.=.$typehint->
94480 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 0a 20 69 66 20 28 21 24 65 76 65 6e 74 20 69 6e 73 74 61 6e getName();....if.(!$event.instan
944a0 63 65 6f 66 20 24 65 78 70 65 63 74 65 64 20 26 26 20 24 65 78 70 65 63 74 65 64 20 3d 3d 3d 20 ceof.$expected.&&.$expected.===.
944c0 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 27 29 20 'Composer\Script\CommandEvent').
944e0 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c {.$event.=.new.\Composer\Script\
94500 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 0a 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c CommandEvent(.$event->getName(),
94520 20 24 65 76 65 6e 74 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2c 20 24 65 76 65 6e 74 2d 3e .$event->getComposer(),.$event->
94540 67 65 74 49 4f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 69 73 44 65 76 4d 6f 64 65 28 29 2c 20 24 65 getIO(),.$event->isDevMode(),.$e
94560 76 65 6e 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 29 3b 0a 7d 0a 69 66 20 28 21 24 vent->getArguments().);.}.if.(!$
94580 65 76 65 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 65 78 70 65 63 74 65 64 20 26 26 20 24 65 event.instanceof.$expected.&&.$e
945a0 78 70 65 63 74 65 64 20 3d 3d 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 50 61 63 xpected.===.'Composer\Script\Pac
945c0 6b 61 67 65 45 76 65 6e 74 27 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 kageEvent').{.$event.=.new.\Comp
945e0 6f 73 65 72 5c 53 63 72 69 70 74 5c 50 61 63 6b 61 67 65 45 76 65 6e 74 28 0a 24 65 76 65 6e 74 oser\Script\PackageEvent(.$event
94600 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 ->getName(),.$event->getComposer
94620 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 49 4f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 69 73 44 (),.$event->getIO(),.$event->isD
94640 65 76 4d 6f 64 65 28 29 2c 0a 24 65 76 65 6e 74 2d 3e 67 65 74 50 6f 6c 69 63 79 28 29 2c 20 24 evMode(),.$event->getPolicy(),.$
94660 65 76 65 6e 74 2d 3e 67 65 74 50 6f 6f 6c 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 49 6e 73 event->getPool(),.$event->getIns
94680 74 61 6c 6c 65 64 52 65 70 6f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 52 65 71 75 65 73 74 talledRepo(),.$event->getRequest
946a0 28 29 2c 0a 24 65 76 65 6e 74 2d 3e 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 2c 20 24 65 76 (),.$event->getOperations(),.$ev
946c0 65 6e 74 2d 3e 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 29 3b 0a 7d 0a 69 66 20 28 21 24 65 ent->getOperation().);.}.if.(!$e
946e0 76 65 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 65 78 70 65 63 74 65 64 20 26 26 20 24 65 78 vent.instanceof.$expected.&&.$ex
94700 70 65 63 74 65 64 20 3d 3d 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 45 76 65 6e pected.===.'Composer\Script\Even
94720 74 27 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 53 63 72 t').{.$event.=.new.\Composer\Scr
94740 69 70 74 5c 45 76 65 6e 74 28 0a 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 65 ipt\Event(.$event->getName(),.$e
94760 76 65 6e 74 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 vent->getComposer(),.$event->get
94780 49 4f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 69 73 44 65 76 4d 6f 64 65 28 29 2c 0a 24 65 76 65 6e IO(),.$event->isDevMode(),.$even
947a0 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 46 6c t->getArguments(),.$event->getFl
947c0 61 67 73 28 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 3b 0a 7d 0a 0a 0a 0a ags().);.}..return.$event;.}....
947e0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 73 74 65 .....protected.function.addListe
94800 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 6c 69 73 74 65 6e 65 72 2c 20 24 70 72 69 6f ner($eventName,.$listener,.$prio
94820 72 69 74 79 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 rity.=.0).{.$this->listeners[$ev
94840 65 6e 74 4e 61 6d 65 5d 5b 24 70 72 69 6f 72 69 74 79 5d 5b 5d 20 3d 20 24 6c 69 73 74 65 6e 65 entName][$priority][].=.$listene
94860 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 61 64 64 r;.}.........public.function.add
94880 53 75 62 73 63 72 69 62 65 72 28 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 Subscriber(EventSubscriberInterf
948a0 61 63 65 20 24 73 75 62 73 63 72 69 62 65 72 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 75 62 ace.$subscriber).{.foreach.($sub
948c0 73 63 72 69 62 65 72 2d 3e 67 65 74 53 75 62 73 63 72 69 62 65 64 45 76 65 6e 74 73 28 29 20 61 scriber->getSubscribedEvents().a
948e0 73 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 3e 20 24 70 61 72 61 6d 73 29 20 7b 0a 69 66 20 28 69 s.$eventName.=>.$params).{.if.(i
94900 73 5f 73 74 72 69 6e 67 28 24 70 61 72 61 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c s_string($params)).{.$this->addL
94920 69 73 74 65 6e 65 72 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 istener($eventName,.array($subsc
94940 72 69 62 65 72 2c 20 24 70 61 72 61 6d 73 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 73 riber,.$params));.}.elseif.(is_s
94960 74 72 69 6e 67 28 24 70 61 72 61 6d 73 5b 30 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c tring($params[0])).{.$this->addL
94980 69 73 74 65 6e 65 72 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 istener($eventName,.array($subsc
949a0 72 69 62 65 72 2c 20 24 70 61 72 61 6d 73 5b 30 5d 29 2c 20 69 73 73 65 74 28 24 70 61 72 61 6d riber,.$params[0]),.isset($param
949c0 73 5b 31 5d 29 20 3f 20 24 70 61 72 61 6d 73 5b 31 5d 20 3a 20 30 29 3b 0a 7d 20 65 6c 73 65 20 s[1]).?.$params[1].:.0);.}.else.
949e0 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 72 61 6d 73 20 61 73 20 24 6c 69 73 74 65 6e 65 72 29 {.foreach.($params.as.$listener)
94a00 20 7b 0a 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 .{.$this->addListener($eventName
94a20 2c 20 61 72 72 61 79 28 24 73 75 62 73 63 72 69 62 65 72 2c 20 24 6c 69 73 74 65 6e 65 72 5b 30 ,.array($subscriber,.$listener[0
94a40 5d 29 2c 20 69 73 73 65 74 28 24 6c 69 73 74 65 6e 65 72 5b 31 5d 29 20 3f 20 24 6c 69 73 74 65 ]),.isset($listener[1]).?.$liste
94a60 6e 65 72 5b 31 5d 20 3a 20 30 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ner[1].:.0);.}.}.}.}........prot
94a80 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e ected.function.getListeners(Even
94aa0 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 73 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 20 3d 20 24 t.$event).{.$scriptListeners.=.$
94ac0 74 68 69 73 2d 3e 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 28 24 65 76 65 6e 74 29 this->getScriptListeners($event)
94ae0 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 ;..if.(!isset($this->listeners[$
94b00 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e event->getName()][0])).{.$this->
94b20 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 20 listeners[$event->getName()][0].
94b40 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 6b 72 73 6f 72 74 28 24 74 68 69 73 2d 3e 6c 69 73 74 65 =.array();.}.krsort($this->liste
94b60 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 0a 24 6c 69 73 74 ners[$event->getName()]);..$list
94b80 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 3b 0a 24 6c 69 73 74 65 eners.=.$this->listeners;.$liste
94ba0 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 20 3d 20 61 72 72 ners[$event->getName()][0].=.arr
94bc0 61 79 5f 6d 65 72 67 65 28 24 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e ay_merge($listeners[$event->getN
94be0 61 6d 65 28 29 5d 5b 30 5d 2c 20 24 73 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 29 3b 0a 0a 72 ame()][0],.$scriptListeners);..r
94c00 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 eturn.call_user_func_array('arra
94c20 79 5f 6d 65 72 67 65 27 2c 20 24 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 y_merge',.$listeners[$event->get
94c40 4e 61 6d 65 28 29 5d 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 Name()]);.}........public.functi
94c60 6f 6e 20 68 61 73 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 20 24 65 76 65 6e on.hasEventListeners(Event.$even
94c80 74 29 0a 7b 0a 24 6c 69 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 69 73 74 t).{.$listeners.=.$this->getList
94ca0 65 6e 65 72 73 28 24 65 76 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 6c 69 eners($event);..return.count($li
94cc0 73 74 65 6e 65 72 73 29 20 3e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 steners).>.0;.}........protected
94ce0 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 65 72 73 28 45 76 65 .function.getScriptListeners(Eve
94d00 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 nt.$event).{.$package.=.$this->c
94d20 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 73 63 72 69 70 74 73 20 omposer->getPackage();.$scripts.
94d40 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 65 =.$package->getScripts();..if.(e
94d60 6d 70 74 79 28 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d mpty($scripts[$event->getName()]
94d80 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 )).{.return.array();.}..if.($thi
94da0 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 6e 72 65 s->loader).{.$this->loader->unre
94dc0 67 69 73 74 65 72 28 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d gister();.}..$generator.=.$this-
94de0 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 65 72 61 74 6f 72 28 >composer->getAutoloadGenerator(
94e00 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 70 6f 73 65 72 2d 3e );.$packages.=.$this->composer->
94e20 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
94e40 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 6c 50 61 63 6b 61 67 Repository()->getCanonicalPackag
94e60 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 72 61 74 6f 72 2d 3e es();.$packageMap.=.$generator->
94e80 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 6d 70 6f 73 65 72 2d buildPackageMap($this->composer-
94ea0 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 20 24 70 61 63 6b >getInstallationManager(),.$pack
94ec0 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 67 65 6e 65 72 61 74 age,.$packages);.$map.=.$generat
94ee0 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 67 65 4d 61 70 2c 20 or->parseAutoloads($packageMap,.
94f00 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 3d 20 24 67 65 6e 65 $package);.$this->loader.=.$gene
94f20 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 74 68 69 73 rator->createLoader($map);.$this
94f40 2d 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 ->loader->register();..return.$s
94f60 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 7d 0a 0a 0a 0a cripts[$event->getName()];.}....
94f80 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 50 68 70 53 63 72 69 ....protected.function.isPhpScri
94fa0 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 6c 73 65 20 3d 3d 3d pt($callable).{.return.false.===
94fc0 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 26 20 66 61 6c 73 65 .strpos($callable,.'.').&&.false
94fe0 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 3a 27 29 3b 0a 7d 0a .!==.strpos($callable,.'::');.}.
95000 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
95020 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 poser\Script;..use.Composer\Comp
95040 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
95060 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 63 68 65 72 5c e;.use.Composer\EventDispatcher\
95080 45 76 65 6e 74 20 61 73 20 42 61 73 65 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 Event.as.BaseEvent;........class
950a0 20 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 .Event.extends.BaseEvent.{....pr
950c0 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f ivate.$composer;.....private.$io
950e0 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a ;.....private.$devMode;.........
95100 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 ...public.function.__construct($
95120 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 65 name,.Composer.$composer,.IOInte
95140 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 2c 20 61 72 72 rface.$io,.$devMode.=.false,.arr
95160 61 79 20 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 6c 61 67 73 ay.$args.=.array(),.array.$flags
95180 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 6f 6e 73 74 72 75 63 .=.array()).{.parent::__construc
951a0 74 28 24 6e 61 6d 65 2c 20 24 61 72 67 73 2c 20 24 66 6c 61 67 73 29 3b 0a 24 74 68 69 73 2d 3e t($name,.$args,.$flags);.$this->
951c0 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 6f 20 composer.=.$composer;.$this->io.
951e0 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 24 64 65 76 4d 6f 64 65 =.$io;.$this->devMode.=.$devMode
95200 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 43 6f 6d ;.}.......public.function.getCom
95220 70 6f 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 poser().{.return.$this->composer
95240 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 49 4f 28 ;.}.......public.function.getIO(
95260 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 ).{.return.$this->io;.}.......pu
95280 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 4d 6f 64 65 28 29 0a 7b 0a 72 65 74 75 blic.function.isDevMode().{.retu
952a0 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a rn.$this->devMode;.}.}.<?php....
952c0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 ........namespace.Composer\Scrip
952e0 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 45 76 65 6e 74 73 0a 7b 0a 0a t;........class.ScriptEvents.{..
95300 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 ......const.PRE_INSTALL_CMD.=.'p
95320 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 re-install-cmd';.........const.P
95340 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d OST_INSTALL_CMD.=.'post-install-
95360 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 55 50 44 41 54 45 5f 43 cmd';.........const.PRE_UPDATE_C
95380 4d 44 20 3d 20 27 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 MD.=.'pre-update-cmd';.........c
953a0 6f 6e 73 74 20 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 75 70 64 onst.POST_UPDATE_CMD.=.'post-upd
953c0 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 53 54 41 54 ate-cmd';.........const.PRE_STAT
953e0 55 53 5f 43 4d 44 20 3d 20 27 70 72 65 2d 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a US_CMD.=.'pre-status-cmd';......
95400 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 20 3d 20 27 70 6f 73 74 ...const.POST_STATUS_CMD.=.'post
95420 2d 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 -status-cmd';...........const.PR
95440 45 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 20 3d 20 27 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d E_AUTOLOAD_DUMP.=.'pre-autoload-
95460 64 75 6d 70 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 41 55 54 4f 4c 4f dump';.........const.POST_AUTOLO
95480 41 44 5f 44 55 4d 50 20 3d 20 27 70 6f 73 74 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a AD_DUMP.=.'post-autoload-dump';.
954a0 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f ........const.POST_ROOT_PACKAGE_
954c0 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 72 6f 6f 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 INSTALL.=.'post-root-package-ins
954e0 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 43 52 45 41 54 tall';..........const.POST_CREAT
95500 45 5f 50 52 4f 4a 45 43 54 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 63 72 65 61 74 65 2d 70 72 6f E_PROJECT_CMD.=.'post-create-pro
95520 6a 65 63 74 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 41 52 43 ject-cmd';.........const.PRE_ARC
95540 48 49 56 45 5f 43 4d 44 20 3d 20 27 70 72 65 2d 61 72 63 68 69 76 65 2d 63 6d 64 27 3b 0a 0a 0a HIVE_CMD.=.'pre-archive-cmd';...
95560 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 41 52 43 48 49 56 45 5f 43 4d 44 20 3d 20 27 ......const.POST_ARCHIVE_CMD.=.'
95580 70 6f 73 74 2d 61 72 63 68 69 76 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 post-archive-cmd';..........cons
955a0 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 t.PRE_PACKAGE_INSTALL.=.'pre-pac
955c0 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f kage-install';..........const.PO
955e0 53 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 ST_PACKAGE_INSTALL.=.'post-packa
95600 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f ge-install';..........const.PRE_
95620 50 41 43 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 PACKAGE_UPDATE.=.'pre-package-up
95640 64 61 74 65 27 3b 0a 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 date';..........const.POST_PACKA
95660 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 GE_UPDATE.=.'post-package-update
95680 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 4e ';..........const.PRE_PACKAGE_UN
956a0 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c INSTALL.=.'pre-package-uninstall
956c0 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 ';..........const.POST_PACKAGE_U
956e0 4e 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 NINSTALL.=.'post-package-uninsta
95700 6c 6c 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ll';.}.<?php............namespac
95720 65 20 43 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 e.Composer\Script;.......class.C
95740 6f 6d 6d 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 ommandEvent.extends.Event.{.}.<?
95760 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
95780 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 r\Script;..use.Composer\Installe
957a0 72 5c 50 61 63 6b 61 67 65 45 76 65 6e 74 20 61 73 20 42 61 73 65 50 61 63 6b 61 67 65 45 76 65 r\PackageEvent.as.BasePackageEve
957c0 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 20 65 78 74 nt;.......class.PackageEvent.ext
957e0 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a ends.BasePackageEvent.{.}.<?php.
95800 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e ...........namespace.Composer\In
95820 73 74 61 6c 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e staller;.......class.PackageEven
95840 74 73 0a 7b 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 49 4e ts.{........const.PRE_PACKAGE_IN
95860 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a STALL.=.'pre-package-install';..
95880 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 49 4e 53 54 41 4c .......const.POST_PACKAGE_INSTAL
958a0 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a L.=.'post-package-install';.....
958c0 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 ....const.PRE_PACKAGE_UPDATE.=.'
958e0 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e pre-package-update';.........con
95900 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 6f 73 74 2d 70 st.POST_PACKAGE_UPDATE.=.'post-p
95920 61 63 6b 61 67 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 52 ackage-update';.........const.PR
95940 45 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 E_PACKAGE_UNINSTALL.=.'pre-packa
95960 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 ge-uninstall';.........const.POS
95980 54 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b T_PACKAGE_UNINSTALL.=.'post-pack
959a0 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a age-uninstall';.}.<?php.........
959c0 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;
959e0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d ..use.Composer\Composer;.use.Com
95a00 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 6c 69 63 79 49 poser\DependencyResolver\PolicyI
95a20 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 nterface;.use.Composer\Dependenc
95a40 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 yResolver\Operation\OperationInt
95a60 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 erface;.use.Composer\DependencyR
95a80 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 6e esolver\Pool;.use.Composer\Depen
95aa0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f dencyResolver\Request;.use.Compo
95ac0 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 3b 0a 75 73 65 20 43 ser\EventDispatcher\Event;.use.C
95ae0 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
95b00 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 oser\Repository\CompositeReposit
95b20 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 20 ory;.......class.InstallerEvent.
95b40 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 extends.Event.{....private.$comp
95b60 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 oser;.....private.$io;.....priva
95b80 74 65 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6f 6c 69 63 79 te.$devMode;.....private.$policy
95ba0 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ;.....private.$pool;.....private
95bc0 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 .$installedRepo;.....private.$re
95be0 71 75 65 73 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a quest;.....private.$operations;.
95c00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ..............public.function.__
95c20 63 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 construct($eventName,.Composer.$
95c40 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d composer,.IOInterface.$io,.$devM
95c60 6f 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f ode,.PolicyInterface.$policy,.Po
95c80 6f 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 24 69 ol.$pool,.CompositeRepository.$i
95ca0 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 71 75 65 73 74 20 24 72 65 71 75 65 73 74 2c 20 nstalledRepo,.Request.$request,.
95cc0 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 array.$operations.=.array()).{.p
95ce0 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a arent::__construct($eventName);.
95d00 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 .$this->composer.=.$composer;.$t
95d20 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 65 20 3d 20 his->io.=.$io;.$this->devMode.=.
95d40 24 64 65 76 4d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 $devMode;.$this->policy.=.$polic
95d60 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 69 73 2d 3e 69 y;.$this->pool.=.$pool;.$this->i
95d80 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 24 nstalledRepo.=.$installedRepo;.$
95da0 74 68 69 73 2d 3e 72 65 71 75 65 73 74 20 3d 20 24 72 65 71 75 65 73 74 3b 0a 24 74 68 69 73 2d this->request.=.$request;.$this-
95dc0 3e 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a >operations.=.$operations;.}....
95de0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 0a 7b .public.function.getComposer().{
95e00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 .return.$this->composer;.}.....p
95e20 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 72 6e 20 ublic.function.getIO().{.return.
95e40 24 74 68 69 73 2d 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 $this->io;.}.....public.function
95e60 20 69 73 44 65 76 4d 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 .isDevMode().{.return.$this->dev
95e80 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 Mode;.}.....public.function.getP
95ea0 6f 6c 69 63 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 3b 0a olicy().{.return.$this->policy;.
95ec0 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 6f 6f 6c 28 29 0a }.....public.function.getPool().
95ee0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c {.return.$this->pool;.}.....publ
95f00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 28 29 0a 7b ic.function.getInstalledRepo().{
95f20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 7d 0a .return.$this->installedRepo;.}.
95f40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 65 73 74 28 29 ....public.function.getRequest()
95f60 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a .{.return.$this->request;.}.....
95f80 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 29 0a public.function.getOperations().
95fa0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a {.return.$this->operations;.}.}.
95fc0 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
95fe0 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 52 65 70 ser\Installer;..use.Composer\Rep
96000 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 ository\InstalledRepositoryInter
96020 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 face;.use.Composer\Package\Packa
96040 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 6f 70 49 geInterface;.........class.NoopI
96060 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 6e 74 nstaller.implements.InstallerInt
96080 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 70 70 erface.{....public.function.supp
960a0 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 74 72 75 65 orts($packageType).{.return.true
960c0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c ;.}.....public.function.isInstal
960e0 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 led(InstalledRepositoryInterface
96100 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
96120 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 e).{.return.$repo->hasPackage($p
96140 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 ackage);.}.....public.function.i
96160 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
96180 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
961a0 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 24 kage).{.if.(!$repo->hasPackage($
961c0 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 61 67 65 28 63 6c package)).{.$repo->addPackage(cl
961e0 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 one.$package);.}.}.....public.fu
96200 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 nction.update(InstalledRepositor
96220 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 61 yInterface.$repo,.PackageInterfa
96240 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 74 ce.$initial,.PackageInterface.$t
96260 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 arget).{.if.(!$repo->hasPackage(
96280 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 $initial)).{.throw.new.\InvalidA
962a0 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
962c0 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 .installed:.'.$initial);.}..$rep
962e0 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 0a 69 66 20 28 o->removePackage($initial);.if.(
96300 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 29 20 7b 0a 24 !$repo->hasPackage($target)).{.$
96320 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 67 65 74 29 3b repo->addPackage(clone.$target);
96340 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 69 6e 73 74 61 .}.}.....public.function.uninsta
96360 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.
96380 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
963a0 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b ).{.if.(!$repo->hasPackage($pack
963c0 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 72 67 75 6d 65 age)).{.throw.new.\InvalidArgume
963e0 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 6e 73 74 ntException('Package.is.not.inst
96400 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 72 65 70 6f 2d 3e 72 65 6d alled:.'.$package);.}.$repo->rem
96420 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ovePackage($package);.}.....publ
96440 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 ic.function.getInstallPath(Packa
96460 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 geInterface.$package).{.$targetD
96480 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a ir.=.$package->getTargetDir();..
964a0 72 65 74 75 72 6e 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 return.$package->getPrettyName()
964c0 20 2e 20 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 ...($targetDir.?.'/'.$targetDir.
964e0 3a 20 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 :.'');.}.}.<?php............name
96500 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 space.Composer\Installer;..use.C
96520 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f omposer\Repository\InstalledRepo
96540 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 50 61 sitoryInterface;.use.Composer\Pa
96560 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c ckage\PackageInterface;.......cl
96580 61 73 73 20 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 ass.MetapackageInstaller.impleme
965a0 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c nts.InstallerInterface.{....publ
965c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 ic.function.supports($packageTyp
965e0 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 6d 65 e).{.return.$packageType.===.'me
96600 74 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tapackage';.}.....public.functio
96620 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 n.isInstalled(InstalledRepositor
96640 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 61 yInterface.$repo,.PackageInterfa
96660 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 ce.$package).{.return.$repo->has
96680 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 Package($package);.}.....public.
966a0 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 6f 73 69 function.install(InstalledReposi
966c0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
966e0 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b rface.$package).{.$repo->addPack
96700 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 age(clone.$package);.}.....publi
96720 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 73 c.function.update(InstalledRepos
96740 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 itoryInterface.$repo,.PackageInt
96760 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 erface.$initial,.PackageInterfac
96780 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b e.$target).{.if.(!$repo->hasPack
967a0 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 age($initial)).{.throw.new.\Inva
967c0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 lidArgumentException('Package.is
967e0 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a .not.installed:.'.$initial);.}..
96800 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 0a $repo->removePackage($initial);.
96820 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 67 65 74 29 $repo->addPackage(clone.$target)
96840 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 61 6c ;.}.....public.function.uninstal
96860 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 l(InstalledRepositoryInterface.$
96880 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 repo,.PackageInterface.$package)
968a0 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 .{.if.(!$repo->hasPackage($packa
968c0 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 72 67 75 6d 65 6e ge)).{.throw.new.\InvalidArgumen
968e0 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 6e 73 74 61 tException('Package.is.not.insta
96900 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d lled:.'.$package);.}..$repo->rem
96920 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ovePackage($package);.}.....publ
96940 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 ic.function.getInstallPath(Packa
96960 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 27 geInterface.$package).{.return.'
96980 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ';.}.}.<?php............namespac
969a0 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f e.Composer\Installer;..use.Compo
969c0 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ser\IO\IOInterface;.use.Composer
969e0 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 \Composer;.use.Composer\Download
96a00 65 72 5c 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 3b 0a 75 73 65 20 43 6f 6d er\PearPackageExtractor;.use.Com
96a20 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
96a40 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 50 61 63 6b toryInterface;.use.Composer\Pack
96a60 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 age\PackageInterface;.use.Compos
96a80 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a er\Util\ProcessExecutor;........
96aa0 63 6c 61 73 73 20 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 62 72 class.PearInstaller.extends.Libr
96ac0 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e aryInstaller.{........public.fun
96ae0 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
96b00 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.=.'
96b20 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 pear-library').{.parent::__const
96b40 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a ruct($io,.$composer,.$type);.}..
96b60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c ...public.function.update(Instal
96b80 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
96ba0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 ckageInterface.$initial,.Package
96bc0 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e Interface.$target).{.$this->unin
96be0 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 stall($repo,.$initial);.$this->i
96c00 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 nstall($repo,.$target);.}..prote
96c20 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
96c40 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 eInterface.$package).{.parent::i
96c60 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 70 61 72 65 6e 74 3a 3a 69 6e nstallCode($package);.parent::in
96c80 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 0a 24 69 73 57 69 6e 64 6f 77 73 20 3d 20 itializeBinDir();..$isWindows.=.
96ca0 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
96cc0 4c 44 27 29 3b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 2e LD');.$php_bin.=.$this->binDir..
96ce0 20 28 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 .($isWindows.?.'/composer-php.ba
96d00 74 27 20 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 29 3b 0a 0a 69 66 20 28 21 24 69 73 t'.:.'/composer-php');..if.(!$is
96d20 57 69 6e 64 6f 77 73 29 20 7b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 27 2f 75 73 72 2f 62 69 6e 2f Windows).{.$php_bin.=.'/usr/bin/
96d40 65 6e 76 20 27 20 2e 20 24 70 68 70 5f 62 69 6e 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 50 61 74 env.'...$php_bin;.}..$installPat
96d60 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 h.=.$this->getInstallPath($packa
96d80 67 65 29 3b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 6f 73 27 20 3d 3e 20 24 69 73 57 ge);.$vars.=.array(.'os'.=>.$isW
96da0 69 6e 64 6f 77 73 20 3f 20 27 77 69 6e 64 6f 77 73 27 20 3a 20 27 6c 69 6e 75 78 27 2c 0a 27 70 indows.?.'windows'.:.'linux',.'p
96dc0 68 70 5f 62 69 6e 27 20 3d 3e 20 24 70 68 70 5f 62 69 6e 2c 0a 27 70 65 61 72 5f 70 68 70 27 20 hp_bin'.=>.$php_bin,.'pear_php'.
96de0 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 70 68 70 5f 64 69 72 27 20 3d 3e 20 24 69 =>.$installPath,.'php_dir'.=>.$i
96e00 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 62 69 6e 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c nstallPath,.'bin_dir'.=>.$instal
96e20 6c 50 61 74 68 20 2e 20 27 2f 62 69 6e 27 2c 0a 27 64 61 74 61 5f 64 69 72 27 20 3d 3e 20 24 69 lPath...'/bin',.'data_dir'.=>.$i
96e40 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 64 61 74 61 27 2c 0a 27 76 65 72 73 69 6f 6e 27 20 nstallPath...'/data',.'version'.
96e60 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c =>.$package->getPrettyVersion(),
96e80 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 .);..$packageArchive.=.$this->ge
96ea0 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 70 61 74 68 69 tInstallPath($package).'/'.pathi
96ec0 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 48 nfo($package->getDistUrl(),.PATH
96ee0 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 20 3d INFO_BASENAME);.$pearExtractor.=
96f00 20 6e 65 77 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 28 24 70 61 63 6b 61 .new.PearPackageExtractor($packa
96f20 67 65 41 72 63 68 69 76 65 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 2d 3e 65 78 74 72 geArchive);.$pearExtractor->extr
96f40 61 63 74 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 actTo($this->getInstallPath($pac
96f60 6b 61 67 65 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 kage),.array('php'.=>.'/',.'scri
96f80 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 2c 20 27 64 61 74 61 27 20 3d 3e 20 27 2f 64 61 74 61 27 pt'.=>.'/bin',.'data'.=>.'/data'
96fa0 29 2c 20 24 76 61 72 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 ),.$vars);..if.($this->io->isVer
96fc0 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 45 72 72 6f 72 28 bose()).{.$this->io->writeError(
96fe0 27 20 20 20 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c '....Cleaning.up');.}.$this->fil
97000 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 29 esystem->unlink($packageArchive)
97020 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 42 69 6e 61 72 ;.}..protected.function.getBinar
97040 69 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 0a 7b ies(PackageInterface.$package).{
97060 0a 24 62 69 6e 61 72 69 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 .$binariesPath.=.$this->getInsta
97080 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 27 2f 62 69 6e 2f 27 3b 0a 24 62 69 6e llPath($package)...'/bin/';.$bin
970a0 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 aries.=.array();.if.(file_exists
970c0 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 6e 65 77 20 ($binariesPath)).{.foreach.(new.
970e0 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 62 69 6e 61 72 69 65 73 50 61 74 \FilesystemIterator($binariesPat
97100 68 2c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 4b 45 59 5f 41 53 5f 46 h,.\FilesystemIterator::KEY_AS_F
97120 49 4c 45 4e 41 4d 45 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 43 ILENAME.|.\FilesystemIterator::C
97140 55 52 52 45 4e 54 5f 41 53 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 20 24 66 69 6c 65 4e 61 6d 65 URRENT_AS_FILEINFO).as.$fileName
97160 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 24 76 61 6c 75 65 2d 3e 69 73 44 69 72 .=>.$value).{.if.(!$value->isDir
97180 28 29 29 20 7b 0a 24 62 69 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 69 6e 2f 27 2e 24 66 69 6c 65 ()).{.$binaries[].=.'bin/'.$file
971a0 4e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d Name;.}.}.}..return.$binaries;.}
971c0 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 42 ..protected.function.initializeB
971e0 69 6e 44 69 72 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 inDir().{.parent::initializeBinD
97200 69 72 28 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 62 ir();.file_put_contents($this->b
97220 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 inDir.'/composer-php',.$this->ge
97240 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 40 63 68 6d nerateUnixyPhpProxyCode());.@chm
97260 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 27 od($this->binDir.'/composer-php'
97280 2c 20 30 37 37 37 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 ,.0777);.file_put_contents($this
972a0 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 24 74 ->binDir.'/composer-php.bat',.$t
972c0 68 69 73 2d 3e 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 his->generateWindowsPhpProxyCode
972e0 28 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 ());.@chmod($this->binDir.'/comp
97300 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 30 37 37 37 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 oser-php.bat',.0777);.}..protect
97320 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 72 6f 78 79 ed.function.generateWindowsProxy
97340 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 20 3d 20 24 Code($bin,.$link).{.$binPath.=.$
97360 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
97380 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 3d 3d 3d 20 th($link,.$bin);.if.('.bat'.===.
973a0 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 20 27 63 substr($bin,.-4)).{.$caller.=.'c
973c0 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 6e 28 24 all';.}.else.{.$handle.=.fopen($
973e0 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 64 6c 65 bin,.'r');.$line.=.fgets($handle
97400 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 6d 61 74 );.fclose($handle);.if.(preg_mat
97420 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 5b 5e 2f ch('{^#!/(?:usr/bin/env.)?(?:[^/
97440 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 29 20 7b ]+/)*(.+)$}m',.$line,.$match)).{
97460 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 20 65 6c .$caller.=.trim($match[1]);.}.el
97480 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 se.{.$caller.=.'php';.}..if.($ca
974a0 6c 6c 65 72 20 3d 3d 3d 20 27 70 68 70 27 29 20 7b 0a 72 65 74 75 72 6e 20 22 40 65 63 68 6f 20 ller.===.'php').{.return."@echo.
974c0 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 64 20 25 7e 64 off\r\n".."pushd..\r\n".."cd.%~d
974e0 70 30 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 50 48 50 5f 50 52 4f 58 59 3d 25 43 44 25 5c 5c 63 6f p0\r\n".."set.PHP_PROXY=%CD%\\co
97500 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 50 72 6f 63 65 mposer-php.bat\r\n".."cd.".Proce
97520 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 ssExecutor::escape(dirname($binP
97540 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
97560 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".
97580 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 22 25 50 48 50 5f 50 52 4f 58 59 25 20 5c 22 25 42 49 4e ."popd\r\n".."%PHP_PROXY%.\"%BIN
975a0 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 _TARGET%\".%*\r\n";.}.}..return.
975c0 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a "@echo.off\r\n".."pushd..\r\n"..
975e0 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 50 72 6f 63 65 73 73 45 78 65 "cd.%~dp0\r\n".."cd.".ProcessExe
97600 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 cutor::escape(dirname($binPath))
97620 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c 22 ."\r\n".."set.BIN_TARGET=%CD%\\"
97640 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f 70 .basename($binPath)."\r\n".."pop
97660 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 52 47 45 54 25 d\r\n"..$caller.".\"%BIN_TARGET%
97680 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 74 69 6f 6e 20 \".%*\r\n";.}..private.function.
976a0 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 28 29 0a 7b 0a generateWindowsPhpProxyCode().{.
976c0 24 62 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d $binToVendor.=.$this->filesystem
976e0 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 ->findShortestPath($this->binDir
97700 2c 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 ,.$this->vendorDir,.true);..retu
97720 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 63 61 6c 20 65 rn."@echo.off\r\n"..."setlocal.e
97740 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 2e 0a 22 73 65 nabledelayedexpansion\r\n"..."se
97760 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 20 56 45 4e 44 t.BIN_DIR=%~dp0\r\n"..."set.VEND
97780 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 65 6e 64 6f 72 OR_DIR=%BIN_DIR%\\".$binToVendor
977a0 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 2e 0a 22 46 4f ."\r\n"..."set.DIRS=.\r\n"..."FO
977c0 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 2a 29 20 44 4f R./D.%%V.IN.(%VENDOR_DIR%\\*).DO
977e0 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 4e 20 28 25 25 .(\r\n"..."....FOR./D.%%P.IN.(%%
97800 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 73 65 74 20 44 V\\*).DO.(\r\n"..."........set.D
97820 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 20 20 29 5c 72 IRS=!DIRS!;%%~fP\r\n"..."....)\r
97840 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 20 69 6e 63 6c \n"...")\r\n"..."php.exe.-d.incl
97860 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 0a 70 72 69 76 ude_path=!DIRS!.%*\r\n";.}..priv
97880 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 68 70 50 72 6f ate.function.generateUnixyPhpPro
978a0 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 74 68 69 73 2d xyCode().{.$binToVendor.=.$this-
978c0 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 74 68 28 24 74 >filesystem->findShortestPath($t
978e0 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 69 72 2c 20 74 his->binDir,.$this->vendorDir,.t
97900 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 6e 76 20 73 68 rue);..return."#!/usr/bin/env.sh
97920 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 4e 5f 44 49 52 \n".."SRC_DIR=`pwd`\n".."BIN_DIR
97940 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 49 52 3d 5c 24 =`dirname.$0`\n".."VENDOR_DIR=\$
97960 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 69 6e 54 6f 56 BIN_DIR/".escapeshellarg($binToV
97980 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 0a 22 66 6f 72 endor)."\n".."DIRS=\"\"\n".."for
979a0 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 64 6f 5c 6e 22 .vendor.in.\$VENDOR_DIR/*;.do\n"
979c0 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 20 5d 3b 20 74 .."....if.[.-d.\"\$vendor\".];.t
979e0 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 65 20 69 6e 20 hen\n".."........for.package.in.
97a00 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 20 20 20 20 20 \$vendor/*;.do\n".."............
97a20 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 65 6e 5c 6e 22 if.[.-d.\"\$package\".];.then\n"
97a40 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 24 7b 44 49 52 .."................DIRS=\"\${DIR
97a60 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 20 20 20 20 20 S}:\${package}\"\n".."..........
97a80 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 22 20 20 20 20 ..fi\n".."........done\n".."....
97aa0 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 63 6c 75 64 65 fi\n".."done\n".."php.-d.include
97ac0 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 7d 0a 3c 3f 70 _path=\".\$DIRS\".$@\n";.}.}.<?p
97ae0 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
97b00 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 67 \Installer;..use.Composer\Packag
97b20 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
97b40 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
97b60 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 .Composer\Repository\InstalledRe
97b80 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\
97ba0 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 73 73 20 50 72 Util\Filesystem;........class.Pr
97bc0 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 6e 73 74 61 6c ojectInstaller.implements.Instal
97be0 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 74 61 6c 6c 50 lerInterface.{.private.$installP
97c00 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 65 72 3b 0a 70 ath;.private.$downloadManager;.p
97c20 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 20 66 75 6e 63 rivate.$filesystem;..public.func
97c40 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 44 tion.__construct($installPath,.D
97c60 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 ownloadManager.$dm).{.$this->ins
97c80 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 74 61 6c 6c 50 tallPath.=.rtrim(strtr($installP
97ca0 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 24 74 68 69 73 ath,.'\\',.'/'),.'/').'/';.$this
97cc0 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 68 69 73 2d 3e ->downloadManager.=.$dm;.$this->
97ce0 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 3b 0a 7d 0a 0a filesystem.=.new.Filesystem;.}..
97d00 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 72 74 73 28 24 ......public.function.supports($
97d20 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 0a 7d 0a 0a 0a packageType).{.return.true;.}...
97d40 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 49 6e ..public.function.isInstalled(In
97d60 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f stalledRepositoryInterface.$repo
97d80 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 ,.PackageInterface.$package).{.r
97da0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eturn.false;.}.....public.functi
97dc0 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e on.install(InstalledRepositoryIn
97de0 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 terface.$repo,.PackageInterface.
97e00 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 24 74 68 69 73 $package).{.$installPath.=.$this
97e20 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 73 74 73 28 24 ->installPath;.if.(file_exists($
97e40 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 65 73 79 73 74 installPath).&&.!$this->filesyst
97e60 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 29 29 20 7b 0a em->isDirEmpty($installPath)).{.
97e80 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
97ea0 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 74 61 6c 6c 50 ion("Project.directory.$installP
97ec0 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 21 69 73 5f 64 ath.is.not.empty.");.}.if.(!is_d
97ee0 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 69 6e 73 74 61 ir($installPath)).{.mkdir($insta
97f00 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 73 2d 3e 64 6f llPath,.0777,.true);.}.$this->do
97f20 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 63 6b 61 67 65 wnloadManager->download($package
97f40 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 69 63 20 66 75 ,.$installPath);.}.....public.fu
97f60 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 nction.update(InstalledRepositor
97f80 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 61 yInterface.$repo,.PackageInterfa
97fa0 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 74 ce.$initial,.PackageInterface.$t
97fc0 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 41 72 67 75 6d arget).{.throw.new.\InvalidArgum
97fe0 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 22 29 3b 0a 7d entException("not.supported");.}
98000 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 .....public.function.uninstall(I
98020 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 nstalledRepositoryInterface.$rep
98040 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a o,.PackageInterface.$package).{.
98060 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
98080 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 ion("not.supported");.}........p
980a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 ublic.function.getInstallPath(Pa
980c0 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
980e0 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 3f 70 68 70 0a n.$this->installPath;.}.}.<?php.
98100 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e ...........namespace.Composer\In
98120 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 6f 73 65 72 3b staller;..use.Composer\Composer;
98140 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
98160 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 e.Composer\Repository\InstalledR
98180 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 epositoryInterface;.use.Composer
981a0 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
981c0 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
981e0 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 0a 0a poser\Util\ProcessExecutor;.....
98200 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 65 6d ...class.LibraryInstaller.implem
98220 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 65 63 ents.InstallerInterface.{.protec
98240 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 6f 72 ted.$composer;.protected.$vendor
98260 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 74 65 Dir;.protected.$binDir;.protecte
98280 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 24 69 d.$downloadManager;.protected.$i
982a0 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 24 66 o;.protected.$type;.protected.$f
982c0 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 63 74 ilesystem;..........public.funct
982e0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c ion.__construct(IOInterface.$io,
98300 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 6c 69 .Composer.$composer,.$type.=.'li
98320 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 20 3d brary',.Filesystem.$filesystem.=
98340 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 6d 70 .null).{.$this->composer.=.$comp
98360 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 20 24 oser;.$this->downloadManager.=.$
98380 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 3b 0a composer->getDownloadManager();.
983a0 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 20 24 $this->io.=.$io;.$this->type.=.$
983c0 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 6c 65 type;..$this->filesystem.=.$file
983e0 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 68 69 system.?:.new.Filesystem();.$thi
98400 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 2d 3e s->vendorDir.=.rtrim($composer->
98420 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 2c 20 getConfig()->get('vendor-dir'),.
98440 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 6f 6d '/');.$this->binDir.=.rtrim($com
98460 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 69 72 poser->getConfig()->get('bin-dir
98480 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 6e 20 '),.'/');.}.....public.function.
984a0 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 6e 20 supports($packageType).{.return.
984c0 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 7c 20 $packageType.===.$this->type.||.
984e0 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 62 6c null.===.$this->type;.}.....publ
98500 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 6c 65 ic.function.isInstalled(Installe
98520 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b dRepositoryInterface.$repo,.Pack
98540 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 ageInterface.$package).{.return.
98560 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 20 69 $repo->hasPackage($package).&&.i
98580 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 74 68 s_readable($this->getInstallPath
985a0 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 74 69 ($package));.}.....public.functi
985c0 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e on.install(InstalledRepositoryIn
985e0 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 terface.$repo,.PackageInterface.
98600 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 65 6e $package).{.$this->initializeVen
98620 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 73 2d dorDir();.$downloadPath.=.$this-
98640 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 69 66 >getInstallPath($package);....if
98660 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 26 26 .(!is_readable($downloadPath).&&
98680 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 7b 0a .$repo->hasPackage($package)).{.
986a0 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 29 3b $this->removeBinaries($package);
986c0 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 65 29 .}..$this->installCode($package)
986e0 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 61 67 ;.$this->installBinaries($packag
98700 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 63 6b e);.if.(!$repo->hasPackage($pack
98720 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 65 20 age)).{.$repo->addPackage(clone.
98740 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 74 69 $package);.}.}.....public.functi
98760 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 on.update(InstalledRepositoryInt
98780 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 erface.$repo,.PackageInterface.$
987a0 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
987c0 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 6e 69 t).{.if.(!$repo->hasPackage($ini
987e0 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 75 6d tial)).{.throw.new.\InvalidArgum
98800 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 6e 73 entException('Package.is.not.ins
98820 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 3e 69 talled:.'.$initial);.}..$this->i
98840 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 72 65 nitializeVendorDir();..$this->re
98860 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 3e 75 moveBinaries($initial);.$this->u
98880 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 24 74 pdateCode($initial,.$target);.$t
988a0 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 0a 24 his->installBinaries($target);.$
988c0 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 0a 69 repo->removePackage($initial);.i
988e0 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 29 20 f.(!$repo->hasPackage($target)).
98900 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 67 65 {.$repo->addPackage(clone.$targe
98920 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 69 6e t);.}.}.....public.function.unin
98940 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 stall(InstalledRepositoryInterfa
98960 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b ce.$repo,.PackageInterface.$pack
98980 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 age).{.if.(!$repo->hasPackage($p
989a0 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 72 67 ackage)).{.throw.new.\InvalidArg
989c0 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
989e0 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 73 2d nstalled:.'.$package);.}..$this-
98a00 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 72 65 >removeCode($package);.$this->re
98a20 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 3e 72 moveBinaries($package);.$repo->r
98a40 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 6c 6f emovePackage($package);..$downlo
98a60 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 50 61 adPath.=.$this->getPackageBasePa
98a80 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 61 67 th($package);.if.(strpos($packag
98aa0 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 56 65 e->getName(),.'/')).{.$packageVe
98ac0 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 68 29 ndorDir.=.dirname($downloadPath)
98ae0 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 29 20 ;.if.(is_dir($packageVendorDir).
98b00 26 26 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 &&.$this->filesystem->isDirEmpty
98b20 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 70 ($packageVendorDir)).{.@rmdir($p
98b40 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ackageVendorDir);.}.}.}.....publ
98b60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 ic.function.getInstallPath(Packa
98b80 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 geInterface.$package).{.$targetD
98ba0 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a ir.=.$package->getTargetDir();..
98bc0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 return.$this->getPackageBasePath
98be0 28 24 70 61 63 6b 61 67 65 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 ($package)...($targetDir.?.'/'.$
98c00 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 targetDir.:.'');.}..protected.fu
98c20 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 50 61 63 6b 61 67 nction.getPackageBasePath(Packag
98c40 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e eInterface.$package).{.$this->in
98c60 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 74 itializeVendorDir();..return.($t
98c80 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3f 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 his->vendorDir.?.$this->vendorDi
98ca0 72 2e 27 2f 27 20 3a 20 27 27 29 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 r.'/'.:.'')...$package->getPrett
98cc0 79 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 yName();.}..protected.function.i
98ce0 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 nstallCode(PackageInterface.$pac
98d00 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 kage).{.$downloadPath.=.$this->g
98d20 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e etInstallPath($package);.$this->
98d40 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 63 6b 61 downloadManager->download($packa
98d60 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 ge,.$downloadPath);.}..protected
98d80 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 .function.updateCode(PackageInte
98da0 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 rface.$initial,.PackageInterface
98dc0 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 .$target).{.$initialDownloadPath
98de0 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 69 6e 69 74 69 61 .=.$this->getInstallPath($initia
98e00 6c 29 3b 0a 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d l);.$targetDownloadPath.=.$this-
98e20 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 74 61 72 67 65 74 29 3b 0a 69 66 20 28 24 74 >getInstallPath($target);.if.($t
98e40 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 21 3d 3d 20 24 69 6e 69 74 69 61 6c 44 6f argetDownloadPath.!==.$initialDo
98e60 77 6e 6c 6f 61 64 50 61 74 68 29 20 7b 0a 0a 20 0a 20 69 66 20 28 73 75 62 73 74 72 28 24 69 6e wnloadPath).{.....if.(substr($in
98e80 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 61 itialDownloadPath,.0,.strlen($ta
98ea0 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 44 6f rgetDownloadPath)).===.$targetDo
98ec0 77 6e 6c 6f 61 64 50 61 74 68 0a 7c 7c 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 44 6f 77 6e wnloadPath.||.substr($targetDown
98ee0 6c 6f 61 64 50 61 74 68 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e loadPath,.0,.strlen($initialDown
98f00 6c 6f 61 64 50 61 74 68 29 29 20 3d 3d 3d 20 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 loadPath)).===.$initialDownloadP
98f20 61 74 68 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 43 6f 64 65 28 24 69 6e 69 74 69 ath.).{.$this->removeCode($initi
98f40 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 74 61 72 67 65 74 29 al);.$this->installCode($target)
98f60 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d ;..return;.}..$this->filesystem-
98f80 3e 72 65 6e 61 6d 65 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 24 74 >rename($initialDownloadPath,.$t
98fa0 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 77 argetDownloadPath);.}.$this->dow
98fc0 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 nloadManager->update($initial,.$
98fe0 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a target,.$targetDownloadPath);.}.
99000 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 64 65 28 50 .protected.function.removeCode(P
99020 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 ackageInterface.$package).{.$dow
99040 6e 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 nloadPath.=.$this->getPackageBas
99060 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 ePath($package);.$this->download
99080 4d 61 6e 61 67 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c Manager->remove($package,.$downl
990a0 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 oadPath);.}..protected.function.
990c0 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 getBinaries(PackageInterface.$pa
990e0 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 6e ckage).{.return.$package->getBin
99100 61 72 69 65 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 aries();.}..protected.function.i
99120 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 nstallBinaries(PackageInterface.
99140 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 3e 67 $package).{.$binaries.=.$this->g
99160 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 6e 61 etBinaries($package);.if.(!$bina
99180 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 6e 61 ries).{.return;.}.foreach.($bina
991a0 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 ries.as.$bin).{.$binPath.=.$this
991c0 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 2e 27 2f 27 2e 24 ->getInstallPath($package).'/'.$
991e0 62 69 6e 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 62 69 6e 50 61 74 68 29 29 bin;.if.(!file_exists($binPath))
99200 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 77 .{.$this->io->writeError('....<w
99220 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 62 arning>Skipped.installation.of.b
99240 69 6e 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 in.'.$bin.'.for.package.'.$packa
99260 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 20 ge->getName().':.file.not.found.
99280 69 6e 20 70 61 63 6b 61 67 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 in.package</warning>');.continue
992a0 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 61 6c 70 61 74 68 ;.}..........$binPath.=.realpath
992c0 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 6c 69 7a 65 42 69 ($binPath);..$this->initializeBi
992e0 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 44 69 72 2e 27 2f nDir();.$link.=.$this->binDir.'/
99300 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 5f 65 78 69 73 74 '.basename($bin);.if.(file_exist
99320 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 69 6e 6b 29 29 20 s($link)).{.if.(is_link($link)).
99340 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 20 26 20 7e 75 6d {.......@chmod($link,.0777.&.~um
99360 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 45 72 72 6f 72 28 ask());.}.$this->io->writeError(
99380 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 62 69 6e '....Skipped.installation.of.bin
993a0 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 .'.$bin.'.for.package.'.$package
993c0 2d 3e 67 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 ->getName().':.name.conflicts.wi
993e0 74 68 20 61 6e 20 65 78 69 73 74 69 6e 67 20 66 69 6c 65 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b th.an.existing.file');.continue;
99400 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 53 5f 56 45 52 53 .}.if.(defined('PHP_WINDOWS_VERS
99420 49 4f 4e 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 ION_BUILD')).{...if.('.bat'.!==.
99440 73 75 62 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 substr($binPath,.-4)).{.file_put
99460 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 _contents($link,.$this->generate
99480 55 6e 69 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 UnixyProxyCode($binPath,.$link))
994a0 3b 0a 40 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 ;.@chmod($link,.0777.&.~umask())
994c0 3b 0a 24 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 ;.$link..=.'.bat';.if.(file_exis
994e0 74 73 28 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 45 72 72 ts($link)).{.$this->io->writeErr
99500 6f 72 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 or('....Skipped.installation.of.
99520 62 69 6e 20 27 2e 24 62 69 6e 2e 27 2e 62 61 74 20 70 72 6f 78 79 20 66 6f 72 20 70 61 63 6b 61 bin.'.$bin.'.bat.proxy.for.packa
99540 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 61 20 2e 62 ge.'.$package->getName().':.a..b
99560 61 74 20 70 72 6f 78 79 20 77 61 73 20 61 6c 72 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 27 29 at.proxy.was.already.installed')
99580 3b 0a 7d 0a 7d 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b ;.}.}.if.(!file_exists($link)).{
995a0 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d .file_put_contents($link,.$this-
995c0 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 >generateWindowsProxyCode($binPa
995e0 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 77 64 20 3d 20 67 th,.$link));.}.}.else.{.$cwd.=.g
99600 65 74 63 77 64 28 29 3b 0a 74 72 79 20 7b 0a 0a 20 0a 20 24 72 65 6c 61 74 69 76 65 42 69 6e 20 etcwd();.try.{.....$relativeBin.
99620 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 73 =.$this->filesystem->findShortes
99640 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 50 61 74 68 29 3b 0a 63 68 64 69 72 28 64 69 tPath($link,.$binPath);.chdir(di
99660 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 79 6d rname($link));.if.(false.===.sym
99680 6c 69 6e 6b 28 24 72 65 6c 61 74 69 76 65 42 69 6e 2c 20 24 6c 69 6e 6b 29 29 20 7b 0a 74 68 72 link($relativeBin,.$link)).{.thr
996a0 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 28 29 3b 0a 7d 0a 7d 20 63 61 ow.new.\ErrorException();.}.}.ca
996c0 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 69 6c 65 5f tch.(\ErrorException.$e).{.file_
996e0 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 put_contents($link,.$this->gener
99700 61 74 65 55 6e 69 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 ateUnixyProxyCode($binPath,.$lin
99720 6b 29 29 3b 0a 7d 0a 63 68 64 69 72 28 24 63 77 64 29 3b 0a 7d 0a 40 63 68 6d 6f 64 28 24 6c 69 k));.}.chdir($cwd);.}.@chmod($li
99740 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 nk,.0777.&.~umask());.}.}..prote
99760 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 50 61 63 cted.function.removeBinaries(Pac
99780 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 kageInterface.$package).{.$binar
997a0 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 ies.=.$this->getBinaries($packag
997c0 65 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a e);.if.(!$binaries).{.return;.}.
997e0 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 6c foreach.($binaries.as.$bin).{.$l
99800 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 ink.=.$this->binDir.'/'.basename
99820 28 24 62 69 6e 29 3b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 20 7c 7c 20 66 69 ($bin);.if.(is_link($link).||.fi
99840 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 le_exists($link)).{.$this->files
99860 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 ystem->unlink($link);.}.if.(file
99880 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 24 74 68 69 73 2d 3e _exists($link.'.bat')).{.$this->
998a0 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 filesystem->unlink($link.'.bat')
998c0 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 ;.}.}.}..protected.function.init
998e0 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 ializeVendorDir().{.$this->files
99900 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 24 74 68 ystem->ensureDirectoryExists($th
99920 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 is->vendorDir);.$this->vendorDir
99940 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d .=.realpath($this->vendorDir);.}
99960 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 42 ..protected.function.initializeB
99980 69 6e 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 inDir().{.$this->filesystem->ens
999a0 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 ureDirectoryExists($this->binDir
999c0 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 );.$this->binDir.=.realpath($thi
999e0 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f s->binDir);.}..protected.functio
99a00 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 2c n.generateWindowsProxyCode($bin,
99a20 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 65 .$link).{.$binPath.=.$this->file
99a40 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 20 system->findShortestPath($link,.
99a60 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 69 $bin);.if.('.bat'.===.substr($bi
99a80 6e 2c 20 2d 34 29 20 7c 7c 20 27 2e 65 78 65 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e n,.-4).||.'.exe'.===.substr($bin
99aa0 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 6c 73 ,.-4)).{.$caller.=.'call';.}.els
99ac0 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 3b 0a e.{.$handle.=.fopen($bin,.'r');.
99ae0 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 28 24 $line.=.fgets($handle);.fclose($
99b00 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 28 3f handle);.if.(preg_match('{^#!/(?
99b20 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 24 7d :usr/bin/env.)?(?:[^/]+/)*(.+)$}
99b40 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 3d 20 m',.$line,.$match)).{.$caller.=.
99b60 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 6c 65 trim($match[1]);.}.else.{.$calle
99b80 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 45 43 48 4f 20 4f 46 r.=.'php';.}.}..return."@ECHO.OF
99ba0 46 5c 72 5c 6e 22 2e 0a 22 53 45 54 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 7e 64 70 30 2f 22 2e F\r\n".."SET.BIN_TARGET=%~dp0/".
99bc0 74 72 69 6d 28 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 62 69 trim(ProcessExecutor::escape($bi
99be0 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 6c 65 72 7d 20 nPath),.'"')."\r\n".."{$caller}.
99c00 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 0a 0a 70 72 6f \"%BIN_TARGET%\".%*\r\n";.}..pro
99c20 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 78 79 50 72 6f tected.function.generateUnixyPro
99c40 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 20 3d xyCode($bin,.$link).{.$binPath.=
99c60 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 73 74 .$this->filesystem->findShortest
99c80 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 22 23 21 2f 75 Path($link,.$bin);..return."#!/u
99ca0 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 22 60 70 77 64 sr/bin/env.sh\n"..'SRC_DIR="`pwd
99cc0 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 22 60 22 27 2e `"'."\n"..'cd."`dirname."$0"`"'.
99ce0 22 5c 6e 22 2e 0a 27 63 64 20 27 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 "\n"..'cd.'.ProcessExecutor::esc
99d00 61 70 65 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 6e 22 2e 0a 27 42 49 ape(dirname($binPath))."\n"..'BI
99d20 4e 5f 54 41 52 47 45 54 3d 22 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 N_TARGET="`pwd`/'.basename($binP
99d40 61 74 68 29 2e 22 5c 22 5c 6e 22 2e 0a 27 63 64 20 22 24 53 52 43 5f 44 49 52 22 27 2e 22 5c 6e ath)."\"\n"..'cd."$SRC_DIR"'."\n
99d60 22 2e 0a 27 22 24 42 49 4e 5f 54 41 52 47 45 54 22 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d 0a "..'"$BIN_TARGET"."$@"'."\n";.}.
99d80 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
99da0 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
99dc0 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
99de0 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 20 poser\Package\AliasPackage;.use.
99e00 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
99e20 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 79 terface;.use.Composer\Repository
99e40 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 \InstalledRepositoryInterface;.u
99e60 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 4f se.Composer\DependencyResolver\O
99e80 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 65 peration\OperationInterface;.use
99ea0 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 .Composer\DependencyResolver\Ope
99ec0 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 6d ration\InstallOperation;.use.Com
99ee0 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 poser\DependencyResolver\Operati
99f00 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 on\UpdateOperation;.use.Composer
99f20 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 6e \DependencyResolver\Operation\Un
99f40 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 44 installOperation;.use.Composer\D
99f60 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 6b ependencyResolver\Operation\Mark
99f80 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 6d AliasInstalledOperation;.use.Com
99fa0 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 poser\DependencyResolver\Operati
99fc0 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 6e on\MarkAliasUninstalledOperation
99fe0 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 78 ;.use.Composer\Util\StreamContex
9a000 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 61 tFactory;.........class.Installa
9a020 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 72 tionManager.{.private.$installer
9a040 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 72 s.=.array();.private.$cache.=.ar
9a060 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 67 ray();.private.$notifiablePackag
9a080 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 72 es.=.array();..public.function.r
9a0a0 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 67 eset().{.$this->notifiablePackag
9a0c0 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 6e es.=.array();.}.......public.fun
9a0e0 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 65 ction.addInstaller(InstallerInte
9a100 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 66 rface.$installer).{.array_unshif
9a120 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 29 t($this->installers,.$installer)
9a140 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 0a ;.$this->cache.=.array();.}.....
9a160 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 65 ..public.function.removeInstalle
9a180 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 29 r(InstallerInterface.$installer)
9a1a0 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 73 .{.if.(false.!==.($key.=.array_s
9a1c0 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 6c earch($installer,.$this->install
9a1e0 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 69 ers,.true))).{.array_splice($thi
9a200 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 3e s->installers,.$key,.1);.$this->
9a220 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 62 cache.=.array();.}.}.........pub
9a240 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 0a lic.function.disablePlugins().{.
9a260 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 69 foreach.($this->installers.as.$i
9a280 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 65 .=>.$installer).{.if.(!$installe
9a2a0 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 0a r.instanceof.PluginInstaller).{.
9a2c0 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 6c continue;.}..unset($this->instal
9a2e0 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 20 lers[$i]);.}.}...........public.
9a300 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 24 function.getInstaller($type).{.$
9a320 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 69 type.=.strtolower($type);..if.(i
9a340 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 74 sset($this->cache[$type])).{.ret
9a360 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 65 urn.$this->cache[$type];.}..fore
9a380 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 61 ach.($this->installers.as.$insta
9a3a0 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 73 ller).{.if.($installer->supports
9a3c0 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 24 ($type)).{.return.$this->cache[$
9a3e0 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 6e type].=.$installer;.}.}..throw.n
9a400 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 6e ew.\InvalidArgumentException('Un
9a420 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 0a known.installer.type:.'.$type);.
9a440 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 63 }..........public.function.isPac
9a460 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 72 kageInstalled(InstalledRepositor
9a480 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 61 yInterface.$repo,.PackageInterfa
9a4a0 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 74 ce.$package).{.if.($package.inst
9a4c0 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 72 anceof.AliasPackage).{.return.$r
9a4e0 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 68 epo->hasPackage($package).&&.$th
9a500 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 70 is->isPackageInstalled($repo,.$p
9a520 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 6e ackage->getAliasOf());.}..return
9a540 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 67 .$this->getInstaller($package->g
9a560 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 70 etType())->isInstalled($repo,.$p
9a580 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 6f ackage);.}........public.functio
9a5a0 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 72 n.execute(RepositoryInterface.$r
9a5c0 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 69 epo,.OperationInterface.$operati
9a5e0 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 4a on).{.$method.=.$operation->getJ
9a600 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 20 obType();.$this->$method($repo,.
9a620 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 6e $operation);.}........public.fun
9a640 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 63 ction.install(RepositoryInterfac
9a660 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 61 e.$repo,.InstallOperation.$opera
9a680 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
9a6a0 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 2d etPackage();.$installer.=.$this-
9a6c0 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 >getInstaller($package->getType(
9a6e0 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 24 ));.$installer->install($repo,.$
9a700 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 61 package);.$this->markForNotifica
9a720 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 20 tion($package);.}........public.
9a740 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 66 function.update(RepositoryInterf
9a760 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 72 ace.$repo,.UpdateOperation.$oper
9a780 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 3e ation).{.$initial.=.$operation->
9a7a0 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 24 getInitialPackage();.$target.=.$
9a7c0 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 0a operation->getTargetPackage();..
9a7e0 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 65 $initialType.=.$initial->getType
9a800 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 79 ();.$targetType.=.$target->getTy
9a820 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 72 pe();..if.($initialType.===.$tar
9a840 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 67 getType).{.$installer.=.$this->g
9a860 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 74 etInstaller($initialType);.$inst
9a880 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 24 aller->update($repo,.$initial,.$
9a8a0 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 74 target);.$this->markForNotificat
9a8c0 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 65 ion($target);.}.else.{.$this->ge
9a8e0 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 74 tInstaller($initialType)->uninst
9a900 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 74 all($repo,.$initial);.$this->get
9a920 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 28 Installer($targetType)->install(
9a940 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 6c $repo,.$target);.}.}........publ
9a960 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 79 ic.function.uninstall(Repository
9a980 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 74 Interface.$repo,.UninstallOperat
9a9a0 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 ion.$operation).{.$package.=.$op
9a9c0 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 65 eration->getPackage();.$installe
9a9e0 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
9aa00 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 74 ->getType());.$installer->uninst
9aa20 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 70 all($repo,.$package);.}........p
9aa40 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 65 ublic.function.markAliasInstalle
9aa60 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 72 d(RepositoryInterface.$repo,.Mar
9aa80 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 74 kAliasInstalledOperation.$operat
9aaa0 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 65 ion).{.$package.=.$operation->ge
9aac0 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 6b tPackage();..if.(!$repo->hasPack
9aae0 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 61 age($package)).{.$repo->addPacka
9ab00 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 70 ge(clone.$package);.}.}........p
9ab20 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 6c ublic.function.markAliasUninstal
9ab40 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 4d led(RepositoryInterface.$repo,.M
9ab60 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 70 arkAliasUninstalledOperation.$op
9ab80 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 6e eration).{.$package.=.$operation
9aba0 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 61 ->getPackage();..$repo->removePa
9abc0 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 63 ckage($package);.}........public
9abe0 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 65 .function.getInstallPath(Package
9ac00 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 72 Interface.$package).{.$installer
9ac20 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 2d .=.$this->getInstaller($package-
9ac40 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 2d >getType());..return.$installer-
9ac60 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 75 >getInstallPath($package);.}..pu
9ac80 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 7b blic.function.notifyInstalls().{
9aca0 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 61 .foreach.($this->notifiablePacka
9acc0 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 0a ges.as.$repoUrl.=>.$packages).{.
9ace0 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 65 ..if.(strpos($repoUrl,.'%package
9ad00 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 61 %')).{.foreach.($packages.as.$pa
9ad20 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 61 ckage).{.$url.=.str_replace('%pa
9ad40 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 65 ckage%',.$package->getPrettyName
9ad60 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 28 (),.$repoUrl);..$params.=.array(
9ad80 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 74 .'version'.=>.$package->getPrett
9ada0 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 27 yVersion(),.'version_normalized'
9adc0 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 24 .=>.$package->getVersion(),.);.$
9ade0 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 6d opts.=.array('http'.=>.array(.'m
9ae00 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 72 ethod'.=>.'POST',.'header'.=>.ar
9ae20 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 78 ray('Content-type:.application/x
9ae40 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 74 -www-form-urlencoded'),.'content
9ae60 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 27 '.=>.http_build_query($params,.'
9ae80 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 24 ',.'&'),.'timeout'.=>.3,.).);..$
9aea0 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 3a context.=.StreamContextFactory::
9aec0 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 67 getContext($url,.$opts);.@file_g
9aee0 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 78 et_contents($url,.false,.$contex
9af00 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 20 t);.}..continue;.}..$postData.=.
9af20 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 66 array('downloads'.=>.array());.f
9af40 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b oreach.($packages.as.$package).{
9af60 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 61 .$postData['downloads'][].=.arra
9af80 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 79 y(.'name'.=>.$package->getPretty
9afa0 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 67 Name(),.'version'.=>.$package->g
9afc0 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 79 etVersion(),.);.}..$opts.=.array
9afe0 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 50 ('http'.=>.array(.'method'.=>.'P
9b000 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 74 OST',.'header'.=>.array('Content
9b020 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 74 -Type:.application/json'),.'cont
9b040 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 0a ent'.=>.json_encode($postData),.
9b060 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 3d 'timeout'.=>.6,.).);..$context.=
9b080 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 78 .StreamContextFactory::getContex
9b0a0 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 6f t($repoUrl,.$opts);.@file_get_co
9b0c0 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 74 ntents($repoUrl,.false,.$context
9b0e0 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 65 );.}..$this->reset();.}..private
9b100 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 61 .function.markForNotification(Pa
9b120 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 24 ckageInterface.$package).{.if.($
9b140 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 7b package->getNotificationUrl()).{
9b160 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 6b .$this->notifiablePackages[$pack
9b180 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 6b age->getNotificationUrl()][$pack
9b1a0 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 0a age->getName()].=.$package;.}.}.
9b1c0 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
9b1e0 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 poser\Installer;.......class.Ins
9b200 74 61 6c 6c 65 72 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 tallerEvents.{..........const.PR
9b220 45 5f 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 20 3d 20 27 70 72 65 2d 64 65 E_DEPENDENCIES_SOLVING.=.'pre-de
9b240 70 65 6e 64 65 6e 63 69 65 73 2d 73 6f 6c 76 69 6e 67 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 pendencies-solving';...........c
9b260 6f 6e 73 74 20 50 4f 53 54 5f 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 20 3d onst.POST_DEPENDENCIES_SOLVING.=
9b280 20 27 70 6f 73 74 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 2d 73 6f 6c 76 69 6e 67 27 3b 0a 7d 0a .'post-dependencies-solving';.}.
9b2a0 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
9b2c0 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 43 6f 6d ser\Installer;..use.Composer\Com
9b2e0 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 61 63 6b poser;.use.Composer\Package\Pack
9b300 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 61 63 65 age;.use.Composer\IO\IOInterface
9b320 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
9b340 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
9b360 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;..
9b380 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 78 74 65 ......class.PluginInstaller.exte
9b3a0 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 65 20 24 nds.LibraryInstaller.{.private.$
9b3c0 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 73 74 61 installationManager;.private.sta
9b3e0 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 0a 0a 70 tic.$classCounter.=.0;.........p
9b400 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
9b420 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 72 2c 20 erface.$io,.Composer.$composer,.
9b440 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 5f 5f 63 $type.=.'library').{.parent::__c
9b460 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 70 6f 73 onstruct($io,.$composer,.'compos
9b480 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 69 6f 6e er-plugin');.$this->installation
9b4a0 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 Manager.=.$composer->getInstalla
9b4c0 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tionManager();.}.....public.func
9b4e0 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 tion.supports($packageType).{.re
9b500 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 73 65 72 2d turn.$packageType.===.'composer-
9b520 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 27 63 6f 6d plugin'.||.$packageType.===.'com
9b540 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 69 63 20 66 poser-installer';.}.....public.f
9b560 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
9b580 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
9b5a0 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 61 63 6b 61 face.$package).{.$extra.=.$packa
9b5c0 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 61 ge->getExtra();.if.(empty($extra
9b5e0 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 63 ['class'])).{.throw.new.\Unexpec
9b600 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 69 tedValueException('Error.while.i
9b620 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 4e nstalling.'.$package->getPrettyN
9b640 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 65 ame().',.composer-plugin.package
9b660 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 6e s.should.have.a.class.defined.in
9b680 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 29 .their.extra.key.to.be.usable.')
9b6a0 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 24 70 61 63 ;.}..parent::install($repo,.$pac
9b6c0 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 6c 75 67 69 kage);.$this->composer->getPlugi
9b6e0 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 24 70 61 63 nManager()->registerPackage($pac
9b700 6b 61 67 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 kage,.true);.}.....public.functi
9b720 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 on.update(InstalledRepositoryInt
9b740 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 erface.$repo,.PackageInterface.$
9b760 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
9b780 74 29 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 t).{.$extra.=.$target->getExtra(
9b7a0 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b );.if.(empty($extra['class'])).{
9b7c0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 .throw.new.\UnexpectedValueExcep
9b7e0 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 tion('Error.while.installing.'.$
9b800 74 61 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 target->getPrettyName().',.compo
9b820 73 65 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 ser-plugin.packages.should.have.
9b840 61 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b a.class.defined.in.their.extra.k
9b860 65 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 75 ey.to.be.usable.');.}..parent::u
9b880 70 64 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 pdate($repo,.$initial,.$target);
9b8a0 0a 24 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 .$this->composer->getPluginManag
9b8c0 65 72 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 2c 20 74 er()->registerPackage($target,.t
9b8e0 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 rue);.}.}.<?php............names
9b900 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f pace.Composer\Installer;..use.Co
9b920 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;
9b940 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c .use.Composer\Repository\Install
9b960 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e edRepositoryInterface;........in
9b980 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a terface.InstallerInterface.{....
9b9a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 ...public.function.supports($pac
9b9c0 6b 61 67 65 54 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 kageType);..........public.funct
9b9e0 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 ion.isInstalled(InstalledReposit
9ba00 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
9ba20 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 face.$package);........public.fu
9ba40 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 6f nction.install(InstalledReposito
9ba60 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
9ba80 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ace.$package);...........public.
9baa0 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 function.update(InstalledReposit
9bac0 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
9bae0 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 face.$initial,.PackageInterface.
9bb00 24 74 61 72 67 65 74 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $target);........public.function
9bb20 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e .uninstall(InstalledRepositoryIn
9bb40 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 terface.$repo,.PackageInterface.
9bb60 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $package);........public.functio
9bb80 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 n.getInstallPath(PackageInterfac
9bba0 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e.$package);.}.<?php............
9bbc0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 namespace.Composer\Installer;..u
9bbe0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 se.Composer\Composer;.use.Compos
9bc00 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\
9bc20 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 4f 70 65 DependencyResolver\Operation\Ope
9bc40 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 rationInterface;.use.Composer\De
9bc60 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 pendencyResolver\PolicyInterface
9bc80 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
9bca0 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 63 79 52 r\Pool;.use.Composer\DependencyR
9bcc0 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 esolver\Request;.use.Composer\Ev
9bce0 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 6f 73 65 entDispatcher\Event;.use.Compose
9bd00 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 r\Repository\CompositeRepository
9bd20 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 20 65 78 74 65 6e ;.......class.PackageEvent.exten
9bd40 64 73 20 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 ds.InstallerEvent.{....private.$
9bd60 6f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 operation;................public
9bd80 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 .function.__construct($eventName
9bda0 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 ,.Composer.$composer,.IOInterfac
9bdc0 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 e.$io,.$devMode,.PolicyInterface
9bde0 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 69 74 65 52 .$policy,.Pool.$pool,.CompositeR
9be00 65 70 6f 73 69 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 71 75 65 73 epository.$installedRepo,.Reques
9be20 74 20 24 72 65 71 75 65 73 74 2c 20 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 4f t.$request,.array.$operations,.O
9be40 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 69 6f 6e 29 0a 7b 0a perationInterface.$operation).{.
9be60 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 parent::__construct($eventName,.
9be80 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 $composer,.$io,.$devMode,.$polic
9bea0 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 y,.$pool,.$installedRepo,.$reque
9bec0 73 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 st,.$operations);..$this->operat
9bee0 69 6f 6e 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion.=.$operation;.}.......public
9bf00 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 .function.getOperation().{.retur
9bf20 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a n.$this->operation;.}.}.<?php...
9bf40 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 6e 73 .........namespace.Composer\Cons
9bf60 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 43 6f 6e 73 ole;..use.Symfony\Component\Cons
9bf80 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 ole\Application.as.BaseApplicati
9bfa0 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
9bfc0 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
9bfe0 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
9c000 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 5c 43 tOption;.use.Symfony\Component\C
9c020 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 onsole\Output\ConsoleOutputInter
9c040 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
9c060 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ole\Output\OutputInterface;.use.
9c080 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
9c0a0 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 6f 6d 70 \ConsoleOutput;.use.Symfony\Comp
9c0c0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f onent\Console\Formatter\OutputFo
9c0e0 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 rmatter;.use.Composer\Command;.u
9c100 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f se.Composer\Command\Helper\Dialo
9c120 67 48 65 6c 70 65 72 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 gHelper;.use.Composer\Composer;.
9c140 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 use.Composer\Factory;.use.Compos
9c160 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\
9c180 49 4f 5c 43 6f 6e 73 6f 6c 65 49 4f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c IO\ConsoleIO;.use.Composer\Json\
9c1a0 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
9c1c0 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a poser\Util\ErrorHandler;........
9c1e0 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 42 61 73 65 41 .class.Application.extends.BaseA
9c200 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f pplication.{....protected.$compo
9c220 73 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 72 69 76 61 74 65 ser;.....protected.$io;..private
9c240 20 73 74 61 74 69 63 20 24 6c 6f 67 6f 20 3d 20 27 20 20 20 5f 5f 5f 5f 5f 5f 0a 20 20 2f 20 5f .static.$logo.=.'...______.../._
9c260 5f 5f 5f 2f 5f 5f 5f 20 20 5f 5f 5f 5f 20 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f ___/___..____.___..____..____.._
9c280 5f 5f 5f 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 0a 20 2f 20 2f 20 20 20 2f 20 5f 5f 20 5c 2f 20 5f 5f _______.._____.././.../.__.\/.__
9c2a0 20 60 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 5f 2f 20 5f 20 5c 2f 20 5f 5f .`__.\/.__.\/.__.\/.___/._.\/.__
9c2c0 5f 2f 0a 2f 20 2f 5f 5f 5f 2f 20 2f 5f 2f 20 2f 20 2f 20 2f 20 2f 20 2f 20 2f 20 2f 5f 2f 20 2f _/././___/./_/./././././././_/./
9c2e0 20 2f 5f 2f 20 28 5f 5f 20 20 29 20 20 5f 5f 2f 20 2f 0a 5c 5f 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f ./_/.(__..)..__/./.\____/\____/_
9c300 2f 20 2f 5f 2f 20 2f 5f 2f 20 2e 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f 5f 5f 5f 2f 5c 5f 5f 5f 2f 5f /./_/./_/..___/\____/____/\___/_
9c320 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 5f 2f 0a 27 3b 0a 0a 70 75 /...................../_/.';..pu
9c340 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 69 66 blic.function.__construct().{.if
9c360 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 5f 73 65 74 27 29 20 26 26 20 .(function_exists('ini_set').&&.
9c380 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 78 64 65 62 75 67 27 29 29 20 7b 0a 69 6e extension_loaded('xdebug')).{.in
9c3a0 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 68 6f 77 5f 65 78 63 65 70 74 69 6f 6e 5f 74 72 61 i_set('xdebug.show_exception_tra
9c3c0 63 65 27 2c 20 66 61 6c 73 65 29 3b 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 ce',.false);.ini_set('xdebug.scr
9c3e0 65 61 6d 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 eam',.false);.}..if.(function_ex
9c400 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 73 65 74 27 ists('date_default_timezone_set'
9c420 29 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 ).&&.function_exists('date_defau
9c440 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 27 29 29 20 7b 0a 64 61 74 65 5f 64 65 66 61 75 6c lt_timezone_get')).{.date_defaul
9c460 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 28 40 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d t_timezone_set(@date_default_tim
9c480 65 7a 6f 6e 65 5f 67 65 74 28 29 29 3b 0a 7d 0a 0a 45 72 72 6f 72 48 61 6e 64 6c 65 72 3a 3a 72 ezone_get());.}..ErrorHandler::r
9c4a0 65 67 69 73 74 65 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 27 egister();.parent::__construct('
9c4c0 43 6f 6d 70 6f 73 65 72 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b 0a 7d Composer',.Composer::VERSION);.}
9c4e0 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 49 6e .....public.function.run(InputIn
9c500 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 6e 74 terface.$input.=.null,.OutputInt
9c520 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 75 6c erface.$output.=.null).{.if.(nul
9c540 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 73 74 79 6c 65 73 20 3d 20 46 61 63 74 6f l.===.$output).{.$styles.=.Facto
9c560 72 79 3a 3a 63 72 65 61 74 65 41 64 64 69 74 69 6f 6e 61 6c 53 74 79 6c 65 73 28 29 3b 0a 24 66 ry::createAdditionalStyles();.$f
9c580 6f 72 6d 61 74 74 65 72 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 6e ormatter.=.new.OutputFormatter(n
9c5a0 75 6c 6c 2c 20 24 73 74 79 6c 65 73 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e ull,.$styles);.$output.=.new.Con
9c5c0 73 6f 6c 65 4f 75 74 70 75 74 28 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 soleOutput(ConsoleOutput::VERBOS
9c5e0 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d ITY_NORMAL,.null,.$formatter);.}
9c600 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 ..return.parent::run($input,.$ou
9c620 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 tput);.}.....public.function.doR
9c640 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 un(InputInterface.$input,.Output
9c660 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d Interface.$output).{.$this->io.=
9c680 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 .new.ConsoleIO($input,.$output,.
9c6a0 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 0a 69 66 20 28 76 65 72 $this->getHelperSet());..if.(ver
9c6c0 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 32 sion_compare(PHP_VERSION,.'5.3.2
9c6e0 27 2c 20 27 3c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 ',.'<')).{.$this->getIO()->write
9c700 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6f 6d 70 6f 73 65 72 20 6f 6e 6c 79 20 6f 66 Error('<warning>Composer.only.of
9c720 66 69 63 69 61 6c 6c 79 20 73 75 70 70 6f 72 74 73 20 50 48 50 20 35 2e 33 2e 32 20 61 6e 64 20 ficially.supports.PHP.5.3.2.and.
9c740 61 62 6f 76 65 2c 20 79 6f 75 20 77 69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 65 6e 63 6f above,.you.will.most.likely.enco
9c760 75 6e 74 65 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 79 6f 75 72 20 50 48 50 20 27 2e 50 unter.problems.with.your.PHP.'.P
9c780 48 50 5f 56 45 52 53 49 4f 4e 2e 27 2c 20 75 70 67 72 61 64 69 6e 67 20 69 73 20 73 74 72 6f 6e HP_VERSION.',.upgrading.is.stron
9c7a0 67 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a gly.recommended.</warning>');.}.
9c7c0 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 .if.(defined('COMPOSER_DEV_WARNI
9c7e0 4e 47 5f 54 49 4d 45 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 27 27 3b 0a NG_TIME')).{.$commandName.=.'';.
9c800 69 66 20 28 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d if.($name.=.$this->getCommandNam
9c820 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 e($input)).{.try.{.$commandName.
9c840 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b =.$this->find($name)->getName();
9c860 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 .}.catch.(\InvalidArgumentExcept
9c880 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 69 66 20 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 21 ion.$e).{.}.}.if.($commandName.!
9c8a0 3d 3d 20 27 73 65 6c 66 2d 75 70 64 61 74 65 27 20 26 26 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 ==.'self-update'.&&.$commandName
9c8c0 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 74 69 6d 65 28 29 20 .!==.'selfupdate').{.if.(time().
9c8e0 3e 20 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 29 20 7b 0a 24 >.COMPOSER_DEV_WARNING_TIME).{.$
9c900 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 this->getIO()->writeError(sprint
9c920 66 28 27 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 f('<warning>Warning:.This.develo
9c940 70 6d 65 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 pment.build.of.composer.is.over.
9c960 33 30 20 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 30.days.old..It.is.recommended.t
9c980 6f 20 75 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 o.update.it.by.running."%s.self-
9c9a0 75 70 64 61 74 65 22 20 74 6f 20 67 65 74 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f update".to.get.the.latest.versio
9c9c0 6e 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 20 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c n.</warning>',.$_SERVER['PHP_SEL
9c9e0 46 27 5d 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 F']));.}.}.}..if.(getenv('COMPOS
9ca00 45 52 5f 4e 4f 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 ER_NO_INTERACTION')).{.$input->s
9ca20 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 etInteractive(false);.}....if.($
9ca40 6e 65 77 57 6f 72 6b 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 77 57 6f 72 6b 69 6e newWorkDir.=.$this->getNewWorkin
9ca60 67 44 69 72 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 20 3d gDir($input)).{.$oldWorkingDir.=
9ca80 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 72 28 24 6e 65 77 57 6f 72 6b 44 69 72 29 3b 0a 69 .getcwd();.chdir($newWorkDir);.i
9caa0 66 20 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 69 73 44 65 62 75 67 28 29 20 3e 3d 20 f.($this->getIO()->isDebug().>=.
9cac0 34 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 4).{.$this->getIO()->writeError(
9cae0 27 43 68 61 6e 67 65 64 20 43 57 44 20 74 6f 20 27 20 2e 20 67 65 74 63 77 64 28 29 29 3b 0a 7d 'Changed.CWD.to.'...getcwd());.}
9cb00 0a 7d 0a 0a 0a 20 24 66 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 .}....$file.=.Factory::getCompos
9cb20 65 72 46 69 6c 65 28 29 3b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 29 20 26 26 20 erFile();.if.(is_file($file).&&.
9cb40 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 is_readable($file).&&.is_array($
9cb60 63 6f 6d 70 6f 73 65 72 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 66 69 6c 65 5f 67 65 74 5f composer.=.json_decode(file_get_
9cb80 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 29 2c 20 74 72 75 65 29 29 29 20 7b 0a 69 66 20 28 69 contents($file),.true))).{.if.(i
9cba0 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 63 72 69 70 74 73 27 5d 29 20 26 26 20 69 73 sset($composer['scripts']).&&.is
9cbc0 5f 61 72 72 61 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 63 72 69 70 74 73 27 5d 29 29 20 7b 0a _array($composer['scripts'])).{.
9cbe0 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 foreach.($composer['scripts'].as
9cc00 20 24 73 63 72 69 70 74 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 69 66 20 28 21 64 65 66 69 6e .$script.=>.$dummy).{.if.(!defin
9cc20 65 64 28 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 ed('Composer\Script\ScriptEvents
9cc40 3a 3a 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2d 27 2c 20 27 5f 27 2c 20 73 74 72 74 6f 75 ::'.str_replace('-',.'_',.strtou
9cc60 70 70 65 72 28 24 73 63 72 69 70 74 29 29 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 pper($script)))).{.if.($this->ha
9cc80 73 28 24 73 63 72 69 70 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 s($script)).{.$this->getIO()->wr
9cca0 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 41 20 73 63 72 69 70 74 20 6e 61 6d 65 iteError('<warning>A.script.name
9ccc0 64 20 27 2e 24 73 63 72 69 70 74 2e 27 20 77 6f 75 6c 64 20 6f 76 65 72 72 69 64 65 20 61 20 6e d.'.$script.'.would.override.a.n
9cce0 61 74 69 76 65 20 43 6f 6d 70 6f 73 65 72 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 68 61 73 20 ative.Composer.function.and.has.
9cd00 62 65 65 6e 20 73 6b 69 70 70 65 64 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 been.skipped</warning>');.}.else
9cd20 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 63 72 69 70 74 .{.$this->add(new.Command\Script
9cd40 41 6c 69 61 73 43 6f 6d 6d 61 6e 64 28 24 73 63 72 69 70 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a AliasCommand($script));.}.}.}.}.
9cd60 7d 0a 0a 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 }..if.($input->hasParameterOptio
9cd80 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 29 29 20 7b 0a 24 73 74 61 72 74 54 69 6d 65 20 3d 20 6d n('--profile')).{.$startTime.=.m
9cda0 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 65 6e 61 62 6c icrotime(true);.$this->io->enabl
9cdc0 65 44 65 62 75 67 67 69 6e 67 28 24 73 74 61 72 74 54 69 6d 65 29 3b 0a 7d 0a 0a 24 72 65 73 75 eDebugging($startTime);.}..$resu
9cde0 6c 74 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 lt.=.parent::doRun($input,.$outp
9ce00 75 74 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 29 ut);..if.(isset($oldWorkingDir))
9ce20 20 7b 0a 63 68 64 69 72 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 3b 0a 7d 0a 0a 69 66 20 .{.chdir($oldWorkingDir);.}..if.
9ce40 28 69 73 73 65 74 28 24 73 74 61 72 74 54 69 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 (isset($startTime)).{.$this->get
9ce60 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 4d 65 6d 6f 72 79 20 75 IO()->writeError('<info>Memory.u
9ce80 73 61 67 65 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 65 28 29 sage:.'.round(memory_get_usage()
9cea0 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 20 28 70 65 61 6b 3a 20 27 2e ./.1024./.1024,.2).'MB.(peak:.'.
9cec0 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 70 65 61 6b 5f 75 73 61 67 65 28 29 20 2f 20 round(memory_get_peak_usage()./.
9cee0 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 29 2c 20 74 69 6d 65 3a 20 27 2e 72 6f 1024./.1024,.2).'MB),.time:.'.ro
9cf00 75 6e 64 28 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 73 74 61 72 74 54 69 6d 65 und(microtime(true).-.$startTime
9cf20 2c 20 32 29 2e 27 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a ,.2).'s');.}..return.$result;.}.
9cf40 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 65 77 57 6f 72 ......private.function.getNewWor
9cf60 6b 69 6e 67 44 69 72 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b kingDir(InputInterface.$input).{
9cf80 0a 24 77 6f 72 6b 69 6e 67 44 69 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 .$workingDir.=.$input->getParame
9cfa0 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c terOption(array('--working-dir',
9cfc0 20 27 2d 64 27 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 6f 72 6b 69 6e 67 44 .'-d'));.if.(false.!==.$workingD
9cfe0 69 72 20 26 26 20 21 69 73 5f 64 69 72 28 24 77 6f 72 6b 69 6e 67 44 69 72 29 29 20 7b 0a 74 68 ir.&&.!is_dir($workingDir)).{.th
9d000 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
9d020 69 64 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 73 70 65 63 69 66 69 65 64 2e 27 id.working.directory.specified.'
9d040 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 6f 72 6b 69 6e 67 44 69 72 3b 0a 7d 0a 0a 0a 0a 0a );.}..return.$workingDir;.}.....
9d060 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 public.function.renderException(
9d080 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 74 72 79 20 7b 0a 24 63 6f $exception,.$output).{.try.{.$co
9d0a0 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
9d0c0 65 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6e 66 e,.true);.if.($composer).{.$conf
9d0e0 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 28 29 3b 0a 0a 24 6d ig.=.$composer->getConfig();..$m
9d100 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 69 66 20 28 28 28 24 inSpaceFree.=.1024*1024;.if.((($
9d120 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 24 63 6f df.=.@disk_free_space($dir.=.$co
9d140 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 61 6c 73 65 20 26 26 nfig->get('home'))).!==.false.&&
9d160 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 28 28 24 64 66 20 3d .$df.<.$minSpaceFree).||.(($df.=
9d180 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 24 63 6f 6e 66 69 67 .@disk_free_space($dir.=.$config
9d1a0 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 20 66 61 6c 73 65 20 ->get('vendor-dir'))).!==.false.
9d1c0 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 28 28 24 64 66 &&.$df.<.$minSpaceFree).||.(($df
9d1e0 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 73 79 73 5f 67 .=.@disk_free_space($dir.=.sys_g
9d200 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 64 66 et_temp_dir())).!==.false.&&.$df
9d220 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 .<.$minSpaceFree).).{.$this->get
9d240 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 IO()->writeError('<error>The.dis
9d260 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 68 69 73 k.hosting.'.$dir.'.is.full,.this
9d280 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 6f 77 69 .may.be.the.cause.of.the.followi
9d2a0 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 20 63 61 ng.exception</error>');.}.}.}.ca
9d2c0 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 69 66 20 28 64 65 66 tch.(\Exception.$e).{.}..if.(def
9d2e0 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'
9d300 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 65 78 63 65 70 74 69 6f 6e ).&&.false.!==.strpos($exception
9d320 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 54 68 65 20 73 79 73 74 65 6d 20 63 61 6e 6e ->getMessage(),.'The.system.cann
9d340 6f 74 20 66 69 6e 64 20 74 68 65 20 70 61 74 68 20 73 70 65 63 69 66 69 65 64 27 29 29 20 7b 0a ot.find.the.path.specified')).{.
9d360 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 $this->getIO()->writeError('<err
9d380 6f 72 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 20 6d 61 79 20 62 or>The.following.exception.may.b
9d3a0 65 20 63 61 75 73 65 64 20 62 79 20 61 20 73 74 61 6c 65 20 65 6e 74 72 79 20 69 6e 20 79 6f 75 e.caused.by.a.stale.entry.in.you
9d3c0 72 20 63 6d 64 2e 65 78 65 20 41 75 74 6f 52 75 6e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 r.cmd.exe.AutoRun</error>');.$th
9d3e0 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e is->getIO()->writeError('<error>
9d400 43 68 65 63 6b 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f Check.https://getcomposer.org/do
9d420 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 23 2d 74 c/articles/troubleshooting.md#-t
9d440 68 65 2d 73 79 73 74 65 6d 2d 63 61 6e 6e 6f 74 2d 66 69 6e 64 2d 74 68 65 2d 70 61 74 68 2d 73 he-system-cannot-find-the-path-s
9d460 70 65 63 69 66 69 65 64 2d 77 69 6e 64 6f 77 73 2d 20 66 6f 72 20 64 65 74 61 69 6c 73 3c 2f 65 pecified-windows-.for.details</e
9d480 72 72 6f 72 3e 27 29 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 rror>');.}..if.(false.!==.strpos
9d4a0 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 66 6f 72 6b ($exception->getMessage(),.'fork
9d4c0 20 66 61 69 6c 65 64 20 2d 20 43 61 6e 6e 6f 74 20 61 6c 6c 6f 63 61 74 65 20 6d 65 6d 6f 72 79 .failed.-.Cannot.allocate.memory
9d4e0 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 ')).{.$this->getIO()->writeError
9d500 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e ('<error>The.following.exception
9d520 20 69 73 20 63 61 75 73 65 64 20 62 79 20 61 20 6c 61 63 6b 20 6f 66 20 6d 65 6d 6f 72 79 20 61 .is.caused.by.a.lack.of.memory.a
9d540 6e 64 20 6e 6f 74 20 68 61 76 69 6e 67 20 73 77 61 70 20 63 6f 6e 66 69 67 75 72 65 64 3c 2f 65 nd.not.having.swap.configured</e
9d560 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 rror>');.$this->getIO()->writeEr
9d580 72 6f 72 28 27 3c 65 72 72 6f 72 3e 43 68 65 63 6b 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d ror('<error>Check.https://getcom
9d5a0 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 68 poser.org/doc/articles/troublesh
9d5c0 6f 6f 74 69 6e 67 2e 6d 64 23 70 72 6f 63 2d 6f 70 65 6e 2d 66 6f 72 6b 2d 66 61 69 6c 65 64 2d ooting.md#proc-open-fork-failed-
9d5e0 65 72 72 6f 72 73 20 66 6f 72 20 64 65 74 61 69 6c 73 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a errors.for.details</error>');.}.
9d600 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 73 6f 6c 65 4f .if.($output.instanceof.ConsoleO
9d620 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 70 61 72 65 6e 74 3a 3a 72 65 6e 64 65 72 utputInterface).{.parent::render
9d640 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 2d 3e 67 Exception($exception,.$output->g
9d660 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 70 61 72 65 6e etErrorOutput());.}.else.{.paren
9d680 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 74 69 6f 6e 2c 20 24 t::renderException($exception,.$
9d6a0 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 output);.}.}........public.funct
9d6c0 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 ion.getComposer($required.=.true
9d6e0 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 7b 0a 69 66 20 ,.$disablePlugins.=.false).{.if.
9d700 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 7b 0a 74 72 79 (null.===.$this->composer).{.try
9d720 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 79 3a 3a 63 72 .{.$this->composer.=.Factory::cr
9d740 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 62 6c 65 50 6c eate($this->io,.null,.$disablePl
9d760 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 67 75 6d 65 6e ugins);.}.catch.(\InvalidArgumen
9d780 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 72 65 64 29 20 tException.$e).{.if.($required).
9d7a0 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 65 2d 3e 67 65 74 4d {.$this->io->writeError($e->getM
9d7c0 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
9d7e0 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
9d800 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..
9d820 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
9d840 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
9d860 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
9d880 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);.}.
9d8a0 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 0a }..return.$this->composer;.}....
9d8c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 43 6f 6d 70 6f 73 65 72 28 29 .public.function.resetComposer()
9d8e0 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a .{.$this->composer.=.null;.}....
9d900 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 72 .public.function.getIO().{.retur
9d920 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 20 n.$this->io;.}..public.function.
9d940 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 2e getHelp().{.return.self::$logo..
9d960 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 63 .parent::getHelp();.}.....protec
9d980 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 28 ted.function.getDefaultCommands(
9d9a0 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 75 ).{.$commands.=.parent::getDefau
9d9c0 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 20 ltCommands();.$commands[].=.new.
9d9e0 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 64 Command\AboutCommand();.$command
9da00 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 28 s[].=.new.Command\ConfigCommand(
9da20 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 70 );.$commands[].=.new.Command\Dep
9da40 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 77 endsCommand();.$commands[].=.new
9da60 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 64 .Command\InitCommand();.$command
9da80 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 64 s[].=.new.Command\InstallCommand
9daa0 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 72 ();.$commands[].=.new.Command\Cr
9dac0 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 5b eateProjectCommand();.$commands[
9dae0 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 3b ].=.new.Command\UpdateCommand();
9db00 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 63 .$commands[].=.new.Command\Searc
9db20 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 6f hCommand();.$commands[].=.new.Co
9db40 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 6e mmand\ValidateCommand();.$comman
9db60 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 29 ds[].=.new.Command\ShowCommand()
9db80 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 75 ;.$commands[].=.new.Command\Requ
9dba0 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 20 ireCommand();.$commands[].=.new.
9dbc0 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 24 Command\DumpAutoloadCommand();.$
9dbe0 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 43 commands[].=.new.Command\StatusC
9dc00 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d ommand();.$commands[].=.new.Comm
9dc20 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 5b and\ArchiveCommand();.$commands[
9dc40 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 28 ].=.new.Command\DiagnoseCommand(
9dc60 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 6e );.$commands[].=.new.Command\Run
9dc80 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 6e ScriptCommand();.$commands[].=.n
9dca0 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 63 ew.Command\LicensesCommand();.$c
9dcc0 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 6f ommands[].=.new.Command\GlobalCo
9dce0 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 mmand();.$commands[].=.new.Comma
9dd00 6e 64 5c 43 6c 65 61 72 43 61 63 68 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 nd\ClearCacheCommand();.$command
9dd20 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 65 6d 6f 76 65 43 6f 6d 6d 61 6e 64 28 s[].=.new.Command\RemoveCommand(
9dd40 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 48 6f 6d );.$commands[].=.new.Command\Hom
9dd60 65 43 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 eCommand();..if.('phar:'.===.sub
9dd80 73 74 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 str(__FILE__,.0,.5)).{.$commands
9dda0 5b 5d 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 [].=.new.Command\SelfUpdateComma
9ddc0 6e 64 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 nd();.}..return.$commands;.}....
9dde0 0a 70 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 .public.function.getLongVersion(
9de00 29 0a 7b 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 42 52 41 4e 43 48 5f 41 4c 49 41 53 5f 56 ).{.if.(Composer::BRANCH_ALIAS_V
9de20 45 52 53 49 4f 4e 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 0a 27 3c 69 6e 66 6f ERSION).{.return.sprintf(.'<info
9de40 3e 25 73 3c 2f 69 6e 66 6f 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 20 28 >%s</info>.version.<comment>%s.(
9de60 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 0a 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d %s)</comment>.%s',.$this->getNam
9de80 65 28 29 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 42 52 41 4e 43 48 5f 41 4c 49 41 53 5f 56 45 52 53 e(),.Composer::BRANCH_ALIAS_VERS
9dea0 49 4f 4e 2c 0a 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 43 6f 6d 70 6f 73 ION,.$this->getVersion(),.Compos
9dec0 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 er::RELEASE_DATE.);.}..return.pa
9dee0 72 65 6e 74 3a 3a 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 43 rent::getLongVersion()...'.'...C
9df00 6f 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f omposer::RELEASE_DATE;.}.....pro
9df20 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 49 6e 70 75 74 44 tected.function.getDefaultInputD
9df40 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 70 61 72 65 efinition().{.$definition.=.pare
9df60 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b nt::getDefaultInputDefinition();
9df80 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 .$definition->addOption(new.Inpu
9dfa0 74 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 tOption('--profile',.null,.Input
9dfc0 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 69 6d Option::VALUE_NONE,.'Display.tim
9dfe0 69 6e 67 20 61 6e 64 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e ing.and.memory.usage.information
9e000 27 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 '));.$definition->addOption(new.
9e020 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 27 2d 64 InputOption('--working-dir',.'-d
9e040 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,.
9e060 27 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 65 20 67 69 76 65 6e 20 64 69 72 'If.specified,.use.the.given.dir
9e080 65 63 74 6f 72 79 20 61 73 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 2e 27 29 29 3b ectory.as.working.directory.'));
9e0a0 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 ..return.$definition;.}.....prot
9e0c0 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 53 ected.function.getDefaultHelperS
9e0e0 65 74 28 29 0a 7b 0a 24 68 65 6c 70 65 72 53 65 74 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 et().{.$helperSet.=.parent::getD
9e100 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 24 68 65 6c 70 65 72 53 65 74 2d 3e 73 efaultHelperSet();.$helperSet->s
9e120 65 74 28 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 et(new.DialogHelper());..return.
9e140 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $helperSet;.}.}.<?php...........
9e160 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 .namespace.Composer\Console;..us
9e180 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 6d e.Symfony\Component\Console\Form
9e1a0 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 atter\OutputFormatter;.....class
9e1c0 20 48 74 6d 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 20 65 78 74 65 6e 64 73 20 4f 75 74 .HtmlOutputFormatter.extends.Out
9e1e0 70 75 74 46 6f 72 6d 61 74 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 putFormatter.{.private.static.$a
9e200 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
9e220 28 0a 33 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a 33 31 20 3d 3e 20 27 72 65 64 27 2c 0a 33 32 (.30.=>.'black',.31.=>.'red',.32
9e240 20 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 33 33 20 3d 3e 20 27 79 65 6c 6c 6f 77 27 2c 0a 33 34 20 .=>.'green',.33.=>.'yellow',.34.
9e260 3d 3e 20 27 62 6c 75 65 27 2c 0a 33 35 20 3d 3e 20 27 6d 61 67 65 6e 74 61 27 2c 0a 33 36 20 3d =>.'blue',.35.=>.'magenta',.36.=
9e280 3e 20 27 63 79 61 6e 27 2c 0a 33 37 20 3d 3e 20 27 77 68 69 74 65 27 0a 29 3b 0a 70 72 69 76 61 >.'cyan',.37.=>.'white'.);.priva
9e2a0 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
9e2c0 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 34 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a 34 31 20 lors.=.array(.40.=>.'black',.41.
9e2e0 3d 3e 20 27 72 65 64 27 2c 0a 34 32 20 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 34 33 20 3d 3e 20 27 =>.'red',.42.=>.'green',.43.=>.'
9e300 79 65 6c 6c 6f 77 27 2c 0a 34 34 20 3d 3e 20 27 62 6c 75 65 27 2c 0a 34 35 20 3d 3e 20 27 6d 61 yellow',.44.=>.'blue',.45.=>.'ma
9e320 67 65 6e 74 61 27 2c 0a 34 36 20 3d 3e 20 27 63 79 61 6e 27 2c 0a 34 37 20 3d 3e 20 27 77 68 69 genta',.46.=>.'cyan',.47.=>.'whi
9e340 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
9e360 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 31 20 3d 3e 20 27 62 6f 6c 64 27 2c 0a 34 20 Options.=.array(.1.=>.'bold',.4.
9e380 3d 3e 20 27 75 6e 64 65 72 73 63 6f 72 65 27 2c 0a 0a 20 0a 20 0a 20 29 3b 0a 0a 0a 0a 0a 70 75 =>.'underscore',.......);.....pu
9e3a0 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.
9e3c0 24 73 74 79 6c 65 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 $styles.=.array()).{.parent::__c
9e3e0 6f 6e 73 74 72 75 63 74 28 74 72 75 65 2c 20 24 73 74 79 6c 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c onstruct(true,.$styles);.}..publ
9e400 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 ic.function.format($message).{.$
9e420 66 6f 72 6d 61 74 74 65 64 20 3d 20 70 61 72 65 6e 74 3a 3a 66 6f 72 6d 61 74 28 24 6d 65 73 73 formatted.=.parent::format($mess
9e440 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 age);..return.preg_replace_callb
9e460 61 63 6b 28 22 7b 5c 30 33 33 5c 5b 28 5b 30 2d 39 3b 5d 2b 29 6d 28 2e 2a 3f 29 5c 30 33 33 5c ack("{\033\[([0-9;]+)m(.*?)\033\
9e480 5b 30 6d 7d 73 22 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 66 6f 72 6d 61 74 48 74 6d 6c [0m}s",.array($this,.'formatHtml
9e4a0 27 29 2c 20 24 66 6f 72 6d 61 74 74 65 64 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 '),.$formatted);.}..private.func
9e4c0 74 69 6f 6e 20 66 6f 72 6d 61 74 48 74 6d 6c 28 24 6d 61 74 63 68 65 73 29 0a 7b 0a 24 6f 75 74 tion.formatHtml($matches).{.$out
9e4e0 20 3d 20 27 3c 73 70 61 6e 20 73 74 79 6c 65 3d 22 27 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 .=.'<span.style="';.foreach.(exp
9e500 6c 6f 64 65 28 27 3b 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 61 73 20 24 63 6f 64 65 29 lode(';',.$matches[1]).as.$code)
9e520 20 7b 0a 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 .{.if.(isset(self::$availableFor
9e540 65 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 6f 75 74 20 2e 3d egroundColors[$code])).{.$out..=
9e560 20 27 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 .'color:'.self::$availableForegr
9e580 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c 73 65 69 66 20 oundColors[$code].';';.}.elseif.
9e5a0 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e (isset(self::$availableBackgroun
9e5c0 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 6f 75 74 20 2e 3d 20 27 62 61 63 6b dColors[$code])).{.$out..=.'back
9e5e0 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 ground-color:'.self::$availableB
9e600 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c ackgroundColors[$code].';';.}.el
9e620 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 62 6c 65 4f 70 74 69 seif.(isset(self::$availableOpti
9e640 6f 6e 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 73 77 69 74 63 68 20 28 73 65 6c 66 3a 3a 24 61 76 ons[$code])).{.switch.(self::$av
9e660 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 63 6f 64 65 5d 29 20 7b 0a 63 61 73 65 20 27 62 ailableOptions[$code]).{.case.'b
9e680 6f 6c 64 27 3a 0a 24 6f 75 74 20 2e 3d 20 27 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f 6c 64 3b old':.$out..=.'font-weight:bold;
9e6a0 27 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 6e 64 65 72 73 63 6f 72 65 27 3a 0a 24 6f ';.break;..case.'underscore':.$o
9e6c0 75 74 20 2e 3d 20 27 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 75 6e 64 65 72 6c 69 6e 65 ut..=.'text-decoration:underline
9e6e0 3b 27 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 2e 27 22 ;';.break;.}.}.}..return.$out.'"
9e700 3e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 3c 2f 73 70 61 6e 3e 27 3b 0a 7d 0a 7d 0a 3c 3f >'.$matches[2].'</span>';.}.}.<?
9e720 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
9e740 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 r\Autoload;..use.Composer\Config
9e760 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 63 68 65 72 5c 45 ;.use.Composer\EventDispatcher\E
9e780 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 65 72 5c 49 6e 73 ventDispatcher;.use.Composer\Ins
9e7a0 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 taller\InstallationManager;.use.
9e7c0 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d Composer\IO\IOInterface;.use.Com
9e7e0 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 20 poser\Package\AliasPackage;.use.
9e800 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
9e820 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
9e840 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
9e860 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f poser\Util\Filesystem;.use.Compo
9e880 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c ser\Script\ScriptEvents;......cl
9e8a0 61 73 73 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 ass.AutoloadGenerator.{....priva
9e8c0 74 65 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 te.$eventDispatcher;.....private
9e8e0 20 24 69 6f 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b .$io;..private.$devMode.=.false;
9e900 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 45 76 ..public.function.__construct(Ev
9e920 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 72 2c 20 entDispatcher.$eventDispatcher,.
9e940 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 73 2d IOInterface.$io.=.null).{.$this-
9e960 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 63 >eventDispatcher.=.$eventDispatc
9e980 68 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 her;.$this->io.=.$io;.}..public.
9e9a0 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 4d 6f 64 65 28 24 64 65 76 4d 6f 64 65 20 3d 20 74 function.setDevMode($devMode.=.t
9e9c0 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 28 62 6f 6f 6c 65 61 6e rue).{.$this->devMode.=.(boolean
9e9e0 29 20 24 64 65 76 4d 6f 64 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 ).$devMode;.}..public.function.d
9ea00 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 6c 65 64 52 65 70 ump(Config.$config,.InstalledRep
9ea20 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 6f 2c 20 50 61 63 ositoryInterface.$localRepo,.Pac
9ea40 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 2c 20 49 6e 73 74 kageInterface.$mainPackage,.Inst
9ea60 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e allationManager.$installationMan
9ea80 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 30 50 61 63 6b 61 ager,.$targetDir,.$scanPsr0Packa
9eaa0 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 0a 7b 0a 24 74 68 ges.=.false,.$suffix.=.'').{.$th
9eac0 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 is->eventDispatcher->dispatchScr
9eae0 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 4c 4f 41 44 5f 44 ipt(ScriptEvents::PRE_AUTOLOAD_D
9eb00 55 4d 50 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 61 72 72 61 79 28 29 2c 20 61 72 UMP,.$this->devMode,.array(),.ar
9eb20 72 61 79 28 0a 27 6f 70 74 69 6d 69 7a 65 27 20 3d 3e 20 28 62 6f 6f 6c 29 20 24 73 63 61 6e 50 ray(.'optimize'.=>.(bool).$scanP
9eb40 73 72 30 50 61 63 6b 61 67 65 73 2c 0a 29 29 3b 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 sr0Packages,.));..$filesystem.=.
9eb60 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 new.Filesystem();.$filesystem->e
9eb80 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 6f 6e 66 69 67 2d 3e 67 65 nsureDirectoryExists($config->ge
9eba0 74 28 27 76 65 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 t('vendor-dir'));.$basePath.=.$f
9ebc0 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 72 65 61 6c 70 61 74 ilesystem->normalizePath(realpat
9ebe0 68 28 67 65 74 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 h(getcwd()));.$vendorPath.=.$fil
9ec00 65 73 79 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 esystem->normalizePath(realpath(
9ec20 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 3b 0a 24 75 $config->get('vendor-dir')));.$u
9ec40 73 65 47 6c 6f 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 seGlobalIncludePath.=.(bool).$co
9ec60 6e 66 69 67 2d 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 nfig->get('use-include-path');.$
9ec80 70 72 65 70 65 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 prependAutoloader.=.$config->get
9eca0 28 27 70 72 65 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 ('prepend-autoloader').===.false
9ecc0 20 3f 20 27 66 61 6c 73 65 27 20 3a 20 27 74 72 75 65 27 3b 0a 24 63 6c 61 73 73 4d 61 70 41 75 .?.'false'.:.'true';.$classMapAu
9ece0 74 68 6f 72 69 74 61 74 69 76 65 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 6c 61 73 thoritative.=.$config->get('clas
9ed00 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 3b 0a 24 74 61 72 67 65 74 44 69 72 smap-authoritative');.$targetDir
9ed20 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 3b 0a 24 .=.$vendorPath.'/'.$targetDir;.$
9ed40 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
9ed60 73 28 24 74 61 72 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 s($targetDir);..$vendorPathCode.
9ed80 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 =.$filesystem->findShortestPathC
9eda0 6f 64 65 28 72 65 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 ode(realpath($targetDir),.$vendo
9edc0 72 50 61 74 68 2c 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 rPath,.true);.$vendorPathCode52.
9ede0 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 64 69 72 6e 61 6d =.str_replace('__DIR__',.'dirnam
9ee00 65 28 5f 5f 46 49 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 e(__FILE__)',.$vendorPathCode);.
9ee20 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 $vendorPathToTargetDirCode.=.$fi
9ee40 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 lesystem->findShortestPathCode($
9ee60 76 65 6e 64 6f 72 50 61 74 68 2c 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 vendorPath,.realpath($targetDir)
9ee80 2c 20 74 72 75 65 29 3b 0a 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c ,.true);..$appBaseDirCode.=.$fil
9eea0 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 24 76 esystem->findShortestPathCode($v
9eec0 65 6e 64 6f 72 50 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 endorPath,.$basePath,.true);.$ap
9eee0 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 pBaseDirCode.=.str_replace('__DI
9ef00 52 5f 5f 27 2c 20 27 24 76 65 6e 64 6f 72 44 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 R__',.'$vendorDir',.$appBaseDirC
9ef20 6f 64 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a ode);..$namespacesFile.=.<<<EOF.
9ef40 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 <?php..//.autoload_namespaces.ph
9ef60 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 5c 24 76 65 6e 64 p.@generated.by.Composer..\$vend
9ef80 6f 72 44 69 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 orDir.=.$vendorPathCode52;.\$bas
9efa0 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 72 65 74 75 72 6e 20 eDir.=.$appBaseDirCode;..return.
9efc0 61 72 72 61 79 28 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 array(..EOF;..$psr4File.=.<<<EOF
9efe0 0a 3c 3f 70 68 70 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 .<?php..//.autoload_psr4.php.@ge
9f000 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 72 nerated.by.Composer..\$vendorDir
9f020 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 20 .=.$vendorPathCode52;.\$baseDir.
9f040 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 79 =.$appBaseDirCode;..return.array
9f060 28 0a 0a 45 4f 46 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 (..EOF;....$packageMap.=.$this->
9f080 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e buildPackageMap($installationMan
9f0a0 61 67 65 72 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e ager,.$mainPackage,.$localRepo->
9f0c0 67 65 74 43 61 6e 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 getCanonicalPackages());.$autolo
9f0e0 61 64 73 20 3d 20 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 ads.=.$this->parseAutoloads($pac
9f100 6b 61 67 65 4d 61 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 kageMap,.$mainPackage);....forea
9f120 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 ch.($autoloads['psr-0'].as.$name
9f140 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 space.=>.$paths).{.$exportedPath
9f160 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 74 68 73 20 61 73 20 s.=.array();.foreach.($paths.as.
9f180 24 70 61 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 68 69 $path).{.$exportedPaths[].=.$thi
9f1a0 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 s->getPathCode($filesystem,.$bas
9f1c0 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 3b 0a 7d 0a 24 65 ePath,.$vendorPath,.$path);.}.$e
9f1e0 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 xportedPrefix.=.var_export($name
9f200 73 70 61 63 65 2c 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d space,.true);.$namespacesFile..=
9f220 20 22 20 20 20 20 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 6e 61 6d ."....$exportedPrefix.=>.";.$nam
9f240 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 espacesFile..=."array(".implode(
9f260 27 2c 20 27 2c 20 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a ',.',.$exportedPaths)."),\n";.}.
9f280 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 0a 20 66 6f $namespacesFile..=.");\n";....fo
9f2a0 72 65 61 63 68 20 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 reach.($autoloads['psr-4'].as.$n
9f2c0 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 amespace.=>.$paths).{.$exportedP
9f2e0 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 aths.=.array();.foreach.($paths.
9f300 61 73 20 24 70 61 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 as.$path).{.$exportedPaths[].=.$
9f320 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 this->getPathCode($filesystem,.$
9f340 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 3b 0a 7d basePath,.$vendorPath,.$path);.}
9f360 0a 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e .$exportedPrefix.=.var_export($n
9f380 61 6d 65 73 70 61 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 amespace,.true);.$psr4File..=.".
9f3a0 20 20 20 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 70 73 72 34 46 69 ...$exportedPrefix.=>.";.$psr4Fi
9f3c0 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 24 65 78 le..=."array(".implode(',.',.$ex
9f3e0 70 6f 72 74 65 64 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 portedPaths)."),\n";.}.$psr4File
9f400 20 2e 3d 20 22 29 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 ..=.");\n";..$classmapFile.=.<<<
9f420 45 4f 46 0a 3c 3f 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 EOF.<?php..//.autoload_classmap.
9f440 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 5c 24 76 65 php.@generated.by.Composer..\$ve
9f460 6e 64 6f 72 44 69 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 ndorDir.=.$vendorPathCode52;.\$b
9f480 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 72 65 74 75 72 aseDir.=.$appBaseDirCode;..retur
9f4a0 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 n.array(..EOF;....$targetDirLoad
9f4c0 65 72 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 6e er.=.null;.$mainAutoload.=.$main
9f4e0 50 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 69 Package->getAutoload();.if.($mai
9f500 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 65 6d 70 nPackage->getTargetDir().&&.!emp
9f520 74 79 28 24 6d 61 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 ty($mainAutoload['psr-0'])).{.$l
9f540 65 76 65 6c 73 20 3d 20 63 6f 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 66 69 6c 65 evels.=.count(explode('/',.$file
9f560 73 79 73 74 65 6d 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 system->normalizePath($mainPacka
9f580 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 72 65 66 69 78 65 73 ge->getTargetDir())));.$prefixes
9f5a0 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 .=.implode(',.',.array_map(funct
9f5c0 69 6f 6e 20 28 24 70 72 65 66 69 78 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 ion.($prefix).{.return.var_expor
9f5e0 74 28 24 70 72 65 66 69 78 2c 20 74 72 75 65 29 3b 0a 7d 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 t($prefix,.true);.},.array_keys(
9f600 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 29 3b 0a 24 62 61 73 65 $mainAutoload['psr-0'])));.$base
9f620 44 69 72 46 72 6f 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 DirFromTargetDirCode.=.$filesyst
9f640 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 74 61 72 67 65 74 em->findShortestPathCode($target
9f660 44 69 72 2c 20 24 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 Dir,.$basePath,.true);..$targetD
9f680 69 72 4c 6f 61 64 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 irLoader.=.<<<EOF......public.st
9f6a0 61 74 69 63 20 66 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 atic.function.autoload(\$class).
9f6c0 20 20 20 20 7b 0a 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 ....{.........\$dir.=.$baseDirFr
9f6e0 6f 6d 54 61 72 67 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 omTargetDirCode...'/';.........\
9f700 24 70 72 65 66 69 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 $prefixes.=.array($prefixes);...
9f720 20 20 20 20 20 20 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 ......foreach.(\$prefixes.as.\$p
9f740 72 65 66 69 78 29 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 refix).{.............if.(0.!==.s
9f760 74 72 70 6f 73 28 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 trpos(\$class,.\$prefix)).{.....
9f780 20 20 20 20 20 20 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 ............continue;...........
9f7a0 20 20 7d 0a 20 20 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 ..}.............\$path.=.\$dir..
9f7c0 20 69 6d 70 6c 6f 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 .implode('/',.array_slice(explod
9f7e0 65 28 27 5c 5c 5c 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 e('\\\\',.\$class),.$levels)).'.
9f800 70 68 70 27 3b 0a 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 php';.............if.(!\$path.=.
9f820 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 28 5c 24 70 61 stream_resolve_include_path(\$pa
9f840 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 th)).{.................return.fa
9f860 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 lse;.............}.............r
9f880 65 71 75 69 72 65 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 equire.\$path;..............retu
9f8a0 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 45 4f 46 3b 0a 7d rn.true;.........}.....}..EOF;.}
9f8c0 0a 0a 0a 20 24 63 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 ....$classMap.=.array();.if.($sc
9f8e0 61 6e 50 73 72 30 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 anPsr0Packages).{...foreach.(arr
9f900 61 79 28 27 70 73 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 ay('psr-0',.'psr-4').as.$psrType
9f920 29 20 7b 0a 66 6f 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 ).{.foreach.($autoloads[$psrType
9f940 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 ].as.$namespace.=>.$paths).{.for
9f960 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 64 69 72 20 3d 20 24 each.($paths.as.$dir).{.$dir.=.$
9f980 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 66 69 6c 65 73 filesystem->normalizePath($files
9f9a0 79 73 74 65 6d 2d 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 ystem->isAbsolutePath($dir).?.$d
9f9c0 69 72 20 3a 20 24 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 ir.:.$basePath.'/'.$dir);.if.(!i
9f9e0 73 5f 64 69 72 28 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 s_dir($dir)).{.continue;.}.$whit
9fa00 65 6c 69 73 74 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 7b 25 73 2f 25 73 2e 2b 28 3f 3c 21 28 3f elist.=.sprintf(.'{%s/%s.+(?<!(?
9fa20 3c 21 2f 29 54 65 73 74 5c 2e 70 68 70 29 24 7d 27 2c 0a 70 72 65 67 5f 71 75 6f 74 65 28 24 64 <!/)Test\.php)$}',.preg_quote($d
9fa40 69 72 29 2c 0a 28 24 70 73 72 54 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 20 26 26 20 73 74 ir),.($psrType.===.'psr-0'.&&.st
9fa60 72 70 6f 73 28 24 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 rpos($namespace,.'_').===.false)
9fa80 20 3f 20 70 72 65 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 .?.preg_quote(strtr($namespace,.
9faa0 27 5c 5c 27 2c 20 27 2f 27 29 29 20 3a 20 27 27 0a 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 46 '\\',.'/')).:.''.);..$namespaceF
9fac0 69 6c 74 65 72 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 27 27 20 3f 20 6e 75 6c 6c ilter.=.$namespace.===.''.?.null
9fae0 20 3a 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 .:.$namespace;.foreach.(ClassMap
9fb00 47 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 Generator::createMap($dir,.$whit
9fb20 65 6c 69 73 74 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 6e 61 6d 65 73 70 61 63 65 46 69 6c 74 elist,.$this->io,.$namespaceFilt
9fb40 65 72 29 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 21 69 er).as.$class.=>.$path).{.if.(!i
9fb60 73 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 sset($classMap[$class])).{.$path
9fb80 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 .=.$this->getPathCode($filesyste
9fba0 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 68 m,.$basePath,.$vendorPath,.$path
9fbc0 29 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 );.$classMap[$class].=.$path.",\
9fbe0 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c n";.}.}.}.}.}.}..foreach.($autol
9fc00 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 66 6f 72 65 oads['classmap'].as.$dir).{.fore
9fc20 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d 61 ach.(ClassMapGenerator::createMa
9fc40 70 28 24 64 69 72 2c 20 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 29 20 61 73 20 24 63 6c 61 p($dir,.null,.$this->io).as.$cla
9fc60 73 73 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 ss.=>.$path).{.$path.=.$this->ge
9fc80 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 74 68 tPathCode($filesystem,.$basePath
9fca0 2c 20 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 ,.$vendorPath,.$path);.$classMap
9fcc0 5b 24 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 [$class].=.$path.",\n";.}.}..kso
9fce0 72 74 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 rt($classMap);.foreach.($classMa
9fd00 70 20 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 p.as.$class.=>.$code).{.$classma
9fd20 70 46 69 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 pFile..=.'....'.var_export($clas
9fd40 73 2c 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 s,.true).'.=>.'.$code;.}.$classm
9fd60 61 70 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 apFile..=.");\n";..if.(!$suffix)
9fd80 20 7b 0a 69 66 20 28 69 73 5f 72 65 61 64 61 62 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 .{.if.(is_readable($vendorPath.'
9fda0 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 /autoload.php')).{.$content.=.fi
9fdc0 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 le_get_contents($vendorPath.'/au
9fde0 74 6f 6c 6f 61 64 2e 70 68 70 27 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 43 toload.php');.if.(preg_match('{C
9fe00 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 28 5b 5e 3a 5c 73 5d 2b 29 3a 3a omposerAutoloaderInit([^:\s]+)::
9fe20 7d 27 2c 20 24 63 6f 6e 74 65 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 73 75 66 66 69 78 }',.$content,.$match)).{.$suffix
9fe40 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 73 75 66 66 69 78 29 .=.$match[1];.}.}..if.(!$suffix)
9fe60 20 7b 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 .{.$suffix.=.$config->get('autol
9fe80 6f 61 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 oader-suffix').?:.md5(uniqid('',
9fea0 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 .true));.}.}..file_put_contents(
9fec0 24 74 61 72 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 $targetDir.'/autoload_namespaces
9fee0 2e 70 68 70 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 .php',.$namespacesFile);.file_pu
9ff00 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
9ff20 5f 70 73 72 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 _psr4.php',.$psr4File);.file_put
9ff40 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 5f _contents($targetDir.'/autoload_
9ff60 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 2c 20 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 29 3b 0a 69 classmap.php',.$classmapFile);.i
9ff80 66 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 f.($includePathFile.=.$this->get
9ffa0 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 66 IncludePathsFile($packageMap,.$f
9ffc0 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 50 61 74 ilesystem,.$basePath,.$vendorPat
9ffe0 68 2c 20 24 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 h,.$vendorPathCode52,.$appBaseDi
a0000 72 43 6f 64 65 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 rCode)).{.file_put_contents($tar
a0020 67 65 74 44 69 72 2e 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 2c 20 24 69 6e getDir.'/include_paths.php',.$in
a0040 63 6c 75 64 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 cludePathFile);.}.if.($includeFi
a0060 6c 65 73 46 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 lesFile.=.$this->getIncludeFiles
a0080 46 69 6c 65 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 File($autoloads['files'],.$files
a00a0 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,.$
a00c0 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
a00e0 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
a0100 69 72 2e 27 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 ir.'/autoload_files.php',.$inclu
a0120 64 65 46 69 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 deFilesFile);.}.file_put_content
a0140 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 2c 20 24 s($vendorPath.'/autoload.php',.$
a0160 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 this->getAutoloadFile($vendorPat
a0180 68 54 6f 54 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 hToTargetDirCode,.$suffix));.fil
a01a0 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f e_put_contents($targetDir.'/auto
a01c0 6c 6f 61 64 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 load_real.php',.$this->getAutolo
a01e0 61 64 52 65 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 adRealFile(true,.(bool).$include
a0200 50 61 74 68 46 69 6c 65 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 28 62 6f 6f PathFile,.$targetDirLoader,.(boo
a0220 6c 29 20 24 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 l).$includeFilesFile,.$vendorPat
a0240 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c hCode,.$appBaseDirCode,.$suffix,
a0260 20 24 75 73 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 .$useGlobalIncludePath,.$prepend
a0280 41 75 74 6f 6c 6f 61 64 65 72 2c 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 Autoloader,.$classMapAuthoritati
a02a0 76 65 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 6f 70 65 6e ve));......$sourceLoader.=.fopen
a02c0 28 5f 5f 44 49 52 5f 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 27 72 27 (__DIR__.'/ClassLoader.php',.'r'
a02e0 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 72 67 65 74 );.$targetLoader.=.fopen($target
a0300 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 29 3b 0a 73 Dir.'/ClassLoader.php',.'w+');.s
a0320 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 4c 6f 61 64 tream_copy_to_stream($sourceLoad
a0340 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 73 6f 75 72 er,.$targetLoader);.fclose($sour
a0360 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 64 65 72 29 ceLoader);.fclose($targetLoader)
a0380 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 65 74 4c 6f ;.unset($sourceLoader,.$targetLo
a03a0 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 65 72 2d 3e ader);..$this->eventDispatcher->
a03c0 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 3a 50 4f 53 dispatchScript(ScriptEvents::POS
a03e0 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c T_AUTOLOAD_DUMP,.$this->devMode,
a0400 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 0a 27 6f 70 74 69 6d 69 7a 65 27 20 3d 3e 20 28 .array(),.array(.'optimize'.=>.(
a0420 62 6f 6f 6c 29 20 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 2c 0a 29 29 3b 0a 7d 0a 0a bool).$scanPsr0Packages,.));.}..
a0440 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 public.function.buildPackageMap(
a0460 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f InstallationManager.$installatio
a0480 6e 4d 61 6e 61 67 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e nManager,.PackageInterface.$main
a04a0 50 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 0a 20 24 70 Package,.array.$packages).{...$p
a04c0 61 63 6b 61 67 65 4d 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 ackageMap.=.array(array($mainPac
a04e0 6b 61 67 65 2c 20 27 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 kage,.''));..foreach.($packages.
a0500 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 69 6e 73 74 as.$package).{.if.($package.inst
a0520 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 75 65 3b anceof.AliasPackage).{.continue;
a0540 0a 7d 0a 24 74 68 69 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 .}.$this->validatePackage($packa
a0560 67 65 29 3b 0a 0a 24 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 ge);..$packageMap[].=.array(.$pa
a0580 63 6b 61 67 65 2c 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 ckage,.$installationManager->get
a05a0 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2c 0a 29 3b 0a 7d 0a 0a 72 65 74 InstallPath($package),.);.}..ret
a05c0 75 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 urn.$packageMap;.}.......protect
a05e0 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 50 61 63 6b 61 67 65 28 50 61 63 6b ed.function.validatePackage(Pack
a0600 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 61 75 74 6f 6c 6f ageInterface.$package).{.$autolo
a0620 61 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 ad.=.$package->getAutoload();.if
a0640 20 28 21 65 6d 70 74 79 28 24 61 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 34 27 5d 29 20 26 26 20 .(!empty($autoload['psr-4']).&&.
a0660 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 null.!==.$package->getTargetDir(
a0680 29 29 20 7b 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 )).{.$name.=.$package->getName()
a06a0 3b 0a 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 74 68 72 6f ;.$package->getTargetDir();.thro
a06c0 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(
a06e0 22 50 53 52 2d 34 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 69 73 20 69 6e 63 6f 6d 70 61 74 69 62 "PSR-4.autoloading.is.incompatib
a0700 6c 65 20 77 69 74 68 20 74 68 65 20 74 61 72 67 65 74 2d 64 69 72 20 70 72 6f 70 65 72 74 79 2c le.with.the.target-dir.property,
a0720 20 72 65 6d 6f 76 65 20 74 68 65 20 74 61 72 67 65 74 2d 64 69 72 20 69 6e 20 70 61 63 6b 61 67 .remove.the.target-dir.in.packag
a0740 65 20 27 24 6e 61 6d 65 27 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 61 75 74 6f e.'$name'.");.}.if.(!empty($auto
a0760 6c 6f 61 64 5b 27 70 73 72 2d 34 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f load['psr-4'])).{.foreach.($auto
a0780 6c 6f 61 64 5b 27 70 73 72 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 load['psr-4'].as.$namespace.=>.$
a07a0 64 69 72 73 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 21 3d 3d 20 27 27 20 26 26 dirs).{.if.($namespace.!==.''.&&
a07c0 20 27 5c 5c 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 2d 31 29 .'\\'.!==.substr($namespace,.-1)
a07e0 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
a0800 63 65 70 74 69 6f 6e 28 22 70 73 72 2d 34 20 6e 61 6d 65 73 70 61 63 65 73 20 6d 75 73 74 20 65 ception("psr-4.namespaces.must.e
a0820 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 72 2c 20 27 nd.with.a.namespace.separator,.'
a0840 24 6e 61 6d 65 73 70 61 63 65 27 20 64 6f 65 73 20 6e 6f 74 2c 20 75 73 65 20 27 24 6e 61 6d 65 $namespace'.does.not,.use.'$name
a0860 73 70 61 63 65 5c 5c 27 2e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 space\\'.");.}.}.}.}.........pub
a0880 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 lic.function.parseAutoloads(arra
a08a0 79 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 y.$packageMap,.PackageInterface.
a08c0 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 0a 7b 0a 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 20 $mainPackage).{.$mainPackageMap.
a08e0 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 =.array_shift($packageMap);.$sor
a0900 74 65 64 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 73 6f 72 74 50 61 63 6b 61 tedPackageMap.=.$this->sortPacka
a0920 67 65 4d 61 70 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 geMap($packageMap);.$sortedPacka
a0940 67 65 4d 61 70 5b 5d 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 3b 0a 61 72 72 61 79 geMap[].=.$mainPackageMap;.array
a0960 5f 75 6e 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 _unshift($packageMap,.$mainPacka
a0980 67 65 4d 61 70 29 3b 0a 0a 24 70 73 72 30 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 geMap);..$psr0.=.$this->parseAut
a09a0 6f 6c 6f 61 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 30 27 2c oloadsType($packageMap,.'psr-0',
a09c0 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 70 73 72 34 20 3d 20 24 74 68 69 73 2d 3e 70 .$mainPackage);.$psr4.=.$this->p
a09e0 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 arseAutoloadsType($packageMap,.'
a0a00 70 73 72 2d 34 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 psr-4',.$mainPackage);.$classmap
a0a20 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 70 65 28 24 73 6f .=.$this->parseAutoloadsType($so
a0a40 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 24 6d 61 69 rtedPackageMap,.'classmap',.$mai
a0a60 6e 50 61 63 6b 61 67 65 29 3b 0a 24 66 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 nPackage);.$files.=.$this->parse
a0a80 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 61 67 65 4d 61 70 2c AutoloadsType($sortedPackageMap,
a0aa0 20 27 66 69 6c 65 73 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 6b 72 73 6f 72 74 .'files',.$mainPackage);..krsort
a0ac0 28 24 70 73 72 30 29 3b 0a 6b 72 73 6f 72 74 28 24 70 73 72 34 29 3b 0a 0a 72 65 74 75 72 6e 20 ($psr0);.krsort($psr4);..return.
a0ae0 61 72 72 61 79 28 27 70 73 72 2d 30 27 20 3d 3e 20 24 70 73 72 30 2c 20 27 70 73 72 2d 34 27 20 array('psr-0'.=>.$psr0,.'psr-4'.
a0b00 3d 3e 20 24 70 73 72 34 2c 20 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 24 63 6c 61 73 73 6d 61 =>.$psr4,.'classmap'.=>.$classma
a0b20 70 2c 20 27 66 69 6c 65 73 27 20 3d 3e 20 24 66 69 6c 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a p,.'files'.=>.$files);.}........
a0b40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4c 6f 61 64 65 72 28 61 72 72 public.function.createLoader(arr
a0b60 61 79 20 24 61 75 74 6f 6c 6f 61 64 73 29 0a 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 43 ay.$autoloads).{.$loader.=.new.C
a0b80 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f lassLoader();..if.(isset($autolo
a0ba0 61 64 73 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c ads['psr-0'])).{.foreach.($autol
a0bc0 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 3d 3e 20 24 oads['psr-0'].as.$namespace.=>.$
a0be0 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c path).{.$loader->add($namespace,
a0c00 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 .$path);.}.}..if.(isset($autoloa
a0c20 64 73 5b 27 70 73 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 ds['psr-4'])).{.foreach.($autolo
a0c40 61 64 73 5b 27 70 73 72 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 ads['psr-4'].as.$namespace.=>.$p
a0c60 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 50 73 72 34 28 24 6e 61 6d 65 73 70 61 ath).{.$loader->addPsr4($namespa
a0c80 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b ce,.$path);.}.}..return.$loader;
a0ca0 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 49 6e 63 6c 75 64 .}..protected.function.getInclud
a0cc0 65 50 61 74 68 73 46 69 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 46 69 ePathsFile(array.$packageMap,.Fi
a0ce0 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c lesystem.$filesystem,.$basePath,
a0d00 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 .$vendorPath,.$vendorPathCode,.$
a0d20 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 0a 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 appBaseDirCode).{.$includePaths.
a0d40 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 67 65 4d 61 70 =.array();..foreach.($packageMap
a0d60 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 .as.$item).{.list($package,.$ins
a0d80 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d tallPath).=.$item;..if.(null.!==
a0da0 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 26 20 73 74 72 .$package->getTargetDir().&&.str
a0dc0 6c 65 6e 28 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 3e 20 len($package->getTargetDir()).>.
a0de0 30 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 0).{.$installPath.=.substr($inst
a0e00 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 70 61 63 6b 61 67 65 allPath,.0,.-strlen('/'.$package
a0e20 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 72 65 61 63 68 20 28 ->getTargetDir()));.}..foreach.(
a0e40 24 70 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 20 61 73 20 24 $package->getIncludePaths().as.$
a0e60 69 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 74 72 includePath).{.$includePath.=.tr
a0e80 69 6d 28 24 69 6e 63 6c 75 64 65 50 61 74 68 2c 20 27 2f 27 29 3b 0a 24 69 6e 63 6c 75 64 65 50 im($includePath,.'/');.$includeP
a0ea0 61 74 68 73 5b 5d 20 3d 20 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 24 aths[].=.empty($installPath).?.$
a0ec0 69 6e 63 6c 75 64 65 50 61 74 68 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 includePath.:.$installPath.'/'.$
a0ee0 69 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 63 6c 75 64 65 50 includePath;.}.}..if.(!$includeP
a0f00 61 74 68 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 aths).{.return;.}..$includePaths
a0f20 43 6f 64 65 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 Code.=.'';.foreach.($includePath
a0f40 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 20 s.as.$path).{.$includePathsCode.
a0f60 2e 3d 20 22 20 20 20 20 22 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 .=."...."...$this->getPathCode($
a0f80 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 50 61 filesystem,.$basePath,.$vendorPa
a0fa0 74 68 2c 20 24 70 61 74 68 29 20 2e 20 22 2c 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c th,.$path)...",\n";.}..return.<<
a0fc0 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 <EOF.<?php..//.include_paths.php
a0fe0 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 5c 24 76 65 6e 64 6f .@generated.by.Composer..\$vendo
a1000 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 rDir.=.$vendorPathCode;.\$baseDi
a1020 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 r.=.$appBaseDirCode;..return.arr
a1040 61 79 28 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 29 3b 0a 0a 45 4f 46 3b 0a 7d 0a ay(.$includePathsCode);..EOF;.}.
a1060 0a 70 72 6f 74 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 46 69 .protected.function.getIncludeFi
a1080 6c 65 73 46 69 6c 65 28 61 72 72 61 79 20 24 66 69 6c 65 73 2c 20 46 69 6c 65 73 79 73 74 65 6d lesFile(array.$files,.Filesystem
a10a0 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
a10c0 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
a10e0 69 72 43 6f 64 65 29 0a 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 27 27 3b 0a 66 6f 72 65 61 irCode).{.$filesCode.=.'';.forea
a1100 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 65 29 20 7b 0a 24 ch.($files.as.$functionFile).{.$
a1120 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 3e 67 65 74 50 61 filesCode..=.'....'.$this->getPa
a1140 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 24 thCode($filesystem,.$basePath,.$
a1160 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 2e 22 2c 5c 6e 22 vendorPath,.$functionFile).",\n"
a1180 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 74 75 72 6e 20 66 ;.}..if.(!$filesCode).{.return.f
a11a0 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f alse;.}..return.<<<EOF.<?php..//
a11c0 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 61 74 65 64 20 62 .autoload_files.php.@generated.b
a11e0 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f y.Composer..\$vendorDir.=.$vendo
a1200 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 rPathCode;.\$baseDir.=.$appBaseD
a1220 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 6c 65 73 43 6f 64 irCode;..return.array(.$filesCod
a1240 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 63 74 69 6f 6e 20 e);..EOF;.}..protected.function.
a1260 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 6c 65 73 79 73 74 getPathCode(Filesystem.$filesyst
a1280 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
a12a0 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 62 73 6f 6c 75 74 h).{.if.(!$filesystem->isAbsolut
a12c0 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 61 73 65 50 61 74 ePath($path)).{.$path.=.$basePat
a12e0 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 20 24 66 69 6c 65 h...'/'...$path;.}.$path.=.$file
a1300 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 68 29 3b 0a 0a 24 system->normalizePath($path);..$
a1320 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 70 61 74 68 2e 27 baseDir.=.'';.if.(strpos($path.'
a1340 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 29 20 7b 0a 24 70 /',.$vendorPath.'/').===.0).{.$p
a1360 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 76 65 6e 64 ath.=.substr($path,.strlen($vend
a1380 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 64 6f 72 44 69 72 orPath));.$baseDir.=.'$vendorDir
a13a0 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 0a 24 62 61 73 65 ';..if.($path.!==.false).{.$base
a13c0 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 70 61 74 68 20 3d Dir..=."...";.}.}.else.{.$path.=
a13e0 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 66 69 6c .$filesystem->normalizePath($fil
a1400 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 62 61 73 65 50 esystem->findShortestPath($baseP
a1420 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 66 69 6c 65 73 79 ath,.$path,.true));.if.(!$filesy
a1440 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 29 29 20 7b 0a 24 stem->isAbsolutePath($path)).{.$
a1460 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 70 61 74 68 20 3d baseDir.=.'$baseDir...';.$path.=
a1480 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 67 5f 6d 61 74 63 .'/'...$path;.}.}..if.(preg_matc
a14a0 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 62 61 73 65 44 69 h('/\.phar$/',.$path)).{.$baseDi
a14c0 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 44 69 72 3b 0a 7d r.=."'phar://'..."...$baseDir;.}
a14e0 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 68 20 21 3d 3d 20 ..return.$baseDir...(($path.!==.
a1500 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 20 74 72 75 65 29 false).?.var_export($path,.true)
a1520 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 69 6f 6e 20 67 65 .:."");.}..protected.function.ge
a1540 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 61 72 67 65 tAutoloadFile($vendorPathToTarge
a1560 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 6e 20 3c 3c 3c 41 tDirCode,.$suffix).{.return.<<<A
a1580 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 2e 70 68 70 20 40 UTOLOAD.<?php..//.autoload.php.@
a15a0 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 75 69 72 65 5f 6f generated.by.Composer..require_o
a15c0 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 43 6f 64 65 20 2e nce.$vendorPathToTargetDirCode..
a15e0 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 74 75 72 6e 20 43 .'/autoload_real.php';..return.C
a1600 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 69 78 3a 3a 67 65 omposerAutoloaderInit$suffix::ge
a1620 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 72 6f 74 65 63 74 tLoader();..AUTOLOAD;.}..protect
a1640 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 6c 46 69 6c 65 28 ed.function.getAutoloadRealFile(
a1660 24 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 2c 20 24 $useClassMap,.$useIncludePath,.$
a1680 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 64 65 46 69 6c 65 targetDirLoader,.$useIncludeFile
a16a0 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 73 65 44 69 72 43 s,.$vendorPathCode,.$appBaseDirC
a16c0 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 63 6c 75 64 65 50 ode,.$suffix,.$useGlobalIncludeP
a16e0 61 74 68 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 2c 20 24 63 6c 61 73 73 4d ath,.$prependAutoloader,.$classM
a1700 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 apAuthoritative).{.............$
a1720 66 69 6c 65 20 3d 20 3c 3c 3c 48 45 41 44 45 52 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c file.=.<<<HEADER.<?php..//.autol
a1740 6f 61 64 5f 72 65 61 6c 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f oad_real.php.@generated.by.Compo
a1760 73 65 72 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 ser..class.ComposerAutoloaderIni
a1780 74 24 73 75 66 66 69 78 0a 7b 0a 20 20 20 20 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 5c 24 t$suffix.{.....private.static.\$
a17a0 6c 6f 61 64 65 72 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 loader;......public.static.funct
a17c0 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 ion.loadClassLoader(\$class)....
a17e0 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f .{.........if.('Composer\\Autolo
a1800 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 20 3d 3d 3d 20 5c 24 63 6c 61 73 73 29 20 7b 0a ad\\ClassLoader'.===.\$class).{.
a1820 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f ............require.__DIR__...'/
a1840 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ClassLoader.php';.........}.....
a1860 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 }......public.static.function.ge
a1880 74 4c 6f 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 6e 75 6c 6c tLoader().....{.........if.(null
a18a0 20 21 3d 3d 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .!==.self::\$loader).{..........
a18c0 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 20 20 ...return.self::\$loader;.......
a18e0 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 ..}..........spl_autoload_regist
a1900 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 er(array('ComposerAutoloaderInit
a1920 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 2c 20 74 72 $suffix',.'loadClassLoader'),.tr
a1940 75 65 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 20 20 20 20 20 20 20 ue,.$prependAutoloader);........
a1960 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 20 3d 20 5c 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 .self::\$loader.=.\$loader.=.new
a1980 20 5c 5c 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 .\\Composer\\Autoload\\ClassLoad
a19a0 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 er();.........spl_autoload_unreg
a19c0 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 ister(array('ComposerAutoloaderI
a19e0 6e 69 74 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 nit$suffix',.'loadClassLoader'))
a1a00 3b 0a 0a 0a 48 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 ;...HEADER;..if.($useIncludePath
a1a20 29 20 7b 0a 24 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 ).{.$file..=.<<<'INCLUDE_PATH'..
a1a40 20 20 20 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 72 65 20 5f .......$includePaths.=.require._
a1a60 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 3b 0a 20 _DIR__...'/include_paths.php';..
a1a80 20 20 20 20 20 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 .......array_push($includePaths,
a1aa0 20 67 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 29 29 3b 0a 20 20 20 20 20 20 20 20 73 65 .get_include_path());.........se
a1ac0 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 54 48 5f 53 45 50 41 52 41 54 t_include_path(join(PATH_SEPARAT
a1ae0 4f 52 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 29 3b 0a 0a 0a 49 4e 43 4c 55 44 45 5f 50 OR,.$includePaths));...INCLUDE_P
a1b00 41 54 48 3b 0a 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 ATH;.}..$file..=.<<<'PSR0'......
a1b20 20 20 20 24 6d 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 ...$map.=.require.__DIR__...'/au
a1b40 74 6f 6c 6f 61 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 toload_namespaces.php';.........
a1b60 66 6f 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 foreach.($map.as.$namespace.=>.$
a1b80 70 61 74 68 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 73 65 74 path).{.............$loader->set
a1ba0 28 24 6e 61 6d 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 ($namespace,.$path);.........}..
a1bc0 0a 50 53 52 30 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 .PSR0;..$file..=.<<<'PSR4'......
a1be0 20 20 20 24 6d 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 ...$map.=.require.__DIR__...'/au
a1c00 74 6f 6c 6f 61 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 toload_psr4.php';.........foreac
a1c20 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 20 h.($map.as.$namespace.=>.$path).
a1c40 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 50 73 72 34 28 24 {.............$loader->setPsr4($
a1c60 6e 61 6d 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 namespace,.$path);.........}...P
a1c80 53 52 34 3b 0a 0a 69 66 20 28 24 75 73 65 43 6c 61 73 73 4d 61 70 29 20 7b 0a 24 66 69 6c 65 20 SR4;..if.($useClassMap).{.$file.
a1ca0 2e 3d 20 3c 3c 3c 27 43 4c 41 53 53 4d 41 50 27 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 4d .=.<<<'CLASSMAP'.........$classM
a1cc0 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
a1ce0 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6c d_classmap.php';.........if.($cl
a1d00 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 assMap).{.............$loader->a
a1d20 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 7d ddClassMap($classMap);.........}
a1d40 0a 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 69 66 20 28 24 63 6c 61 73 73 4d 61 70 41 75 74 ...CLASSMAP;.}..if.($classMapAut
a1d60 68 6f 72 69 74 61 74 69 76 65 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 43 4c 41 53 53 horitative).{.$file..=.<<<'CLASS
a1d80 4d 41 50 41 55 54 48 4f 52 49 54 41 54 49 56 45 27 0a 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 MAPAUTHORITATIVE'.........$loade
a1da0 72 2d 3e 73 65 74 43 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 28 74 72 75 65 r->setClassMapAuthoritative(true
a1dc0 29 3b 0a 0a 43 4c 41 53 53 4d 41 50 41 55 54 48 4f 52 49 54 41 54 49 56 45 3b 0a 7d 0a 0a 69 66 );..CLASSMAPAUTHORITATIVE;.}..if
a1de0 20 28 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 6c 65 .($useGlobalIncludePath).{.$file
a1e00 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 50 41 54 48 27 0a 20 20 20 20 20 20 20 20 24 6c 6f ..=.<<<'INCLUDEPATH'.........$lo
a1e20 61 64 65 72 2d 3e 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 0a ader->setUseIncludePath(true);..
a1e40 49 4e 43 4c 55 44 45 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 28 24 74 61 72 67 65 74 44 69 72 4c 6f INCLUDEPATH;.}..if.($targetDirLo
a1e60 61 64 65 72 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 41 55 54 ader).{.$file..=.<<<REGISTER_AUT
a1e80 4f 4c 4f 41 44 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 OLOAD.........spl_autoload_regis
a1ea0 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 ter(array('ComposerAutoloaderIni
a1ec0 74 24 73 75 66 66 69 78 27 2c 20 27 61 75 74 6f 6c 6f 61 64 27 29 2c 20 74 72 75 65 2c 20 74 72 t$suffix',.'autoload'),.true,.tr
a1ee0 75 65 29 3b 0a 0a 0a 52 45 47 49 53 54 45 52 5f 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 24 66 69 ue);...REGISTER_AUTOLOAD;.}..$fi
a1f00 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 4c 4f 41 44 45 52 0a 20 20 20 20 20 20 20 le..=.<<<REGISTER_LOADER........
a1f20 20 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 41 75 74 6f .\$loader->register($prependAuto
a1f40 6c 6f 61 64 65 72 29 3b 0a 0a 0a 52 45 47 49 53 54 45 52 5f 4c 4f 41 44 45 52 3b 0a 0a 69 66 20 loader);...REGISTER_LOADER;..if.
a1f60 28 24 75 73 65 49 6e 63 6c 75 64 65 46 69 6c 65 73 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c ($useIncludeFiles).{.$file..=.<<
a1f80 3c 49 4e 43 4c 55 44 45 5f 46 49 4c 45 53 0a 20 20 20 20 20 20 20 20 5c 24 69 6e 63 6c 75 64 65 <INCLUDE_FILES.........\$include
a1fa0 46 69 6c 65 73 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 Files.=.require.__DIR__...'/auto
a1fc0 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 load_files.php';.........foreach
a1fe0 20 28 5c 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 20 61 73 20 5c 24 66 69 6c 65 29 20 7b 0a 20 20 .(\$includeFiles.as.\$file).{...
a2000 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 65 72 52 65 71 75 69 72 65 24 73 75 66 66 69 78 ..........composerRequire$suffix
a2020 28 5c 24 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 49 4e 43 4c 55 44 45 5f 46 49 (\$file);.........}...INCLUDE_FI
a2040 4c 45 53 3b 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 LES;.}..$file..=.<<<METHOD_FOOTE
a2060 52 0a 20 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 R.........return.\$loader;.....}
a2080 0a 0a 4d 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 ..METHOD_FOOTER;..$file..=.$targ
a20a0 65 74 44 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 etDirLoader;..return.$file...<<<
a20c0 46 4f 4f 54 45 52 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 6f 73 65 72 52 65 71 75 69 FOOTER.}..function.composerRequi
a20e0 72 65 24 73 75 66 66 69 78 28 5c 24 66 69 6c 65 29 0a 7b 0a 20 20 20 20 72 65 71 75 69 72 65 20 re$suffix(\$file).{.....require.
a2100 5c 24 66 69 6c 65 3b 0a 7d 0a 0a 46 4f 4f 54 45 52 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 \$file;.}..FOOTER;.}..protected.
a2120 66 75 6e 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 function.parseAutoloadsType(arra
a2140 79 20 24 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 y.$packageMap,.$type,.PackageInt
a2160 65 72 66 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 erface.$mainPackage).{.$autoload
a2180 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 61 63 6b 61 67 65 4d s.=.array();..foreach.($packageM
a21a0 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 ap.as.$item).{.list($package,.$i
a21c0 6e 73 74 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 nstallPath).=.$item;..$autoload.
a21e0 3d 20 24 70 61 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 24 =.$package->getAutoload();.if.($
a2200 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 26 26 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 6d this->devMode.&&.$package.===.$m
a2220 61 69 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 5f ainPackage).{.$autoload.=.array_
a2240 6d 65 72 67 65 5f 72 65 63 75 72 73 69 76 65 28 24 61 75 74 6f 6c 6f 61 64 2c 20 24 70 61 63 6b merge_recursive($autoload,.$pack
a2260 61 67 65 2d 3e 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 age->getDevAutoload());.}....if.
a2280 28 21 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 (!isset($autoload[$type]).||.!is
a22a0 5f 61 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 _array($autoload[$type])).{.cont
a22c0 69 6e 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 inue;.}.if.(null.!==.$package->g
a22e0 65 74 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 etTargetDir().&&.$package.!==.$m
a2300 61 69 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 ainPackage).{.$installPath.=.sub
a2320 73 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 str($installPath,.0,.-strlen('/'
a2340 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a .$package->getTargetDir()));.}..
a2360 66 6f 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 foreach.($autoload[$type].as.$na
a2380 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 28 61 mespace.=>.$paths).{.foreach.((a
a23a0 72 72 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 28 24 74 rray).$paths.as.$path).{.if.(($t
a23c0 79 70 65 20 3d 3d 3d 20 27 66 69 6c 65 73 27 20 7c 7c 20 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c ype.===.'files'.||.$type.===.'cl
a23e0 61 73 73 6d 61 70 27 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 assmap').&&.$package->getTargetD
a2400 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 50 61 74 ir().&&.!is_readable($installPat
a2420 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d h.'/'.$path)).{...if.($package.=
a2440 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 ==.$mainPackage).{.$targetDir.=.
a2460 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\\>',.'[\\
a2480 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
a24a0 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
a24c0 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.=
a24e0 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
a2500 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,.'\\/')
a2520 29 2c 20 27 5c 5c 2f 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 70 61 74 68 20 3d 20 24 70 ),.'\\/');.}.else.{...$path.=.$p
a2540 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()...'/'...$
a2560 70 61 74 68 3b 0a 7d 0a 7d 0a 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 65 6d 70 74 79 path;.}.}..$relativePath.=.empty
a2580 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 28 65 6d 70 74 79 28 24 70 61 74 68 29 20 3f ($installPath).?.(empty($path).?
a25a0 20 27 2e 27 20 3a 20 24 70 61 74 68 29 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 .'.'.:.$path).:.$installPath.'/'
a25c0 2e 24 70 61 74 68 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 66 69 6c 65 73 27 20 7c .$path;..if.($type.===.'files'.|
a25e0 7c 20 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b 0a 24 61 75 74 6f 6c |.$type.===.'classmap').{.$autol
a2600 6f 61 64 73 5b 5d 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 63 6f 6e 74 69 6e 75 65 oads[].=.$relativePath;.continue
a2620 3b 0a 7d 0a 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 ;.}..$autoloads[$namespace][].=.
a2640 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 75 $relativePath;.}.}.}..return.$au
a2660 74 6f 6c 6f 61 64 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 toloads;.}..........protected.fu
a2680 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 61 63 nction.sortPackageMap(array.$pac
a26a0 6b 61 67 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a kageMap).{.$packages.=.array();.
a26c0 24 70 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 73 61 67 65 4c 69 73 74 20 3d 20 61 $paths.=.array();.$usageList.=.a
a26e0 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 73 rray();..foreach.($packageMap.as
a2700 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 70 61 74 68 29 20 .$item).{.list($package,.$path).
a2720 3d 20 24 69 74 65 6d 3b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 =.$item;.$name.=.$package->getNa
a2740 6d 65 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 me();.$packages[$name].=.$packag
a2760 65 3b 0a 24 70 61 74 68 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 74 68 3b 0a 0a 66 6f 72 65 61 e;.$paths[$name].=.$path;..forea
a2780 63 68 20 28 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 ch.(array_merge($package->getReq
a27a0 75 69 72 65 73 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 uires(),.$package->getDevRequire
a27c0 73 28 29 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 6c 69 6e 6b s()).as.$link).{.$target.=.$link
a27e0 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 24 75 73 61 67 65 4c 69 73 74 5b 24 74 61 72 67 65 ->getTarget();.$usageList[$targe
a2800 74 5d 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 70 75 74 69 6e 67 20 3d 20 t][].=.$name;.}.}..$computing.=.
a2820 61 72 72 61 79 28 29 3b 0a 24 63 6f 6d 70 75 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 array();.$computed.=.array();.$c
a2840 6f 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 6e 61 omputeImportance.=.function.($na
a2860 6d 65 29 20 75 73 65 20 28 26 24 63 6f 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 65 2c 20 26 24 me).use.(&$computeImportance,.&$
a2880 63 6f 6d 70 75 74 69 6e 67 2c 20 26 24 63 6f 6d 70 75 74 65 64 2c 20 24 75 73 61 67 65 4c 69 73 computing,.&$computed,.$usageLis
a28a0 74 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 75 74 65 64 5b 24 6e 61 6d 65 t).{...if.(isset($computed[$name
a28c0 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 75 74 65 64 5b 24 6e 61 6d 65 5d 3b 0a 7d ])).{.return.$computed[$name];.}
a28e0 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 75 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 ....if.(isset($computing[$name])
a2900 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 63 6f 6d 70 75 74 69 6e 67 5b 24 6e 61 6d ).{.return.0;.}..$computing[$nam
a2920 65 5d 20 3d 20 74 72 75 65 3b 0a 24 77 65 69 67 68 74 20 3d 20 30 3b 0a 0a 69 66 20 28 69 73 73 e].=.true;.$weight.=.0;..if.(iss
a2940 65 74 28 24 75 73 61 67 65 4c 69 73 74 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 et($usageList[$name])).{.foreach
a2960 20 28 24 75 73 61 67 65 4c 69 73 74 5b 24 6e 61 6d 65 5d 20 61 73 20 24 75 73 65 72 29 20 7b 0a .($usageList[$name].as.$user).{.
a2980 24 77 65 69 67 68 74 20 2d 3d 20 31 20 2d 20 24 63 6f 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 $weight.-=.1.-.$computeImportanc
a29a0 65 28 24 75 73 65 72 29 3b 0a 7d 0a 7d 0a 0a 75 6e 73 65 74 28 24 63 6f 6d 70 75 74 69 6e 67 5b e($user);.}.}..unset($computing[
a29c0 24 6e 61 6d 65 5d 29 3b 0a 24 63 6f 6d 70 75 74 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 77 65 69 $name]);.$computed[$name].=.$wei
a29e0 67 68 74 3b 0a 0a 72 65 74 75 72 6e 20 24 77 65 69 67 68 74 3b 0a 7d 3b 0a 0a 24 77 65 69 67 68 ght;..return.$weight;.};..$weigh
a2a00 74 4c 69 73 74 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 tList.=.array();..foreach.($pack
a2a20 61 67 65 73 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 77 65 ages.as.$name.=>.$package).{.$we
a2a40 69 67 68 74 20 3d 20 24 63 6f 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 65 28 24 6e 61 6d 65 29 ight.=.$computeImportance($name)
a2a60 3b 0a 24 77 65 69 67 68 74 4c 69 73 74 5b 24 6e 61 6d 65 5d 20 3d 20 24 77 65 69 67 68 74 3b 0a ;.$weightList[$name].=.$weight;.
a2a80 7d 0a 0a 24 73 74 61 62 6c 65 5f 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 61 72 }..$stable_sort.=.function.(&$ar
a2aa0 72 61 79 29 20 7b 0a 73 74 61 74 69 63 20 24 74 72 61 6e 73 66 6f 72 6d 2c 20 24 72 65 73 74 6f ray).{.static.$transform,.$resto
a2ac0 72 65 3b 0a 0a 24 69 20 3d 20 30 3b 0a 0a 69 66 20 28 21 24 74 72 61 6e 73 66 6f 72 6d 29 20 7b re;..$i.=.0;..if.(!$transform).{
a2ae0 0a 24 74 72 61 6e 73 66 6f 72 6d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 76 2c 20 24 6b 29 .$transform.=.function.(&$v,.$k)
a2b00 20 75 73 65 20 28 26 24 69 29 20 7b 0a 24 76 20 3d 20 61 72 72 61 79 28 24 76 2c 20 2b 2b 24 69 .use.(&$i).{.$v.=.array($v,.++$i
a2b20 2c 20 24 6b 2c 20 24 76 29 3b 0a 7d 3b 0a 0a 24 72 65 73 74 6f 72 65 20 3d 20 66 75 6e 63 74 69 ,.$k,.$v);.};..$restore.=.functi
a2b40 6f 6e 20 28 26 24 76 2c 20 24 6b 29 20 7b 0a 24 76 20 3d 20 24 76 5b 33 5d 3b 0a 7d 3b 0a 7d 0a on.(&$v,.$k).{.$v.=.$v[3];.};.}.
a2b60 0a 61 72 72 61 79 5f 77 61 6c 6b 28 24 61 72 72 61 79 2c 20 24 74 72 61 6e 73 66 6f 72 6d 29 3b .array_walk($array,.$transform);
a2b80 0a 61 73 6f 72 74 28 24 61 72 72 61 79 29 3b 0a 61 72 72 61 79 5f 77 61 6c 6b 28 24 61 72 72 61 .asort($array);.array_walk($arra
a2ba0 79 2c 20 24 72 65 73 74 6f 72 65 29 3b 0a 7d 3b 0a 0a 24 73 74 61 62 6c 65 5f 73 6f 72 74 28 24 y,.$restore);.};..$stable_sort($
a2bc0 77 65 69 67 68 74 4c 69 73 74 29 3b 0a 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 20 weightList);..$sortedPackageMap.
a2be0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 =.array();..foreach.(array_keys(
a2c00 24 77 65 69 67 68 74 4c 69 73 74 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 73 6f 72 74 65 64 $weightList).as.$name).{.$sorted
a2c20 50 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 73 5b 24 PackageMap[].=.array($packages[$
a2c40 6e 61 6d 65 5d 2c 20 24 70 61 74 68 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e name],.$paths[$name]);.}..return
a2c60 20 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .$sortedPackageMap;.}.}.<?php...
a2c80 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 41 75 74 ..........namespace.Composer\Aut
a2ca0 6f 6c 6f 61 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 46 69 oload;..use.Symfony\Component\Fi
a2cc0 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 nder\Finder;.use.Composer\IO\IOI
a2ce0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4d 61 70 47 nterface;........class.ClassMapG
a2d00 65 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 enerator.{.......public.static.f
a2d20 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 64 69 72 73 2c 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 unction.dump($dirs,.$file).{.$ma
a2d40 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 ps.=.array();..foreach.($dirs.as
a2d60 20 24 64 69 72 29 20 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 .$dir).{.$maps.=.array_merge($ma
a2d80 70 73 2c 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a ps,.static::createMap($dir));.}.
a2da0 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 .file_put_contents($file,.sprint
a2dc0 66 28 27 3c 3f 70 68 70 20 72 65 74 75 72 6e 20 25 73 3b 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 f('<?php.return.%s;',.var_export
a2de0 28 24 6d 61 70 73 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ($maps,.true)));.}..............
a2e00 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 public.static.function.createMap
a2e20 28 24 70 61 74 68 2c 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 2c 20 49 4f 49 6e 74 ($path,.$whitelist.=.null,.IOInt
a2e40 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 2c 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 erface.$io.=.null,.$namespace.=.
a2e60 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 61 74 68 29 29 20 7b 0a null).{.if.(is_string($path)).{.
a2e80 69 66 20 28 69 73 5f 66 69 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 61 72 if.(is_file($path)).{.$path.=.ar
a2ea0 72 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 70 61 74 68 29 29 3b 0a 7d 20 ray(new.\SplFileInfo($path));.}.
a2ec0 65 6c 73 65 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d elseif.(is_dir($path)).{.$path.=
a2ee0 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 66 69 6c 65 73 28 29 2d 3e 66 6f 6c 6c .Finder::create()->files()->foll
a2f00 6f 77 4c 69 6e 6b 73 28 29 2d 3e 6e 61 6d 65 28 27 2f 5c 2e 28 70 68 70 7c 69 6e 63 7c 68 68 29 owLinks()->name('/\.(php|inc|hh)
a2f20 24 2f 27 29 2d 3e 69 6e 28 24 70 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 $/')->in($path);.}.else.{.throw.
a2f40 6e 65 77 20 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 new.\RuntimeException(.'Could.no
a2f60 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 20 22 27 2e 24 70 61 t.scan.for.classes.inside."'.$pa
a2f80 74 68 2e 0a 27 22 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 th..'".which.does.not.appear.to.
a2fa0 62 65 20 61 20 66 69 6c 65 20 6e 6f 72 20 61 20 66 6f 6c 64 65 72 27 0a 29 3b 0a 7d 0a 7d 0a 0a be.a.file.nor.a.folder'.);.}.}..
a2fc0 24 6d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 20 $map.=.array();..foreach.($path.
a2fe0 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 50 61 74 68 20 3d 20 24 66 69 6c 65 2d 3e 67 as.$file).{.$filePath.=.$file->g
a3000 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 70 61 74 etRealPath();..if.(!in_array(pat
a3020 68 69 6e 66 6f 28 24 66 69 6c 65 50 61 74 68 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 hinfo($filePath,.PATHINFO_EXTENS
a3040 49 4f 4e 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 69 6e 63 27 2c 20 27 68 68 27 29 29 ION),.array('php',.'inc',.'hh'))
a3060 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 74 20 ).{.continue;.}..if.($whitelist.
a3080 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 74 72 &&.!preg_match($whitelist,.strtr
a30a0 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 74 69 ($filePath,.'\\',.'/'))).{.conti
a30c0 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 6c 61 nue;.}..$classes.=.self::findCla
a30e0 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 61 73 sses($filePath);..foreach.($clas
a3100 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 ses.as.$class).{...if.(null.!==.
a3120 24 6e 61 6d 65 73 70 61 63 65 20 26 26 20 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 $namespace.&&.0.!==.strpos($clas
a3140 73 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 s,.$namespace)).{.continue;.}..i
a3160 66 20 28 21 69 73 73 65 74 28 24 6d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 6d 61 70 5b f.(!isset($map[$class])).{.$map[
a3180 24 63 6c 61 73 73 5d 20 3d 20 24 66 69 6c 65 50 61 74 68 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 $class].=.$filePath;.}.elseif.($
a31a0 69 6f 20 26 26 20 24 6d 61 70 5b 24 63 6c 61 73 73 5d 20 21 3d 3d 20 24 66 69 6c 65 50 61 74 68 io.&&.$map[$class].!==.$filePath
a31c0 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 2f 28 74 65 73 74 7c 66 69 78 74 75 72 65 .&&.!preg_match('{/(test|fixture
a31e0 7c 65 78 61 6d 70 6c 65 29 73 3f 2f 7d 69 27 2c 20 73 74 72 74 72 28 24 6d 61 70 5b 24 63 6c 61 |example)s?/}i',.strtr($map[$cla
a3200 73 73 5d 2e 27 20 27 2e 24 66 69 6c 65 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 ss].'.'.$filePath,.'\\',.'/'))).
a3220 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 {.$io->writeError(.'<warning>War
a3240 6e 69 6e 67 3a 20 41 6d 62 69 67 75 6f 75 73 20 63 6c 61 73 73 20 72 65 73 6f 6c 75 74 69 6f 6e ning:.Ambiguous.class.resolution
a3260 2c 20 22 27 2e 24 63 6c 61 73 73 2e 27 22 27 2e 0a 27 20 77 61 73 20 66 6f 75 6e 64 20 69 6e 20 ,."'.$class.'"'..'.was.found.in.
a3280 62 6f 74 68 20 22 27 2e 24 6d 61 70 5b 24 63 6c 61 73 73 5d 2e 27 22 20 61 6e 64 20 22 27 2e 24 both."'.$map[$class].'".and."'.$
a32a0 66 69 6c 65 50 61 74 68 2e 27 22 2c 20 74 68 65 20 66 69 72 73 74 20 77 69 6c 6c 20 62 65 20 75 filePath.'",.the.first.will.be.u
a32c0 73 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e sed.</warning>'.);.}.}.}..return
a32e0 20 24 6d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 .$map;.}.........private.static.
a3300 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 65 function.findClasses($path).{.$e
a3320 78 74 72 61 54 79 70 65 73 20 3d 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f xtraTypes.=.version_compare(PHP_
a3340 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 29 20 3f 20 27 27 20 3a 20 27 7c 74 72 VERSION,.'5.4',.'<').?.''.:.'|tr
a3360 61 69 74 27 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 ait';.if.(defined('HHVM_VERSION'
a3380 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 48 48 56 4d 5f 56 45 52 53 49 4f ).&&.version_compare(HHVM_VERSIO
a33a0 4e 2c 20 27 33 2e 33 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 65 78 74 72 61 54 79 70 65 73 20 2e N,.'3.3',.'>=')).{.$extraTypes..
a33c0 3d 20 27 7c 65 6e 75 6d 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 =.'|enum';.}..try.{.$contents.=.
a33e0 40 70 68 70 5f 73 74 72 69 70 5f 77 68 69 74 65 73 70 61 63 65 28 24 70 61 74 68 29 3b 0a 69 66 @php_strip_whitespace($path);.if
a3400 20 28 21 24 63 6f 6e 74 65 6e 74 73 29 20 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 .(!$contents).{.if.(!file_exists
a3420 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 ($path)).{.throw.new.\Exception(
a3440 27 46 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 7d 0a 69 66 20 28 21 69 'File.does.not.exist');.}.if.(!i
a3460 73 5f 72 65 61 64 61 62 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c s_readable($path)).{.throw.new.\
a3480 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6c 65 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 27 Exception('File.is.not.readable'
a34a0 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b );.}.}.}.catch.(\Exception.$e).{
a34c0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f .throw.new.\RuntimeException('Co
a34e0 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 65 20 uld.not.scan.for.classes.inside.
a3500 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 28 29 2c '.$path.":.\n".$e->getMessage(),
a3520 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 28 27 7b .0,.$e);.}....if.(!preg_match('{
a3540 5c 62 28 3f 3a 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 65 78 74 72 61 54 79 70 65 \b(?:class|interface'.$extraType
a3560 73 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 s.')\s}i',.$contents)).{.return.
a3580 61 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 array();.}....$contents.=.preg_r
a35a0 65 70 6c 61 63 65 28 27 7b 3c 3c 3c 5c 73 2a 28 5c 27 3f 29 28 5c 77 2b 29 5c 5c 31 28 3f 3a 5c eplace('{<<<\s*(\'?)(\w+)\\1(?:\
a35c0 72 5c 6e 7c 5c 6e 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 r\n|\n|\r)(?:.*?)(?:\r\n|\n|\r)\
a35e0 5c 32 28 3f 3d 5c 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 \2(?=\r\n|\n|\r|;)}s',.'null',.$
a3600 63 6f 6e 74 65 6e 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 contents);...$contents.=.preg_re
a3620 70 6c 61 63 65 28 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 place('{"[^"\\\\]*(\\\\.[^"\\\\]
a3640 2a 29 2a 22 7c 5c 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 *)*"|\'[^\'\\\\]*(\\\\.[^\'\\\\]
a3660 2a 29 2a 5c 27 7d 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 *)*\'}s',.'null',.$contents);...
a3680 69 66 20 28 73 75 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 if.(substr($contents,.0,.2).!==.
a36a0 27 3c 3f 27 29 20 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 '<?').{.$contents.=.preg_replace
a36c0 28 27 7b 5e 2e 2b 3f 3c 5c 3f 7d 73 27 2c 20 27 3c 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 2c 20 ('{^.+?<\?}s',.'<?',.$contents,.
a36e0 31 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 29 3b 0a 69 66 20 28 24 72 65 70 6c 61 63 65 6d 1,.$replacements);.if.($replacem
a3700 65 6e 74 73 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a ents.===.0).{.return.array();.}.
a3720 7d 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 27 7b 5c }...$contents.=.preg_replace('{\
a3740 3f 3e 2e 2b 3c 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 ?>.+<\?}s',.'?><?',.$contents);.
a3760 0a 20 24 70 6f 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 ..$pos.=.strrpos($contents,.'?>'
a3780 29 3b 0a 69 66 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 );.if.(false.!==.$pos.&&.false.=
a37a0 3d 3d 20 73 74 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 ==.strpos(substr($contents,.$pos
a37c0 29 2c 20 27 3c 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 ),.'<?')).{.$contents.=.substr($
a37e0 63 6f 6e 74 65 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 contents,.0,.$pos);.}..preg_matc
a3800 68 5f 61 6c 6c 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 h_all('{.............(?:........
a3820 20 20 20 20 20 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 ..........\b(?<![\$:>])(?P<type>
a3840 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 65 78 74 72 61 54 79 70 65 73 2e 27 29 20 class|interface'.$extraTypes.').
a3860 5c 73 2b 20 28 3f 50 3c 6e 61 6d 65 3e 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 3a 5d \s+.(?P<name>[a-zA-Z_\x7f-\xff:]
a3880 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 3a 5c 2d 5d 2a 29 0a 20 20 20 20 20 [a-zA-Z0-9_\x7f-\xff:\-]*)......
a38a0 20 20 20 20 20 20 20 20 20 20 7c 20 5c 62 28 3f 3c 21 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 6e 73 3e ..........|.\b(?<![\$:>])(?P<ns>
a38c0 6e 61 6d 65 73 70 61 63 65 29 20 28 3f 50 3c 6e 73 6e 61 6d 65 3e 5c 73 2b 5b 61 2d 7a 41 2d 5a namespace).(?P<nsname>\s+[a-zA-Z
a38e0 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d _\x7f-\xff][a-zA-Z0-9_\x7f-\xff]
a3900 2a 28 3f 3a 5c 73 2a 5c 5c 5c 5c 5c 73 2a 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d *(?:\s*\\\\\s*[a-zA-Z_\x7f-\xff]
a3920 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 29 2a 29 3f 20 5c 73 2a 5b 5c [a-zA-Z0-9_\x7f-\xff]*)*)?.\s*[\
a3940 7b 3b 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7d 69 78 27 2c 20 {;].............).........}ix',.
a3960 24 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 63 6c 61 73 73 65 73 20 $contents,.$matches);..$classes.
a3980 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 0a 66 6f 72 =.array();.$namespace.=.'';..for
a39a0 20 28 24 69 20 3d 20 30 2c 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 5b .($i.=.0,.$len.=.count($matches[
a39c0 27 74 79 70 65 27 5d 29 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 'type']);.$i.<.$len;.$i++).{.if.
a39e0 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 27 6e 73 27 5d 5b 24 69 5d 29 29 20 7b 0a 24 (!empty($matches['ns'][$i])).{.$
a3a00 6e 61 6d 65 73 70 61 63 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 20 namespace.=.str_replace(array('.
a3a20 27 2c 20 22 5c 74 22 2c 20 22 5c 72 22 2c 20 22 5c 6e 22 29 2c 20 27 27 2c 20 24 6d 61 74 63 68 ',."\t",."\r",."\n"),.'',.$match
a3a40 65 73 5b 27 6e 73 6e 61 6d 65 27 5d 5b 24 69 5d 29 20 2e 20 27 5c 5c 27 3b 0a 7d 20 65 6c 73 65 es['nsname'][$i])...'\\';.}.else
a3a60 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 27 6e 61 6d 65 27 5d 5b 24 69 5d 3b .{.$name.=.$matches['name'][$i];
a3a80 0a 69 66 20 28 24 6e 61 6d 65 5b 30 5d 20 3d 3d 3d 20 27 3a 27 29 20 7b 0a 0a 20 24 6e 61 6d 65 .if.($name[0].===.':').{...$name
a3aa0 20 3d 20 27 78 68 70 27 2e 73 75 62 73 74 72 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 .=.'xhp'.substr(str_replace(arra
a3ac0 79 28 27 2d 27 2c 20 27 3a 27 29 2c 20 61 72 72 61 79 28 27 5f 27 2c 20 27 5f 5f 27 29 2c 20 24 y('-',.':'),.array('_',.'__'),.$
a3ae0 6e 61 6d 65 29 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 6d 61 74 63 68 65 73 5b 27 name),.1);.}.else.if.($matches['
a3b00 74 79 70 65 27 5d 5b 24 69 5d 20 3d 3d 3d 20 27 65 6e 75 6d 27 29 20 7b 0a 0a 20 0a 20 0a 20 0a type'][$i].===.'enum').{........
a3b20 20 24 6e 61 6d 65 20 3d 20 72 74 72 69 6d 28 24 6e 61 6d 65 2c 20 27 3a 27 29 3b 0a 7d 0a 24 63 .$name.=.rtrim($name,.':');.}.$c
a3b40 6c 61 73 73 65 73 5b 5d 20 3d 20 6c 74 72 69 6d 28 24 6e 61 6d 65 73 70 61 63 65 20 2e 20 24 6e lasses[].=.ltrim($namespace...$n
a3b60 61 6d 65 2c 20 27 5c 5c 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 65 73 ame,.'\\');.}.}..return.$classes
a3b80 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
a3ba0 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 41 75 74 6f 6c 6f 61 .Composer;..use.Composer\Autoloa
a3bc0 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 d\AutoloadGenerator;.use.Compose
a3be0 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 75 6c 74 50 6f 6c 69 r\DependencyResolver\DefaultPoli
a3c00 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 63 79 52 65 73 6f 6c cy;.use.Composer\DependencyResol
a3c20 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 74 69 6f 6e 3b 0a 75 ver\Operation\UpdateOperation;.u
a3c40 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 4f se.Composer\DependencyResolver\O
a3c60 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 3b 0a 75 73 65 20 43 peration\InstallOperation;.use.C
a3c80 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 omposer\DependencyResolver\Opera
a3ca0 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 75 73 65 20 43 6f 6d tion\UninstallOperation;.use.Com
a3cc0 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 poser\DependencyResolver\Operati
a3ce0 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f on\OperationInterface;.use.Compo
a3d00 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 6f 6c 3b 0a 75 73 65 ser\DependencyResolver\Pool;.use
a3d20 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 52 65 71 .Composer\DependencyResolver\Req
a3d40 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 65 6e 63 79 52 65 73 uest;.use.Composer\DependencyRes
a3d60 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 44 65 70 65 6e 64 65 olver\Rule;.use.Composer\Depende
a3d80 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 6f 6d 70 6f 73 65 72 ncyResolver\Solver;.use.Composer
a3da0 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 50 72 6f 62 6c 65 \DependencyResolver\SolverProble
a3dc0 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 5c 44 6f 77 6e 6c 6f msException;.use.Composer\Downlo
a3de0 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 70 6f 73 ader\DownloadManager;.use.Compos
a3e00 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 70 61 74 63 68 er\EventDispatcher\EventDispatch
a3e20 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 72 5c 49 6e 73 74 61 er;.use.Composer\Installer\Insta
a3e40 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 73 65 72 5c 49 6e 73 llationManager;.use.Composer\Ins
a3e60 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 taller\InstallerEvents;.use.Comp
a3e80 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 oser\Installer\NoopInstaller;.us
a3ea0 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
a3ec0 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f omposer\Json\JsonFile;.use.Compo
a3ee0 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f ser\Package\AliasPackage;.use.Co
a3f00 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;.
a3f20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 use.Composer\Package\Link;.use.C
a3f40 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 omposer\Package\LinkConstraint\V
a3f60 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ersionConstraint;.use.Composer\P
a3f80 61 63 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 50 61 63 6b ackage\Locker;.use.Composer\Pack
a3fa0 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 age\PackageInterface;.use.Compos
a3fc0 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b er\Package\RootPackageInterface;
a3fe0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 .use.Composer\Repository\Composi
a4000 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 teRepository;.use.Composer\Repos
a4020 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a itory\InstalledArrayRepository;.
a4040 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 use.Composer\Repository\Installe
a4060 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f dFilesystemRepository;.use.Compo
a4080 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 74 6f 72 ser\Repository\PlatformRepositor
a40a0 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 70 6f 73 y;.use.Composer\Repository\Repos
a40c0 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 52 65 70 itoryInterface;.use.Composer\Rep
a40e0 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 ository\RepositoryManager;.use.C
a4100 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a omposer\Script\ScriptEvents;....
a4120 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 ....class.Installer.{....protect
a4140 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a ed.$io;.....protected.$config;..
a4160 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 ...protected.$package;.....prote
a4180 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 cted.$downloadManager;.....prote
a41a0 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f cted.$repositoryManager;.....pro
a41c0 74 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 tected.$locker;.....protected.$i
a41e0 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 nstallationManager;.....protecte
a4200 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 d.$eventDispatcher;.....protecte
a4220 64 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 d.$autoloadGenerator;..protected
a4240 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 .$preferSource.=.false;.protecte
a4260 64 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 d.$preferDist.=.false;.protected
a4280 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 66 61 6c 73 65 3b 0a 70 72 .$optimizeAutoloader.=.false;.pr
a42a0 6f 74 65 63 74 65 64 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 otected.$devMode.=.false;.protec
a42c0 74 65 64 20 24 64 72 79 52 75 6e 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ted.$dryRun.=.false;.protected.$
a42e0 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 verbose.=.false;.protected.$upda
a4300 74 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 75 6d 70 41 75 74 6f 6c te.=.false;.protected.$dumpAutol
a4320 6f 61 64 65 72 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6e 53 63 72 69 oader.=.true;.protected.$runScri
a4340 70 74 73 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 67 6e 6f 72 65 50 6c 61 pts.=.true;.protected.$ignorePla
a4360 74 66 6f 72 6d 52 65 71 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 tformReqs.=.false;.protected.$pr
a4380 65 66 65 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 70 eferStable.=.false;.protected.$p
a43a0 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 referLowest.=.false;......protec
a43c0 74 65 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 ted.$updateWhitelist.=.null;.pro
a43e0 74 65 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 tected.$whitelistDependencies.=.
a4400 66 61 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 false;.....protected.$suggestedP
a4420 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 69 74 69 6f 6e ackages;.....protected.$addition
a4440 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a alInstalledRepository;..........
a4460 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
a4480 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 67 (IOInterface.$io,.Config.$config
a44a0 2c 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c ,.RootPackageInterface.$package,
a44c0 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 .DownloadManager.$downloadManage
a44e0 72 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 r,.RepositoryManager.$repository
a4500 4d 61 6e 61 67 65 72 2c 20 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 2c 20 49 6e 73 74 61 6c 6c Manager,.Locker.$locker,.Install
a4520 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
a4540 72 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 r,.EventDispatcher.$eventDispatc
a4560 68 65 72 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 her,.AutoloadGenerator.$autoload
a4580 47 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 Generator).{.$this->io.=.$io;.$t
a45a0 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 70 61 his->config.=.$config;.$this->pa
a45c0 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 ckage.=.$package;.$this->downloa
a45e0 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 24 74 68 dManager.=.$downloadManager;.$th
a4600 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 72 65 70 6f 73 69 74 is->repositoryManager.=.$reposit
a4620 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 oryManager;.$this->locker.=.$loc
a4640 6b 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 ker;.$this->installationManager.
a4660 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 65 =.$installationManager;.$this->e
a4680 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 ventDispatcher.=.$eventDispatche
a46a0 72 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 r;.$this->autoloadGenerator.=.$a
a46c0 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c utoloadGenerator;.}.........publ
a46e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 67 63 5f 63 6f 6c 6c 65 63 74 5f 63 ic.function.run().{.gc_collect_c
a4700 79 63 6c 65 73 28 29 3b 0a 67 63 5f 64 69 73 61 62 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 ycles();.gc_disable();..if.($thi
a4720 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 74 72 s->dryRun).{.$this->verbose.=.tr
a4740 75 65 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 3b 0a 24 ue;.$this->runScripts.=.false;.$
a4760 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 61 64 64 49 6e this->installationManager->addIn
a4780 73 74 61 6c 6c 65 72 28 6e 65 77 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 staller(new.NoopInstaller);.$thi
a47a0 73 2d 3e 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e s->mockLocalRepositories($this->
a47c0 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 64 65 76 52 repositoryManager);.}......$devR
a47e0 65 70 6f 20 3d 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 epo.=.new.InstalledFilesystemRep
a4800 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 ository(new.JsonFile($this->conf
a4820 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 73 65 72 ig->get('vendor-dir').'/composer
a4840 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 29 3b 0a 69 66 20 28 24 64 65 76 /installed_dev.json'));.if.($dev
a4860 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f Repo->getPackages()).{.$this->io
a4880 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 42 43 20 4e 6f 74 69 63 65 ->writeError('<warning>BC.Notice
a48a0 3a 20 52 65 6d 6f 76 69 6e 67 20 6f 6c 64 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 74 6f 20 6d :.Removing.old.dev.packages.to.m
a48c0 69 67 72 61 74 65 20 74 6f 20 74 68 65 20 6e 65 77 20 72 65 71 75 69 72 65 2d 64 65 76 20 68 61 igrate.to.the.new.require-dev.ha
a48e0 6e 64 6c 69 6e 67 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 ndling.</warning>');.foreach.($d
a4900 65 76 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 evRepo->getPackages().as.$packag
a4920 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 e).{.if.($this->installationMana
a4940 67 65 72 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 64 65 76 52 65 70 6f ger->isPackageInstalled($devRepo
a4960 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 ,.$package)).{.$this->installati
a4980 6f 6e 4d 61 6e 61 67 65 72 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 64 65 76 52 65 70 6f 2c 20 6e onManager->uninstall($devRepo,.n
a49a0 65 77 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 ew.UninstallOperation($package))
a49c0 3b 0a 7d 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 ;.}.}.unlink($this->config->get(
a49e0 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
a4a00 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 3b 0a 7d 0a 75 6e 73 65 74 28 24 64 65 76 52 65 70 6f 2c ed_dev.json');.}.unset($devRepo,
a4a20 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 .$package);...if.($this->runScri
a4a40 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 pts).{...$eventName.=.$this->upd
a4a60 61 74 65 20 3f 20 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 ate.?.ScriptEvents::PRE_UPDATE_C
a4a80 4d 44 20 3a 20 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 MD.:.ScriptEvents::PRE_INSTALL_C
a4aa0 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 MD;.$this->eventDispatcher->disp
a4ac0 61 74 63 68 53 63 72 69 70 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 atchScript($eventName,.$this->de
a4ae0 76 4d 6f 64 65 29 3b 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 vMode);.}..$this->downloadManage
a4b00 72 2d 3e 73 65 74 50 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 r->setPreferSource($this->prefer
a4b20 53 6f 75 72 63 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 Source);.$this->downloadManager-
a4b40 3e 73 65 74 50 72 65 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 >setPreferDist($this->preferDist
a4b60 29 3b 0a 0a 0a 20 0a 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 );........$installedRootPackage.
a4b80 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 24 69 6e 73 74 61 6c 6c =.clone.$this->package;.$install
a4ba0 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 edRootPackage->setRequires(array
a4bc0 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 44 ());.$installedRootPackage->setD
a4be0 65 76 52 65 71 75 69 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 evRequires(array());....$localRe
a4c00 70 6f 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 po.=.$this->repositoryManager->g
a4c20 65 74 4c 6f 63 61 6c 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 etLocalRepository();.$platformRe
a4c40 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 po.=.new.PlatformRepository();.$
a4c60 72 65 70 6f 73 20 3d 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 repos.=.array(.$localRepo,.new.I
a4c80 6e 73 74 61 6c 6c 65 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 nstalledArrayRepository(array($i
a4ca0 6e 73 74 61 6c 6c 65 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 nstalledRootPackage)),.$platform
a4cc0 52 65 70 6f 2c 0a 29 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 Repo,.);.$installedRepo.=.new.Co
a4ce0 6d 70 6f 73 69 74 65 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 mpositeRepository($repos);.if.($
a4d00 74 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 this->additionalInstalledReposit
a4d20 6f 72 79 29 20 7b 0a 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 ory).{.$installedRepo->addReposi
a4d40 74 6f 72 79 28 24 74 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 tory($this->additionalInstalledR
a4d60 65 70 6f 73 69 74 6f 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 epository);.}..$aliases.=.$this-
a4d80 3e 67 65 74 52 6f 6f 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 >getRootAliases();.$this->aliasP
a4da0 6c 61 74 66 6f 72 6d 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 latformPackages($platformRepo,.$
a4dc0 61 6c 69 61 73 65 73 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 aliases);..try.{.$this->suggeste
a4de0 64 50 61 63 6b 61 67 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 dPackages.=.array();.$res.=.$thi
a4e00 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c s->doInstall($localRepo,.$instal
a4e20 6c 65 64 52 65 70 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 ledRepo,.$platformRepo,.$aliases
a4e40 2c 20 24 74 68 69 73 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 ,.$this->devMode);.if.($res.!==.
a4e60 30 29 20 7b 0a 72 65 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 0).{.return.$res;.}.}.catch.(\Ex
a4e80 63 65 70 74 69 6f 6e 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 ception.$e).{.$this->installatio
a4ea0 6e 4d 61 6e 61 67 65 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 nManager->notifyInstalls();..thr
a4ec0 6f 77 20 24 65 3b 0a 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 ow.$e;.}.$this->installationMana
a4ee0 67 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 0a 20 69 66 20 28 24 74 ger->notifyInstalls();....if.($t
a4f00 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e his->devMode).{.foreach.($this->
a4f20 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 69 6f 6e suggestedPackages.as.$suggestion
a4f40 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 72 67 65 ).{.$target.=.$suggestion['targe
a4f60 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 3e 67 65 t'];.foreach.($installedRepo->ge
a4f80 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 tPackages().as.$package).{.if.(i
a4fa0 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 74 4e 61 n_array($target,.$package->getNa
a4fc0 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 68 69 73 mes())).{.continue.2;.}.}..$this
a4fe0 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 73 6f ->io->writeError($suggestion['so
a5000 75 72 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 urce'].'.suggests.installing.'.$
a5020 73 75 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 suggestion['target'].'.('.$sugge
a5040 73 74 69 6f 6e 5b 27 72 65 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 stion['reason'].')');.}.}....for
a5060 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 each.($localRepo->getPackages().
a5080 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 69 6e 73 as.$package).{.if.(!$package.ins
a50a0 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 20 7c 7c 20 21 24 70 61 63 tanceof.CompletePackage.||.!$pac
a50c0 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b kage->isAbandoned()).{.continue;
a50e0 0a 7d 0a 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 .}..$replacement.=.(is_string($p
a5100 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 29 ackage->getReplacementPackage())
a5120 29 0a 3f 20 27 55 73 65 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 ).?.'Use.'...$package->getReplac
a5140 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 20 2e 20 27 20 69 6e 73 74 65 61 64 27 0a 3a 20 27 4e ementPackage()...'.instead'.:.'N
a5160 6f 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 77 61 73 20 73 75 67 67 65 73 74 65 64 27 3b 0a 0a 24 o.replacement.was.suggested';..$
a5180 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 73 70 72 69 6e 74 66 28 0a 22 this->io->writeError(.sprintf(."
a51a0 3c 65 72 72 6f 72 3e 50 61 63 6b 61 67 65 20 25 73 20 69 73 20 61 62 61 6e 64 6f 6e 65 64 2c 20 <error>Package.%s.is.abandoned,.
a51c0 79 6f 75 20 73 68 6f 75 6c 64 20 61 76 6f 69 64 20 75 73 69 6e 67 20 69 74 2e 20 25 73 2e 3c 2f you.should.avoid.using.it..%s.</
a51e0 65 72 72 6f 72 3e 22 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 error>",.$package->getPrettyName
a5200 28 29 2c 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 0a 29 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 (),.$replacement.).);.}..if.(!$t
a5220 68 69 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 his->dryRun).{...if.($this->upda
a5240 74 65 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 te.||.!$this->locker->isLocked()
a5260 29 20 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 ).{.$localRepo->reload();......$
a5280 64 65 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 devPackages.=.($this->devMode.||
a52a0 20 21 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 .!$this->package->getDevRequires
a52c0 28 29 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 ()).?.array().:.null;....if.($th
a52e0 69 73 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 is->devMode.&&.$this->package->g
a5300 65 74 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 etDevRequires()).{.$policy.=.$th
a5320 69 73 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 is->createPolicy();.$pool.=.$thi
a5340 73 2d 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 s->createPool(true);.$pool->addR
a5360 65 70 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 epository($installedRepo,.$alias
a5380 65 73 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 es);....$request.=.$this->create
a53a0 52 65 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 Request($pool,.$this->package,.$
a53c0 70 6c 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 platformRepo);.$request->updateA
a53e0 6c 6c 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 ll();.foreach.($this->package->g
a5400 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 etRequires().as.$link).{.$reques
a5420 74 2d 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 t->install($link->getTarget(),.$
a5440 6c 69 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 74 68 69 73 link->getConstraint());.}..$this
a5460 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 ->eventDispatcher->dispatchInsta
a5480 6c 6c 65 72 45 76 65 6e 74 28 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3a 3a 50 52 45 5f 44 llerEvent(InstallerEvents::PRE_D
a54a0 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 2c 20 66 61 6c 73 65 2c 20 24 70 6f 6c EPENDENCIES_SOLVING,.false,.$pol
a54c0 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 icy,.$pool,.$installedRepo,.$req
a54e0 75 65 73 74 29 3b 0a 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c uest);.$solver.=.new.Solver($pol
a5500 69 63 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 24 6f 70 icy,.$pool,.$installedRepo);.$op
a5520 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 28 24 72 65 71 75 65 73 74 2c 20 24 74 68 s.=.$solver->solve($request,.$th
a5540 69 73 2d 3e 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 73 2d 3e is->ignorePlatformReqs);.$this->
a5560 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c eventDispatcher->dispatchInstall
a5580 65 72 45 76 65 6e 74 28 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 44 45 erEvent(InstallerEvents::POST_DE
a55a0 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 2c 20 66 61 6c 73 65 2c 20 24 70 6f 6c 69 PENDENCIES_SOLVING,.false,.$poli
a55c0 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 cy,.$pool,.$installedRepo,.$requ
a55e0 65 73 74 2c 20 24 6f 70 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 73 20 61 73 20 24 6f 70 est,.$ops);.foreach.($ops.as.$op
a5600 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 3d 20 27 75 ).{.if.($op->getJobType().===.'u
a5620 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 3d 20 24 6f ninstall').{.$devPackages[].=.$o
a5640 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 74 66 6f 72 p->getPackage();.}.}.}..$platfor
a5660 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 72 6d 52 65 mReqs.=.$this->extractPlatformRe
a5680 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 65 74 52 65 quirements($this->package->getRe
a56a0 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 3d 20 24 74 quires());.$platformDevReqs.=.$t
a56c0 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 74 50 6c 61 his->devMode.?.$this->extractPla
a56e0 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 6b 61 67 65 tformRequirements($this->package
a5700 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 29 3b 0a 0a ->getDevRequires()).:.array();..
a5720 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 2d 3e 73 65 $updatedLock.=.$this->locker->se
a5740 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 52 65 70 6f tLockData(.array_diff($localRepo
a5760 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 72 72 61 79 ->getCanonicalPackages(),.(array
a5780 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 73 2c 0a 24 ).$devPackages),.$devPackages,.$
a57a0 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 71 73 2c 0a platformReqs,.$platformDevReqs,.
a57c0 24 61 6c 69 61 73 65 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e $aliases,.$this->package->getMin
a57e0 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d imumStability(),.$this->package-
a5800 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 2c 0a 24 74 68 69 73 2d 3e 70 72 65 >getStabilityFlags(),.$this->pre
a5820 66 65 72 53 74 61 62 6c 65 20 7c 7c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 ferStable.||.$this->package->get
a5840 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 2c 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 4c 6f 77 PreferStable(),.$this->preferLow
a5860 65 73 74 0a 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 est.);.if.($updatedLock).{.$this
a5880 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 ->io->writeError('<info>Writing.
a58a0 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 lock.file</info>');.}.}..if.($th
a58c0 69 73 2d 3e 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 is->dumpAutoloader).{...if.($thi
a58e0 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e s->optimizeAutoloader).{.$this->
a5900 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 io->writeError('<info>Generating
a5920 20 6f 70 74 69 6d 69 7a 65 64 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e .optimized.autoload.files</info>
a5940 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 ');.}.else.{.$this->io->writeErr
a5960 6f 72 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 or('<info>Generating.autoload.fi
a5980 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 les</info>');.}..$this->autoload
a59a0 47 65 6e 65 72 61 74 6f 72 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 74 68 69 73 2d 3e 64 65 76 Generator->setDevMode($this->dev
a59c0 4d 6f 64 65 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 Mode);.$this->autoloadGenerator-
a59e0 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,
a5a00 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
a5a20 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->
a5a40 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 optimizeAutoloader);.}..if.($thi
a5a60 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 s->runScripts).{...$eventName.=.
a5a80 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f $this->update.?.ScriptEvents::PO
a5aa0 53 54 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 ST_UPDATE_CMD.:.ScriptEvents::PO
a5ac0 53 54 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 ST_INSTALL_CMD;.$this->eventDisp
a5ae0 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 24 65 76 65 6e 74 4e 61 6d atcher->dispatchScript($eventNam
a5b00 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 7d 0a 0a 24 76 65 6e 64 6f 72 44 69 e,.$this->devMode);.}..$vendorDi
a5b20 72 20 3d 20 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 r.=.$this->config->get('vendor-d
a5b40 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 29 20 7b 0a ir');.if.(is_dir($vendorDir)).{.
a5b60 74 6f 75 63 68 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 20 30 touch($vendorDir);.}.}..return.0
a5b80 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 6e 73 74 61 6c ;.}..protected.function.doInstal
a5ba0 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 2c 20 24 70 l($localRepo,.$installedRepo,.$p
a5bc0 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 68 44 65 76 52 latformRepo,.$aliases,.$withDevR
a5be0 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 3d 20 6e 75 6c eqs).{...$lockedRepository.=.nul
a5c00 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 20 24 69 6e 73 l;.$repositories.=.null;....$ins
a5c20 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 21 24 74 68 69 73 tallFromLock.=.false;.if.(!$this
a5c40 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 ->update.&&.$this->locker->isLoc
a5c60 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 20 74 72 75 65 ked()).{.$installFromLock.=.true
a5c80 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 20 24 74 68 69 ;.try.{.$lockedRepository.=.$thi
a5ca0 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 72 79 28 24 s->locker->getLockedRepository($
a5cc0 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 74 69 6d 65 45 withDevReqs);.}.catch.(\RuntimeE
a5ce0 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 3e 70 61 63 6b xception.$e).{...if.($this->pack
a5d00 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 72 6f 77 20 24 age->getDevRequires()).{.throw.$
a5d20 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 24 74 68 69 73 e;.}...$lockedRepository.=.$this
a5d40 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 72 79 28 29 3b ->locker->getLockedRepository();
a5d60 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 65 44 65 70 65 .}.}..$this->whitelistUpdateDepe
a5d80 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 44 65 76 52 65 ndencies(.$localRepo,.$withDevRe
a5da0 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 69 72 65 73 28 qs,.$this->package->getRequires(
a5dc0 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 71 75 69 72 65 ),.$this->package->getDevRequire
a5de0 73 28 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c s().);..$this->io->writeError('<
a5e00 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
a5e20 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
a5e40 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
a5e60 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
a5e80 6f 6f 6c 28 24 77 69 74 68 44 65 76 52 65 71 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 ool($withDevReqs,.$lockedReposit
a5ea0 6f 72 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 69 6e 73 74 ory);.$pool->addRepository($inst
a5ec0 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 69 66 20 28 24 69 6e 73 74 61 alledRepo,.$aliases);.if.($insta
a5ee0 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f llFromLock).{.$pool->addReposito
a5f00 72 79 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b ry($lockedRepository,.$aliases);
a5f20 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 72 65 .}..if.(!$installFromLock).{.$re
a5f40 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 positories.=.$this->repositoryMa
a5f60 6e 61 67 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 66 6f 72 65 61 63 nager->getRepositories();.foreac
a5f80 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 73 69 74 6f 72 79 29 h.($repositories.as.$repository)
a5fa0 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 69 74 .{.$pool->addRepository($reposit
a5fc0 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 ory,.$aliases);.}.}....$request.
a5fe0 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 =.$this->createRequest($pool,.$t
a6000 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 0a 69 his->package,.$platformRepo);..i
a6020 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 0a 20 24 72 65 6d 6f 76 f.(!$installFromLock).{...$remov
a6040 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f edUnstablePackages.=.array();.fo
a6060 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 reach.($localRepo->getPackages()
a6080 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 0a 21 24 70 6f 6f 6c 2d 3e 69 73 50 .as.$package).{.if.(.!$pool->isP
a60a0 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 ackageAcceptable($package->getNa
a60c0 6d 65 73 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 mes(),.$package->getStability())
a60e0 0a 26 26 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e .&&.$this->installationManager->
a6100 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 isPackageInstalled($localRepo,.$
a6120 70 61 63 6b 61 67 65 29 0a 29 20 7b 0a 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 package).).{.$removedUnstablePac
a6140 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 kages[$package->getName()].=.tru
a6160 65 3b 0a 24 72 65 71 75 65 73 74 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 e;.$request->remove($package->ge
a6180 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 61 69 6e 74 28 27 tName(),.new.VersionConstraint('
a61a0 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 29 29 3b 0a 7d 0a =',.$package->getVersion()));.}.
a61c0 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d }.}..if.($this->update).{.$this-
a61e0 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 55 70 64 61 74 69 6e 67 20 >io->writeError('<info>Updating.
a6200 64 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 20 3f 20 27 20 dependencies'.($withDevReqs.?.'.
a6220 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 20 3a 20 27 27 29 2e 27 (including.require-dev)'.:.'').'
a6240 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 41 6c 6c 28 </info>');..$request->updateAll(
a6260 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 73 20 3d );..if.($withDevReqs).{.$links.=
a6280 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 67 65 74 .array_merge($this->package->get
a62a0 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 65 74 44 Requires(),.$this->package->getD
a62c0 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 73 20 3d evRequires());.}.else.{.$links.=
a62e0 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();.
a6300 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 7b 0a 24 }..foreach.($links.as.$link).{.$
a6320 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 request->install($link->getTarge
a6340 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 7d 0a t(),.$link->getConstraint());.}.
a6360 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 69 73 74 29 .....if.($this->updateWhitelist)
a6380 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 65 64 28 29 .{.if.($this->locker->isLocked()
a63a0 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 20 24 74 68 ).{.try.{.$currentPackages.=.$th
a63c0 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 72 79 28 is->locker->getLockedRepository(
a63e0 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 3b 0a 7d 20 $withDevReqs)->getPackages();.}.
a6400 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 0a catch.(\RuntimeException.$e).{..
a6420 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 6f 63 6b 65 .$currentPackages.=.$this->locke
a6440 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 74 50 61 63 r->getLockedRepository()->getPac
a6460 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 50 61 63 6b kages();.}.}.else.{.$currentPack
a6480 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 63 6b 61 67 ages.=.$installedRepo->getPackag
a64a0 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 61 79 28 29 es();.}....$candidates.=.array()
a64c0 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 7b 0a 24 63 ;.foreach.($links.as.$link).{.$c
a64e0 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 5d 20 3d 20 andidates[$link->getTarget()].=.
a6500 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 3e 67 65 74 true;.}.foreach.($localRepo->get
a6520 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 61 6e 64 69 Packages().as.$package).{.$candi
a6540 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 20 74 72 75 dates[$package->getName()].=.tru
a6560 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 20 61 73 20 e;.}....foreach.($candidates.as.
a6580 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 61 63 68 20 $candidate.=>.$dummy).{.foreach.
a65a0 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 6b 61 67 65 ($currentPackages.as.$curPackage
a65c0 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 28 29 20 3d ).{.if.($curPackage->getName().=
a65e0 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 3e 69 73 55 ==.$candidate).{.if.(!$this->isU
a6600 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 73 73 65 74 pdateable($curPackage).&&.!isset
a6620 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 75 72 50 61 ($removedUnstablePackages[$curPa
a6640 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 72 61 69 6e ckage->getName()])).{.$constrain
a6660 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 27 2c 20 24 t.=.new.VersionConstraint('=',.$
a6680 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 72 65 71 75 curPackage->getVersion());.$requ
a66a0 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 74 4e 61 6d est->install($curPackage->getNam
a66c0 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 7d 0a 7d 0a e(),.$constraint);.}.break;.}.}.
a66e0 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 63 6b 29 20 }.}.}.elseif.($installFromLock).
a6700 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 49 {.$this->io->writeError('<info>I
a6720 6e 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 nstalling.dependencies'.($withDe
a6740 76 52 65 71 73 20 3f 20 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 vReqs.?.'.(including.require-dev
a6760 29 27 20 3a 20 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 )'.:.'').'.from.lock.file</info>
a6780 27 29 3b 0a 0a 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 ');..if.(!$this->locker->isFresh
a67a0 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 ()).{.$this->io->writeError('<wa
a67c0 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 54 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 69 73 20 rning>Warning:.The.lock.file.is.
a67e0 6e 6f 74 20 75 70 20 74 6f 20 64 61 74 65 20 77 69 74 68 20 74 68 65 20 6c 61 74 65 73 74 20 63 not.up.to.date.with.the.latest.c
a6800 68 61 6e 67 65 73 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 20 59 6f 75 20 6d 61 79 hanges.in.composer.json..You.may
a6820 20 62 65 20 67 65 74 74 69 6e 67 20 6f 75 74 64 61 74 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 .be.getting.outdated.dependencie
a6840 73 2e 20 52 75 6e 20 75 70 64 61 74 65 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 6d 2e 3c 2f 77 s..Run.update.to.update.them.</w
a6860 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 arning>');.}..foreach.($lockedRe
a6880 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b pository->getPackages().as.$pack
a68a0 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 age).{.$version.=.$package->getV
a68c0 65 72 73 69 6f 6e 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 6c 69 61 73 65 73 5b 24 70 61 ersion();.if.(isset($aliases[$pa
a68e0 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 20 7b 0a ckage->getName()][$version])).{.
a6900 24 76 65 72 73 69 6f 6e 20 3d 20 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 $version.=.$aliases[$package->ge
a6920 74 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c tName()][$version]['alias_normal
a6940 69 7a 65 64 27 5d 3b 0a 7d 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 ized'];.}.$constraint.=.new.Vers
a6960 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 63 ionConstraint('=',.$version);.$c
a6980 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 61 63 6b onstraint->setPrettyString($pack
a69a0 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 age->getPrettyVersion());.$reque
a69c0 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c st->install($package->getName(),
a69e0 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 .$constraint);.}..foreach.($this
a6a00 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 ->locker->getPlatformRequirement
a6a20 73 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 s($withDevReqs).as.$link).{.$req
a6a40 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 uest->install($link->getTarget()
a6a60 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 7d 0a 7d 20 65 ,.$link->getConstraint());.}.}.e
a6a80 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e lse.{.$this->io->writeError('<in
a6aa0 66 6f 3e 49 6e 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 fo>Installing.dependencies'.($wi
a6ac0 74 68 44 65 76 52 65 71 73 20 3f 20 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 thDevReqs.?.'.(including.require
a6ae0 2d 64 65 76 29 27 20 3a 20 27 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 77 -dev)'.:.'').'</info>');..if.($w
a6b00 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 ithDevReqs).{.$links.=.array_mer
a6b20 67 65 28 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 ge($this->package->getRequires()
a6b40 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 ,.$this->package->getDevRequires
a6b60 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 ());.}.else.{.$links.=.$this->pa
a6b80 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 ckage->getRequires();.}..foreach
a6ba0 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 .($links.as.$link).{.$request->i
a6bc0 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 6e 6b nstall($link->getTarget(),.$link
a6be0 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 ->getConstraint());.}.}....$this
a6c00 2d 3e 70 72 6f 63 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 ->processDevPackages($localRepo,
a6c20 20 24 70 6f 6f 6c 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 .$pool,.$policy,.$repositories,.
a6c40 24 6c 6f 63 6b 65 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 $lockedRepository,.$installFromL
a6c60 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 65 ock,.'force-links');....$this->e
a6c80 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c 65 ventDispatcher->dispatchInstalle
a6ca0 72 45 76 65 6e 74 28 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3a 3a 50 52 45 5f 44 45 50 45 rEvent(InstallerEvents::PRE_DEPE
a6cc0 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 NDENCIES_SOLVING,.$this->devMode
a6ce0 2c 20 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 52 65 70 6f ,.$policy,.$pool,.$installedRepo
a6d00 2c 20 24 72 65 71 75 65 73 74 29 3b 0a 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 ,.$request);.$solver.=.new.Solve
a6d20 72 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 52 65 70 6f r($policy,.$pool,.$installedRepo
a6d40 29 3b 0a 74 72 79 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e );.try.{.$operations.=.$solver->
a6d60 73 6f 6c 76 65 28 24 72 65 71 75 65 73 74 2c 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 50 6c 61 solve($request,.$this->ignorePla
a6d80 74 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 tformReqs);.$this->eventDispatch
a6da0 65 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 28 49 6e 73 74 61 er->dispatchInstallerEvent(Insta
a6dc0 6c 6c 65 72 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f llerEvents::POST_DEPENDENCIES_SO
a6de0 4c 56 49 4e 47 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 79 2c 20 LVING,.$this->devMode,.$policy,.
a6e00 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 73 74 2c $pool,.$installedRepo,.$request,
a6e20 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 .$operations);.}.catch.(SolverPr
a6e40 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d oblemsException.$e).{.$this->io-
a6e60 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 59 6f 75 72 20 72 65 71 75 69 72 65 >writeError('<error>Your.require
a6e80 6d 65 6e 74 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 72 65 73 6f 6c 76 65 64 20 74 6f 20 61 ments.could.not.be.resolved.to.a
a6ea0 6e 20 69 6e 73 74 61 6c 6c 61 62 6c 65 20 73 65 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2e 3c 2f n.installable.set.of.packages.</
a6ec0 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 45 72 72 6f 72 28 error>');.$this->io->writeError(
a6ee0 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 6d 61 78 28 31 $e->getMessage());..return.max(1
a6f00 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 3b 0a 7d 0a 0a 0a 20 24 6f 70 65 72 61 74 69 6f ,.$e->getCode());.}....$operatio
a6f20 6e 73 20 3d 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 73 28 24 ns.=.$this->processDevPackages($
a6f40 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 65 70 6f localRepo,.$pool,.$policy,.$repo
a6f60 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 24 69 6e sitories,.$lockedRepository,.$in
a6f80 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 2c 20 stallFromLock,.'force-updates',.
a6fa0 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 0a 20 69 66 20 28 21 24 6f 70 65 72 61 74 69 6f 6e $operations);....if.(!$operation
a6fc0 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f 74 68 s).{.$this->io->writeError('Noth
a6fe0 69 6e 67 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 0a 24 ing.to.install.or.update');.}..$
a7000 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 50 6c 75 67 69 6e 73 54 operations.=.$this->movePluginsT
a7020 6f 46 72 6f 6e 74 28 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 oFront($operations);.$operations
a7040 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 55 6e 69 6e 73 74 61 6c 6c 73 54 6f 46 72 6f 6e 74 28 .=.$this->moveUninstallsToFront(
a7060 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 $operations);..foreach.($operati
a7080 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 27 69 6e 73 74 ons.as.$operation).{...if.('inst
a70a0 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 all'.===.$operation->getJobType(
a70c0 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 )).{.foreach.($operation->getPac
a70e0 6b 61 67 65 28 29 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 74 61 72 67 65 74 kage()->getSuggests().as.$target
a7100 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 .=>.$reason).{.$this->suggestedP
a7120 61 63 6b 61 67 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 ackages[].=.array(.'source'.=>.$
a7140 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 50 72 65 74 operation->getPackage()->getPret
a7160 74 79 4e 61 6d 65 28 29 2c 0a 27 74 61 72 67 65 74 27 20 3d 3e 20 24 74 61 72 67 65 74 2c 0a 27 tyName(),.'target'.=>.$target,.'
a7180 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 reason'.=>.$reason,.);.}.}....if
a71a0 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 .(!$installFromLock).{.$package.
a71c0 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 =.null;.if.('update'.===.$operat
a71e0 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 ion->getJobType()).{.$package.=.
a7200 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();.
a7220 7d 20 65 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 }.elseif.('install'.===.$operati
a7240 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 on->getJobType()).{.$package.=.$
a7260 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 69 66 20 28 24 operation->getPackage();.}.if.($
a7280 70 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a package.&&.$package->isDev()).{.
a72a0 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 $references.=.$this->package->ge
a72c0 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 tReferences();.if.(isset($refere
a72e0 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 70 nces[$package->getName()])).{.$p
a7300 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 ackage->setSourceReference($refe
a7320 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 24 70 rences[$package->getName()]);.$p
a7340 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 ackage->setDistReference($refere
a7360 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 7d 0a nces[$package->getName()]);.}.}.
a7380 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 74 if.('update'.===.$operation->get
a73a0 4a 6f 62 54 79 70 65 28 29 0a 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 JobType().&&.$operation->getTarg
a73c0 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 69 73 44 65 76 28 29 0a 26 26 20 24 6f 70 65 72 61 74 69 etPackage()->isDev().&&.$operati
a73e0 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 56 65 72 73 69 on->getTargetPackage()->getVersi
a7400 6f 6e 28 29 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 on().===.$operation->getInitialP
a7420 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 26 26 20 24 6f 70 65 72 61 ackage()->getVersion().&&.$opera
a7440 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 6f 75 tion->getTargetPackage()->getSou
a7460 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 rceReference().===.$operation->g
a7480 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 etInitialPackage()->getSourceRef
a74a0 65 72 65 6e 63 65 28 29 0a 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 erence().).{.if.($this->io->isDe
a74c0 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 45 72 72 6f 72 28 27 bug()).{.$this->io->writeError('
a74e0 20 20 2d 20 53 6b 69 70 70 69 6e 67 20 75 70 64 61 74 65 20 6f 66 20 27 2e 20 24 6f 70 65 72 61 ..-.Skipping.update.of.'..$opera
a7500 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 50 72 65 tion->getTargetPackage()->getPre
a7520 74 74 79 4e 61 6d 65 28 29 2e 27 20 74 6f 20 74 68 65 20 73 61 6d 65 20 72 65 66 65 72 65 6e 63 ttyName().'.to.the.same.referenc
a7540 65 2d 6c 6f 63 6b 65 64 20 76 65 72 73 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 e-locked.version');.$this->io->w
a7560 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a riteError('');.}..continue;.}.}.
a7580 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 61 .$event.=.'Composer\Installer\Pa
a75a0 63 6b 61 67 65 45 76 65 6e 74 73 3a 3a 50 52 45 5f 50 41 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f ckageEvents::PRE_PACKAGE_'.strto
a75c0 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 29 29 3b upper($operation->getJobType());
a75e0 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 2d 3e 72 .if.(defined($event).&&.$this->r
a7600 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 61 74 63 unScripts).{.$this->eventDispatc
a7620 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 73 74 61 her->dispatchPackageEvent(consta
a7640 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 70 6f 6c nt($event),.$this->devMode,.$pol
a7660 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 icy,.$pool,.$installedRepo,.$req
a7680 75 65 73 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a uest,.$operations,.$operation);.
a76a0 7d 0a 0a 0a 20 69 66 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 }....if.($this->dryRun.&&.false.
a76c0 3d 3d 3d 20 73 74 72 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 ===.strpos($operation->getJobTyp
a76e0 65 28 29 2c 20 27 41 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 e(),.'Alias')).{.$this->io->writ
a7700 65 45 72 72 6f 72 28 27 20 20 2d 20 27 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 eError('..-.'...$operation);.$th
a7720 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 is->io->writeError('');.}.elseif
a7740 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 20 26 26 20 66 61 6c 73 65 20 .($this->io->isDebug().&&.false.
a7760 21 3d 3d 20 73 74 72 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 !==.strpos($operation->getJobTyp
a7780 65 28 29 2c 20 27 41 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 e(),.'Alias')).{.$this->io->writ
a77a0 65 45 72 72 6f 72 28 27 20 20 2d 20 27 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 eError('..-.'...$operation);.$th
a77c0 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 is->io->writeError('');.}..$this
a77e0 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 75 74 65 28 24 ->installationManager->execute($
a7800 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 69 66 20 28 24 localRepo,.$operation);....if.($
a7820 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 3e 69 73 56 65 this->verbose.&&.$this->io->isVe
a7840 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 65 72 61 74 69 ryVerbose().&&.in_array($operati
a7860 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 73 74 61 6c 6c on->getJobType(),.array('install
a7880 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 24 6f 70 65 72 ',.'update'))).{.$reason.=.$oper
a78a0 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 61 73 6f 6e 20 ation->getReason();.if.($reason.
a78c0 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 24 72 65 61 73 instanceof.Rule).{.switch.($reas
a78e0 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 65 3a 3a 52 55 on->getReason()).{.case.Rule::RU
a7900 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 77 72 69 74 65 LE_JOB_INSTALL:.$this->io->write
a7920 45 72 72 6f 72 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 Error('....REASON:.Required.by.r
a7940 6f 6f 74 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 oot:.'.$reason->getPrettyString(
a7960 24 70 6f 6f 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 $pool));.$this->io->writeError('
a7980 27 29 3b 0a 62 72 65 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 ');.break;.case.Rule::RULE_PACKA
a79a0 47 45 5f 52 45 51 55 49 52 45 53 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 GE_REQUIRES:.$this->io->writeErr
a79c0 6f 72 28 27 20 20 20 20 52 45 41 53 4f 4e 3a 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 50 72 or('....REASON:.'.$reason->getPr
a79e0 65 74 74 79 53 74 72 69 6e 67 28 24 70 6f 6f 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 ettyString($pool));.$this->io->w
a7a00 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 65 76 riteError('');.break;.}.}.}..$ev
a7a20 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 61 63 6b 61 67 ent.=.'Composer\Installer\Packag
a7a40 65 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 72 74 6f 75 70 70 eEvents::POST_PACKAGE_'.strtoupp
a7a60 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 29 29 3b 0a 69 66 er($operation->getJobType());.if
a7a80 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 2d 3e 72 75 6e 53 .(defined($event).&&.$this->runS
a7aa0 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 61 74 63 68 65 72 cripts).{.$this->eventDispatcher
a7ac0 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 73 74 61 6e 74 28 ->dispatchPackageEvent(constant(
a7ae0 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 70 6f 6c 69 63 79 $event),.$this->devMode,.$policy
a7b00 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 73 ,.$pool,.$installedRepo,.$reques
a7b20 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a t,.$operations,.$operation);.}..
a7b40 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f if.(!$this->dryRun).{.$localRepo
a7b60 2d 3e 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 0a 0a ->write();.}.}..return.0;.}.....
a7b80 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 6d 6f 76 65 50 ..........private.function.moveP
a7ba0 6c 75 67 69 6e 73 54 6f 46 72 6f 6e 74 28 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 luginsToFront(array.$operations)
a7bc0 0a 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 .{.$installerOps.=.array();.fore
a7be0 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 69 64 78 20 3d 3e 20 24 6f 70 29 ach.($operations.as.$idx.=>.$op)
a7c00 20 7b 0a 69 66 20 28 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 4f 70 65 .{.if.($op.instanceof.InstallOpe
a7c20 72 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 2d 3e 67 65 74 50 61 63 ration).{.$package.=.$op->getPac
a7c40 6b 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f 66 kage();.}.elseif.($op.instanceof
a7c60 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 .UpdateOperation).{.$package.=.$
a7c80 6f 70 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 20 7b op->getTargetPackage();.}.else.{
a7ca0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 .continue;.}..if.($package->getT
a7cc0 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 7c 7c 20 24 ype().===.'composer-plugin'.||.$
a7ce0 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 73 65 72 package->getType().===.'composer
a7d00 2d 69 6e 73 74 61 6c 6c 65 72 27 29 20 7b 0a 0a 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 -installer').{...$requires.=.arr
a7d20 61 79 5f 6b 65 79 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 ay_keys($package->getRequires())
a7d40 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d ;.foreach.($requires.as.$index.=
a7d60 3e 20 24 72 65 71 29 20 7b 0a 69 66 20 28 24 72 65 71 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 >.$req).{.if.($req.===.'composer
a7d80 2d 70 6c 75 67 69 6e 2d 61 70 69 27 20 7c 7c 20 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 -plugin-api'.||.preg_match(Platf
a7da0 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f ormRepository::PLATFORM_PACKAGE_
a7dc0 52 45 47 45 58 2c 20 24 72 65 71 29 29 20 7b 0a 75 6e 73 65 74 28 24 72 65 71 75 69 72 65 73 5b REGEX,.$req)).{.unset($requires[
a7de0 24 69 6e 64 65 78 5d 29 3b 0a 7d 0a 7d 0a 0a 20 69 66 20 28 21 63 6f 75 6e 74 28 24 72 65 71 75 $index]);.}.}...if.(!count($requ
a7e00 69 72 65 73 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 ires)).{.$installerOps[].=.$op;.
a7e20 75 6e 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 7d 0a unset($operations[$idx]);.}.}.}.
a7e40 0a 72 65 74 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 .return.array_merge($installerOp
a7e60 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 s,.$operations);.}.........priva
a7e80 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 55 6e 69 6e 73 74 61 6c 6c 73 54 6f 46 72 6f 6e te.function.moveUninstallsToFron
a7ea0 74 28 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 0a 7b 0a 24 75 6e 69 6e 73 74 4f 70 t(array.$operations).{.$uninstOp
a7ec0 73 20 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 s.=.array();.foreach.($operation
a7ee0 73 20 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 s.as.$idx.=>.$op).{.if.($op.inst
a7f00 61 6e 63 65 6f 66 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 75 6e anceof.UninstallOperation).{.$un
a7f20 69 6e 73 74 4f 70 73 5b 5d 20 3d 20 24 6f 70 3b 0a 75 6e 73 65 74 28 24 6f 70 65 72 61 74 69 6f instOps[].=.$op;.unset($operatio
a7f40 6e 73 5b 24 69 64 78 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 ns[$idx]);.}.}..return.array_mer
a7f60 67 65 28 24 75 6e 69 6e 73 74 4f 70 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 0a 0a ge($uninstOps,.$operations);.}..
a7f80 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 6f 6f 6c 28 24 77 69 74 private.function.createPool($wit
a7fa0 68 44 65 76 52 65 71 73 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 6c hDevReqs,.RepositoryInterface.$l
a7fc0 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 ockedRepository.=.null).{.if.(!$
a7fe0 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 this->update.&&.$this->locker->i
a8000 73 4c 6f 63 6b 65 64 28 29 29 20 7b 20 0a 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 sLocked()).{...$minimumStability
a8020 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 .=.$this->locker->getMinimumStab
a8040 69 6c 69 74 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 ility();.$stabilityFlags.=.$this
a8060 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a ->locker->getStabilityFlags();..
a8080 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c $requires.=.array();.foreach.($l
a80a0 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 ockedRepository->getPackages().a
a80c0 73 20 24 70 61 63 6b 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 s.$package).{.$constraint.=.new.
a80e0 56 65 72 73 69 6f 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 VersionConstraint('=',.$package-
a8100 3e 67 65 74 56 65 72 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 >getVersion());.$constraint->set
a8120 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 65 74 74 79 PrettyString($package->getPretty
a8140 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 69 72 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e Version());.$requires[$package->
a8160 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 7d 20 65 6c getName()].=.$constraint;.}.}.el
a8180 73 65 20 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 se.{.$minimumStability.=.$this->
a81a0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a package->getMinimumStability();.
a81c0 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 $stabilityFlags.=.$this->package
a81e0 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 24 72 65 71 75 69 72 65 ->getStabilityFlags();..$require
a8200 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(
a8220 29 3b 0a 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 );.if.($withDevReqs).{.$requires
a8240 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 74 68 69 73 2d .=.array_merge($requires,.$this-
a8260 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 3b 0a 7d 0a 7d >package->getDevRequires());.}.}
a8280 0a 0a 24 72 6f 6f 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 ..$rootConstraints.=.array();.fo
a82a0 72 65 61 63 68 20 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 reach.($requires.as.$req.=>.$con
a82c0 73 74 72 61 69 6e 74 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 50 6c straint).{...if.($this->ignorePl
a82e0 61 74 66 6f 72 6d 52 65 71 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 atformReqs.&&.preg_match(Platfor
a8300 6d 52 65 70 6f 73 69 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 mRepository::PLATFORM_PACKAGE_RE
a8320 47 45 58 2c 20 24 72 65 71 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 63 GEX,.$req)).{.continue;.}.if.($c
a8340 6f 6e 73 74 72 61 69 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 4c 69 6e 6b 29 20 7b 0a 24 72 6f onstraint.instanceof.Link).{.$ro
a8360 6f 74 43 6f 6e 73 74 72 61 69 6e 74 73 5b 24 72 65 71 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e otConstraints[$req].=.$constrain
a8380 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 6f t->getConstraint();.}.else.{.$ro
a83a0 6f 74 43 6f 6e 73 74 72 61 69 6e 74 73 5b 24 72 65 71 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e otConstraints[$req].=.$constrain
a83c0 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 6f 6f 6c 28 24 6d 69 6e 69 6d 75 6d t;.}.}..return.new.Pool($minimum
a83e0 53 74 61 62 69 6c 69 74 79 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 72 6f 6f Stability,.$stabilityFlags,.$roo
a8400 74 43 6f 6e 73 74 72 61 69 6e 74 73 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 tConstraints);.}..private.functi
a8420 6f 6e 20 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 0a 7b 0a 24 70 72 65 66 65 72 53 74 61 62 6c on.createPolicy().{.$preferStabl
a8440 65 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 6e 75 6c 6c 3b 0a e.=.null;.$preferLowest.=.null;.
a8460 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 6f 63 if.(!$this->update.&&.$this->loc
a8480 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 70 72 65 66 65 72 53 74 61 62 6c 65 ker->isLocked()).{.$preferStable
a84a0 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 50 72 65 66 65 72 53 74 61 62 6c .=.$this->locker->getPreferStabl
a84c0 65 28 29 3b 0a 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b e();.$preferLowest.=.$this->lock
a84e0 65 72 2d 3e 67 65 74 50 72 65 66 65 72 4c 6f 77 65 73 74 28 29 3b 0a 7d 0a 0a 20 0a 20 69 66 20 er->getPreferLowest();.}.....if.
a8500 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 29 20 7b 0a 24 70 72 65 66 (null.===.$preferStable).{.$pref
a8520 65 72 53 74 61 62 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 7c erStable.=.$this->preferStable.|
a8540 7c 20 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 62 6c |.$this->package->getPreferStabl
a8560 65 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 65 66 65 72 4c 6f 77 65 73 e();.}.if.(null.===.$preferLowes
a8580 74 29 20 7b 0a 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 66 t).{.$preferLowest.=.$this->pref
a85a0 65 72 4c 6f 77 65 73 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 66 61 75 6c 74 50 erLowest;.}..return.new.DefaultP
a85c0 6f 6c 69 63 79 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 2c 20 24 70 72 65 66 65 72 4c 6f 77 65 olicy($preferStable,.$preferLowe
a85e0 73 74 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 52 st);.}..private.function.createR
a8600 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 65 49 6e equest(Pool.$pool,.RootPackageIn
a8620 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 6d 52 65 terface.$rootPackage,.PlatformRe
a8640 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 71 75 65 pository.$platformRepo).{.$reque
a8660 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 6e 73 74 st.=.new.Request($pool);..$const
a8680 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('=
a86a0 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 29 3b 0a ',.$rootPackage->getVersion());.
a86c0 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 72 6f $constraint->setPrettyString($ro
a86e0 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 29 3b 0a otPackage->getPrettyVersion());.
a8700 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 65 2d 3e $request->install($rootPackage->
a8720 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 78 65 64 getName(),.$constraint);..$fixed
a8740 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 50 61 63 Packages.=.$platformRepo->getPac
a8760 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 6c 49 6e kages();.if.($this->additionalIn
a8780 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 6e 61 6c stalledRepository).{.$additional
a87a0 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 6f 6e 61 FixedPackages.=.$this->additiona
a87c0 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 61 67 65 lInstalledRepository->getPackage
a87e0 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 65 72 67 s();.$fixedPackages.=.array_merg
a8800 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 46 69 78 e($fixedPackages,.$additionalFix
a8820 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 20 3d 20 edPackages);.}......$provided.=.
a8840 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 66 6f 72 $rootPackage->getProvides();.for
a8860 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 61 67 65 each.($fixedPackages.as.$package
a8880 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 43 6f 6e ).{.$constraint.=.new.VersionCon
a88a0 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f straint('=',.$package->getVersio
a88c0 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 n());.$constraint->setPrettyStri
a88e0 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 ng($package->getPrettyVersion())
a8900 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 6f 72 79 ;....if.($package->getRepository
a8920 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 74 28 24 ().!==.$platformRepo.||.!isset($
a8940 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 29 0a 7c provided[$package->getName()]).|
a8960 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 65 28 29 |.!$provided[$package->getName()
a8980 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 63 6f 6e ]->getConstraint()->matches($con
a89a0 73 74 72 61 69 6e 74 29 0a 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 66 69 78 28 24 70 61 63 6b straint).).{.$request->fix($pack
a89c0 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a age->getName(),.$constraint);.}.
a89e0 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 69 76 61 74 65 20 66 }..return.$request;.}..private.f
a8a00 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 73 28 24 6c 6f 63 61 unction.processDevPackages($loca
a8a20 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 65 70 6f 73 69 74 6f lRepo,.$pool,.$policy,.$reposito
a8a40 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 24 69 6e 73 74 61 6c ries,.$lockedRepository,.$instal
a8a60 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 6f 70 65 72 61 74 69 lFromLock,.$task,.array.$operati
a8a80 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 3d 3d 20 27 66 6f 72 ons.=.null).{.if.($task.===.'for
a8aa0 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 6f 70 65 72 61 74 69 ce-updates'.&&.null.===.$operati
a8ac0 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 41 72 67 75 6d 65 6e ons).{.throw.new.\InvalidArgumen
a8ae0 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 74 69 6f 6e 73 20 61 tException('Missing.operations.a
a8b00 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 3d 20 27 66 6f 72 63 rgument');.}.if.($task.===.'forc
a8b20 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 20 61 72 72 61 79 28 e-links').{.$operations.=.array(
a8b40 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 2d 3e 67 65 74 43 61 );.}..foreach.($localRepo->getCa
a8b60 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 67 65 29 20 7b nonicalPackages().as.$package).{
a8b80 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 63 6f 6e ...if.(!$package->isDev()).{.con
a8ba0 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 tinue;.}....foreach.($operations
a8bc0 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 69 66 20 28 28 27 75 70 64 61 74 65 27 20 .as.$operation).{.if.(('update'.
a8be0 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 26 26 20 ===.$operation->getJobType().&&.
a8c00 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d $operation->getInitialPackage()-
a8c20 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 7c 7c 20 28 27 75 6e 69 6e 73 74 61 6c >equals($package)).||.('uninstal
a8c40 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 l'.===.$operation->getJobType().
a8c60 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 65 71 75 &&.$operation->getPackage()->equ
a8c80 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d als($package)).).{.continue.2;.}
a8ca0 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 66 6f .}....if.($installFromLock).{.fo
a8cc0 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 reach.($lockedRepository->findPa
a8ce0 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 61 73 20 24 ckages($package->getName()).as.$
a8d00 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 6b 65 64 50 61 63 6b lockedPackage).{.if.($lockedPack
a8d20 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 63 6b 61 67 65 2d 3e age->isDev().&&.$lockedPackage->
a8d40 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 2d 3e 67 65 74 56 65 getVersion().===.$package->getVe
a8d60 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 27 66 6f 72 63 65 2d rsion()).{.if.($task.===.'force-
a8d80 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 71 75 69 72 65 73 28 links').{.$package->setRequires(
a8da0 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 65 73 28 29 29 3b 0a $lockedPackage->getRequires());.
a8dc0 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 6f 63 6b 65 64 50 61 $package->setConflicts($lockedPa
a8de0 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 65 ckage->getConflicts());.$package
a8e00 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 61 67 65 2d 3e 67 65 ->setProvides($lockedPackage->ge
a8e20 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 65 74 52 65 70 6c 61 tProvides());.$package->setRepla
a8e40 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 70 6c 61 63 65 73 28 ces($lockedPackage->getReplaces(
a8e60 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 66 6f 72 63 65 2d 75 ));.}.elseif.($task.===.'force-u
a8e80 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 63 6b 61 67 65 2d 3e pdates').{.if.(($lockedPackage->
a8ea0 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 6c 6f 63 6b 65 64 50 getSourceReference().&&.$lockedP
a8ec0 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().!==
a8ee0 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())
a8f00 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 69 73 74 52 65 66 65 .||.($lockedPackage->getDistRefe
a8f20 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 2d 3e 67 65 74 44 69 rence().&&.$lockedPackage->getDi
a8f40 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 65 2d 3e 67 65 74 44 stReference().!==.$package->getD
a8f60 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 61 74 69 6f 6e 73 5b istReference()).).{.$operations[
a8f80 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 70 61 63 6b 61 67 65 ].=.new.UpdateOperation($package
a8fa0 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 72 65 61 6b 3b 0a 7d ,.$lockedPackage);.}.}..break;.}
a8fc0 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 .}.}.else.{...if.($this->update)
a8fe0 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 .{...if.($this->updateWhitelist.
a9000 26 26 20 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 70 61 63 6b 61 67 65 &&.!$this->isUpdateable($package
a9020 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 68 65 73 20 3d 20 24 )).{.continue;.}....$matches.=.$
a9040 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 74 pool->whatProvides($package->get
a9060 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 61 69 6e 74 28 27 3d Name(),.new.VersionConstraint('=
a9080 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 29 29 3b 0a 66 6f 72 ',.$package->getVersion()));.for
a90a0 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 3d 3e 20 24 6d 61 74 each.($matches.as.$index.=>.$mat
a90c0 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 74 63 68 2d 3e 67 65 ch).{...if.(!in_array($match->ge
a90e0 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 69 65 73 2c 20 74 72 tRepository(),.$repositories,.tr
a9100 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 64 65 78 5d 29 3b 0a ue)).{.unset($matches[$index]);.
a9120 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 2d 3e 67 65 74 4e 61 continue;.}....if.($match->getNa
a9140 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 65 28 29 29 20 7b 0a me().!==.$package->getName()).{.
a9160 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 63 6f 6e 74 69 6e 75 unset($matches[$index]);.continu
a9180 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 24 6d 61 74 63 68 2d e;.}..$matches[$index].=.$match-
a91a0 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 65 73 20 26 26 20 24 >getId();.}....if.($matches.&&.$
a91c0 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 50 72 65 66 65 72 65 matches.=.$policy->selectPrefere
a91e0 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 6d 61 74 63 68 dPackages($pool,.array(),.$match
a9200 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 6c 2d 3e 6c 69 74 65 es)).{.$newPackage.=.$pool->lite
a9220 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 3b 0a 0a 69 66 20 28 ralToPackage($matches[0]);..if.(
a9240 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 26 20 24 6e 65 77 50 $task.===.'force-links'.&&.$newP
a9260 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 71 75 69 72 65 73 28 ackage).{.$package->setRequires(
a9280 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 29 29 3b 0a 24 70 61 $newPackage->getRequires());.$pa
a92a0 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 61 63 6b 61 67 65 2d ckage->setConflicts($newPackage-
a92c0 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 65 2d 3e 73 65 74 50 >getConflicts());.$package->setP
a92e0 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 72 6f 76 69 64 65 73 rovides($newPackage->getProvides
a9300 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 73 28 24 6e 65 77 50 ());.$package->setReplaces($newP
a9320 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 0a 0a 69 66 20 28 24 ackage->getReplaces());.}..if.($
a9340 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 26 26 20 24 6e 65 77 task.===.'force-updates'.&&.$new
a9360 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 65 2d 3e 67 65 74 53 Package.&&.(.(($newPackage->getS
a9380 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 61 63 6b 61 67 65 2d ourceReference().&&.$newPackage-
a93a0 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 >getSourceReference().!==.$packa
a93c0 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 0a 7c 7c 20 28 24 6e ge->getSourceReference()).||.($n
a93e0 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 63 65 28 29 20 26 26 ewPackage->getDistReference().&&
a9400 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 72 65 6e 63 65 28 29 .$newPackage->getDistReference()
a9420 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 65 72 65 6e 63 65 28 .!==.$package->getDistReference(
a9440 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 20 6e 65 77 20 55 70 )).).)).{.$operations[].=.new.Up
a9460 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 6e 65 77 50 61 63 6b dateOperation($package,.$newPack
a9480 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 3d 20 27 66 6f 72 63 age);.}.}.}..if.($task.===.'forc
a94a0 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 65 73 20 3d 20 24 74 e-updates').{...$references.=.$t
a94c0 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a his->package->getReferences();..
a94e0 69 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e if.(isset($references[$package->
a9500 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b getName()]).&&.$references[$pack
a9520 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 age->getName()].!==.$package->ge
a9540 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 0a 20 24 6f 70 65 72 61 74 69 tSourceReference()).{...$operati
a9560 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 70 61 63 ons[].=.new.UpdateOperation($pac
a9580 6b 61 67 65 2c 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a kage,.clone.$package);.}.}.}.}..
a95a0 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 69 76 61 74 65 20 66 return.$operations;.}..private.f
a95c0 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 7b 0a 69 66 20 28 21 unction.getRootAliases().{.if.(!
a95e0 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->
a9600 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 24 74 68 69 73 2d 3e isLocked()).{.$aliases.=.$this->
a9620 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 6c 73 65 20 7b 0a 24 locker->getAliases();.}.else.{.$
a9640 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 3e 67 65 74 41 6c 69 aliases.=.$this->package->getAli
a9660 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 61 73 65 73 20 3d 20 ases();.}..$normalizedAliases.=.
a9680 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 65 73 20 61 73 20 24 array();..foreach.($aliases.as.$
a96a0 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 65 73 5b 24 61 6c 69 alias).{.$normalizedAliases[$ali
a96c0 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 72 73 69 6f 6e 27 5d as['package']][$alias['version']
a96e0 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 69 61 73 5b 27 61 6c ].=.array(.'alias'.=>.$alias['al
a9700 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 20 3d 3e 20 24 61 6c ias'],.'alias_normalized'.=>.$al
a9720 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 3b 0a 7d 0a 0a 72 65 ias['alias_normalized'].);.}..re
a9740 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 7d 0a 0a 70 72 69 76 turn.$normalizedAliases;.}..priv
a9760 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 6d 50 61 63 6b 61 67 ate.function.aliasPlatformPackag
a9780 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 61 74 66 6f 72 6d 52 es(PlatformRepository.$platformR
a97a0 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 28 24 61 6c 69 61 73 epo,.$aliases).{.foreach.($alias
a97c0 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 6e 73 29 20 7b 0a 66 es.as.$package.=>.$versions).{.f
a97e0 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e oreach.($versions.as.$version.=>
a9800 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 6c 61 74 66 6f 72 6d .$alias).{.$packages.=.$platform
a9820 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 Repo->findPackages($package,.$ve
a9840 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 73 20 61 73 20 24 70 rsion);.foreach.($packages.as.$p
a9860 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 20 6e 65 77 20 41 6c ackage).{.$aliasPackage.=.new.Al
a9880 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 61 73 5b 27 61 6c 69 iasPackage($package,.$alias['ali
a98a0 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 61 6c 69 61 73 27 5d as_normalized'],.$alias['alias']
a98c0 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 50 61 63 6b 61 67 65 );.$aliasPackage->setRootPackage
a98e0 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 6f 2d 3e 61 64 64 50 Alias(true);.$platformRepo->addP
a9900 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 7d 0a 7d 0a 7d 0a 0a ackage($aliasPackage);.}.}.}.}..
a9920 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 61 62 6c 65 28 50 61 private.function.isUpdateable(Pa
a9940 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 ckageInterface.$package).{.if.(!
a9960 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 0a 74 68 72 6f 77 20 $this->updateWhitelist).{.throw.
a9980 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 64 61 74 65 61 62 6c new.\LogicException('isUpdateabl
a99a0 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 68 65 6e 20 61 20 77 e.should.only.be.called.when.a.w
a99c0 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 0a 66 6f 72 65 61 63 hitelist.is.present');.}..foreac
a99e0 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 20 61 73 20 24 77 68 h.($this->updateWhitelist.as.$wh
a9a00 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 29 20 7b 0a 24 70 61 iteListedPattern.=>.$void).{.$pa
a9a20 74 74 65 72 6e 52 65 67 65 78 70 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 tternRegexp.=.$this->packageName
a9a40 54 6f 52 65 67 65 78 70 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 3b 0a 69 ToRegexp($whiteListedPattern);.i
a9a60 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 52 65 67 65 78 70 2c 20 24 70 f.(preg_match($patternRegexp,.$p
a9a80 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 ackage->getName())).{.return.tru
a9aa0 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 0a 70 e;.}.}..return.false;.}........p
a9ac0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 63 6b 61 67 65 4e 61 6d 65 54 6f 52 65 67 rivate.function.packageNameToReg
a9ae0 65 78 70 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 0a 7b 0a 24 63 6c 65 61 exp($whiteListedPattern).{.$clea
a9b00 6e 65 64 57 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c nedWhiteListedPattern.=.str_repl
a9b20 61 63 65 28 27 5c 5c 2a 27 2c 20 27 2e 2a 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 77 68 69 ace('\\*',.'.*',.preg_quote($whi
a9b40 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 29 3b 0a 0a 72 65 74 75 72 6e 20 22 7b 5e 22 20 teListedPattern));..return."{^".
a9b60 2e 20 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 2e 20 22 ..$cleanedWhiteListedPattern..."
a9b80 24 7d 69 22 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 $}i";.}..private.function.extrac
a9ba0 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 73 29 0a 7b 0a tPlatformRequirements($links).{.
a9bc0 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 72 65 61 63 68 $platformReqs.=.array();.foreach
a9be0 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 65 67 5f 6d 61 .($links.as.$link).{.if.(preg_ma
a9c00 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 54 46 4f 52 4d tch(PlatformRepository::PLATFORM
a9c20 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 61 72 67 65 74 _PACKAGE_REGEX,.$link->getTarget
a9c40 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 3e 67 65 74 54 ())).{.$platformReqs[$link->getT
a9c60 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 43 6f 6e 73 74 arget()].=.$link->getPrettyConst
a9c80 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 6f 72 6d 52 65 raint();.}.}..return.$platformRe
a9ca0 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 66 75 6e 63 74 qs;.}..............private.funct
a9cc0 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 63 69 65 73 28 ion.whitelistUpdateDependencies(
a9ce0 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 20 24 72 6f 6f $localRepo,.$devMode,.array.$roo
a9d00 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 71 75 69 72 65 tRequires,.array.$rootDevRequire
a9d20 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 65 6c 69 73 74 s).{.if.(!$this->updateWhitelist
a9d40 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 6b 61 67 65 4e ).{.return;.}..$requiredPackageN
a9d60 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 72 61 79 5f 6d ames.=.array();.foreach.(array_m
a9d80 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 76 52 65 71 75 erge($rootRequires,.$rootDevRequ
a9da0 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 72 65 64 50 61 ires).as.$require).{.$requiredPa
a9dc0 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 74 54 61 72 67 ckageNames[].=.$require->getTarg
a9de0 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 6f 6f 74 52 65 et();.}..if.($devMode).{.$rootRe
a9e00 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 quires.=.array_merge($rootRequir
a9e20 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 73 6b 69 70 50 es,.$rootDevRequires);.}..$skipP
a9e40 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 72 6f 6f ackages.=.array();.foreach.($roo
a9e60 74 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 73 6b 69 70 50 61 tRequires.as.$require).{.$skipPa
a9e80 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 ckages[$require->getTarget()].=.
a9ea0 74 72 75 65 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a 24 70 6f 6f 6c true;.}..$pool.=.new.Pool;.$pool
a9ec0 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 0a 24 73 ->addRepository($localRepo);..$s
a9ee0 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 een.=.array();..$rootRequiredPac
a9f00 6b 61 67 65 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 6f 6f 74 52 65 71 75 kageNames.=.array_keys($rootRequ
a9f20 69 72 65 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 ires);..foreach.($this->updateWh
a9f40 69 74 65 6c 69 73 74 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 3e 20 24 76 6f 69 64 itelist.as.$packageName.=>.$void
a9f60 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 ).{.$packageQueue.=.new.\SplQueu
a9f80 65 3b 0a 0a 24 64 65 70 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 e;..$depPackages.=.$pool->whatPr
a9fa0 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 4d 61 74 63 ovides($packageName);..$nameMatc
a9fc0 68 65 73 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 69 6e 5f 61 72 72 61 79 28 24 70 hesRequiredPackage.=.in_array($p
a9fe0 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 ackageName,.$requiredPackageName
aa000 73 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 69 66 20 28 21 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 s,.true);....if.(!$nameMatchesRe
aa020 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 24 77 68 69 74 65 6c 69 73 74 50 61 74 74 65 quiredPackage).{.$whitelistPatte
aa040 72 6e 52 65 67 65 78 70 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 54 6f 52 rnRegexp.=.$this->packageNameToR
aa060 65 67 65 78 70 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 egexp($packageName);.foreach.($r
aa080 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 20 61 73 20 24 72 6f 6f 74 ootRequiredPackageNames.as.$root
aa0a0 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f RequiredPackageName).{.if.(preg_
aa0c0 6d 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 74 50 61 74 74 65 72 6e 52 65 67 65 78 70 2c 20 24 match($whitelistPatternRegexp,.$
aa0e0 72 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 29 29 20 7b 0a 24 6e 61 6d rootRequiredPackageName)).{.$nam
aa100 65 4d 61 74 63 68 65 73 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 74 72 75 65 3b 0a eMatchesRequiredPackage.=.true;.
aa120 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 70 50 61 63 6b break;.}.}.}..if.(count($depPack
aa140 61 67 65 73 29 20 3d 3d 20 30 20 26 26 20 21 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 71 75 69 ages).==.0.&&.!$nameMatchesRequi
aa160 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 redPackage.&&.!in_array($package
aa180 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 6f 63 6b 27 29 29 29 Name,.array('nothing',.'lock')))
aa1a0 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 .{.$this->io->writeError('<warni
aa1c0 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 20 27 ng>Package."'...$packageName...'
aa1e0 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 74 61 ".listed.for.update.is.not.insta
aa200 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 0a 0a lled..Ignoring.</warning>');.}..
aa220 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 61 63 foreach.($depPackages.as.$depPac
aa240 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 28 24 kage).{.$packageQueue->enqueue($
aa260 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 67 65 depPackage);.}..while.(!$package
aa280 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 Queue->isEmpty()).{.$package.=.$
aa2a0 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 73 73 packageQueue->dequeue();.if.(iss
aa2c0 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 7b 0a et($seen[$package->getId()])).{.
aa2e0 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 65 74 continue;.}..$seen[$package->get
aa300 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 74 65 Id()].=.true;.$this->updateWhite
aa320 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 75 65 list[$package->getName()].=.true
aa340 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 65 6e ;..if.(!$this->whitelistDependen
aa360 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 20 3d cies).{.continue;.}..$requires.=
aa380 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 65 61 .$package->getRequires();..forea
aa3a0 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 72 65 ch.($requires.as.$require).{.$re
aa3c0 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 76 69 quirePackages.=.$pool->whatProvi
aa3e0 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 6f 72 des($require->getTarget());..for
aa400 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 75 69 each.($requirePackages.as.$requi
aa420 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 63 6b rePackage).{.if.(isset($skipPack
aa440 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 29 5d ages[$requirePackage->getName()]
aa460 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 2d 3e )).{.continue;.}.$packageQueue->
aa480 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 7d 0a enqueue($requirePackage);.}.}.}.
aa4a0 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 6f 63 }.}.........private.function.moc
aa4c0 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 61 6e kLocalRepositories(RepositoryMan
aa4e0 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 29 3b ager.$rm).{.$packages.=.array();
aa500 0a 66 6f 72 65 61 63 68 20 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 .foreach.($rm->getLocalRepositor
aa520 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 29 20 y()->getPackages().as.$package).
aa540 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 20 3d {.$packages[(string).$package].=
aa560 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 61 63 .clone.$package;.}.foreach.($pac
aa580 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 66 20 kages.as.$key.=>.$package).{.if.
aa5a0 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 ($package.instanceof.AliasPackag
aa5c0 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 65 2d e).{.$alias.=.(string).$package-
aa5e0 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 20 3d >getAliasOf();.$packages[$key].=
aa600 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 6c 69 .new.AliasPackage($packages[$ali
aa620 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 70 61 as],.$package->getVersion(),.$pa
aa640 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 7d 0a ckage->getPrettyVersion());.}.}.
aa660 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 6e 73 $rm->setLocalRepository(.new.Ins
aa680 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 73 29 talledArrayRepository($packages)
aa6a0 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 6e 63 .);.}.........public.static.func
aa6c0 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 6f 6d tion.create(IOInterface.$io,.Com
aa6e0 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 73 74 poser.$composer).{.return.new.st
aa700 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 67 28 atic(.$io,.$composer->getConfig(
aa720 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 6f 6d ),.$composer->getPackage(),.$com
aa740 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 63 6f poser->getDownloadManager(),.$co
aa760 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 2c 0a mposer->getRepositoryManager(),.
aa780 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 73 65 $composer->getLocker(),.$compose
aa7a0 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 63 6f r->getInstallationManager(),.$co
aa7c0 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 24 63 mposer->getEventDispatcher(),.$c
aa7e0 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 29 0a omposer->getAutoloadGenerator().
aa800 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 69 6f );.}..public.function.setAdditio
aa820 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 6f 72 nalInstalledRepository(Repositor
aa840 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 64 52 yInterface.$additionalInstalledR
aa860 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 49 6e epository).{.$this->additionalIn
aa880 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 6c 49 stalledRepository.=.$additionalI
aa8a0 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 68 69 nstalledRepository;..return.$thi
aa8c0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 s;.}........public.function.setD
aa8e0 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 3e 64 ryRun($dryRun.=.true).{.$this->d
aa900 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 74 75 ryRun.=.(boolean).$dryRun;..retu
aa920 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 6f rn.$this;.}.......public.functio
aa940 6e 20 69 73 44 72 79 52 75 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 72 79 n.isDryRun().{.return.$this->dry
aa960 52 75 6e 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 Run;.}........public.function.se
aa980 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 tPreferSource($preferSource.=.tr
aa9a0 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 28 62 6f 6f ue).{.$this->preferSource.=.(boo
aa9c0 6c 65 61 6e 29 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 lean).$preferSource;..return.$th
aa9e0 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 74 is;.}........public.function.set
aaa00 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 74 72 75 65 29 0a 7b PreferDist($preferDist.=.true).{
aaa20 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 6c 65 61 6e 29 20 24 .$this->preferDist.=.(boolean).$
aaa40 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 7d 0a 0a 0a 0a preferDist;..return.$this;.}....
aaa60 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 6d 69 7a 65 41 ....public.function.setOptimizeA
aaa80 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 61 64 65 72 20 3d 20 utoloader($optimizeAutoloader.=.
aaaa0 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 75 74 6f 6c 6f 61 64 false).{.$this->optimizeAutoload
aaac0 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 75 74 6f 6c 6f 61 64 er.=.(boolean).$optimizeAutoload
aaae0 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 70 75 62 6c er;..return.$this;.}........publ
aab00 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 64 61 74 65 20 3d 20 ic.function.setUpdate($update.=.
aab20 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 62 6f 6f 6c 65 61 6e true).{.$this->update.=.(boolean
aab40 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 0a 7d 0a 0a 0a 0a 0a ).$update;..return.$this;.}.....
aab60 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 4d 6f 64 65 28 24 64 ...public.function.setDevMode($d
aab80 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 65 76 4d 6f 64 65 20 evMode.=.true).{.$this->devMode.
aaba0 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 74 75 72 6e 20 24 74 =.(boolean).$devMode;..return.$t
aabc0 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
aabe0 74 44 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 28 24 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 20 tDumpAutoloader($dumpAutoloader.
aac00 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 20 =.true).{.$this->dumpAutoloader.
aac20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 3b 0a 0a 72 65 =.(boolean).$dumpAutoloader;..re
aac40 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
aac60 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.=
aac80 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
aaca0 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
aacc0 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
aace0 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
aad00 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;.
aad20 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
aad40 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
aad60 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
aad80 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
aada0 6f 6e 20 69 73 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 76 on.isVerbose().{.return.$this->v
aadc0 65 72 62 6f 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e erbose;.}........public.function
aade0 20 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 .setIgnorePlatformRequirements($
aae00 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 ignorePlatformReqs.=.false).{.$t
aae20 68 69 73 2d 3e 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 28 62 6f 6f 6c 65 his->ignorePlatformReqs.=.(boole
aae40 61 6e 29 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 3b 0a 0a 72 65 74 75 72 6e an).$ignorePlatformReqs;..return
aae60 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
aae80 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 61 63 6b n.setUpdateWhitelist(array.$pack
aaea0 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 74 20 3d ages).{.$this->updateWhitelist.=
aaec0 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 6f 77 65 .array_flip(array_map('strtolowe
aaee0 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 73 3b 0a r',.$packages));..return.$this;.
aaf00 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 68 69 74 }........public.function.setWhit
aaf20 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 6e 64 65 elistDependencies($updateDepende
aaf40 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 69 73 74 ncies.=.true).{.$this->whitelist
aaf60 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 61 74 65 Dependencies.=.(boolean).$update
aaf80 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 7d 0a 0a Dependencies;..return.$this;.}..
aafa0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 ......public.function.setPreferS
aafc0 74 61 62 6c 65 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 table($preferStable.=.true).{.$t
aafe0 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 his->preferStable.=.(boolean).$p
ab000 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a referStable;..return.$this;.}...
ab020 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 4c 6f .....public.function.setPreferLo
ab040 77 65 73 74 28 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 west($preferLowest.=.true).{.$th
ab060 69 73 2d 3e 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 is->preferLowest.=.(boolean).$pr
ab080 65 66 65 72 4c 6f 77 65 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a eferLowest;..return.$this;.}....
ab0a0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 6c .......public.function.disablePl
ab0c0 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 6f 6e 4d 61 6e ugins().{.$this->installationMan
ab0e0 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 74 75 72 6e 20 ager->disablePlugins();..return.
ab100 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 20 66 69 6c $this;.}.}.<?php../*..*.This.fil
ab120 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 0a 20 2a 0a 20 2a 20 28 63 29 e.is.part.of.Composer...*..*.(c)
ab140 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d 61 6e 40 6e 61 64 65 72 6d 61 .Nils.Adermann.<naderman@naderma
ab160 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 n.de>..*.....Jordi.Boggiano.<j.b
ab180 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a 20 46 6f 72 20 74 68 65 20 66 oggiano@seld.be>..*..*.For.the.f
ab1a0 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 20 69 6e 66 6f 72 6d ull.copyright.and.license.inform
ab1c0 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 20 74 68 65 20 4c 49 43 45 4e 53 45 0a 20 ation,.please.view.the.LICENSE..
ab1e0 2a 20 66 69 6c 65 20 74 68 61 74 20 77 61 73 20 64 69 73 74 72 69 62 75 74 65 64 20 77 69 74 68 *.file.that.was.distributed.with
ab200 20 74 68 69 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 2a 2f 0a 0a 6e 61 6d 65 73 70 61 63 .this.source.code...*/..namespac
ab220 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 e.Composer\Autoload;../**..*.Cla
ab240 73 73 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 50 53 52 2d 30 20 63 6c 61 73 ssLoader.implements.a.PSR-0.clas
ab260 73 20 6c 6f 61 64 65 72 0a 20 2a 0a 20 2a 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 s.loader..*..*.See.https://githu
ab280 62 2e 63 6f 6d 2f 70 68 70 2d 66 69 67 2f 66 69 67 2d 73 74 61 6e 64 61 72 64 73 2f 62 6c 6f 62 b.com/php-fig/fig-standards/blob
ab2a0 2f 6d 61 73 74 65 72 2f 61 63 63 65 70 74 65 64 2f 50 53 52 2d 30 2e 6d 64 0a 20 2a 0a 20 2a 20 /master/accepted/PSR-0.md..*..*.
ab2c0 20 20 20 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f ....$loader.=.new.\Composer\Auto
ab2e0 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f load\ClassLoader();..*..*.....//
ab300 20 72 65 67 69 73 74 65 72 20 63 6c 61 73 73 65 73 20 77 69 74 68 20 6e 61 6d 65 73 70 61 63 65 .register.classes.with.namespace
ab320 73 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 5c 43 s..*.....$loader->add('Symfony\C
ab340 6f 6d 70 6f 6e 65 6e 74 27 2c 20 5f 5f 44 49 52 5f 5f 2e 27 2f 63 6f 6d 70 6f 6e 65 6e 74 27 29 omponent',.__DIR__.'/component')
ab360 3b 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 27 2c ;..*.....$loader->add('Symfony',
ab380 20 20 20 20 20 20 20 20 20 20 20 5f 5f 44 49 52 5f 5f 2e 27 2f 66 72 61 6d 65 77 6f 72 6b 27 29 ...........__DIR__.'/framework')
ab3a0 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 61 63 74 69 76 61 74 65 20 74 68 65 20 61 75 74 6f ;..*..*.....//.activate.the.auto
ab3c0 6c 6f 61 64 65 72 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 loader..*.....$loader->register(
ab3e0 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 74 6f 20 65 6e 61 62 6c 65 20 73 65 61 72 63 68 );..*..*.....//.to.enable.search
ab400 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 28 65 67 2e 20 66 6f 72 20 50 45 ing.the.include.path.(eg..for.PE
ab420 41 52 20 70 61 63 6b 61 67 65 73 29 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 AR.packages)..*.....$loader->set
ab440 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 20 2a 0a 20 2a 20 49 6e 20 74 UseIncludePath(true);..*..*.In.t
ab460 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 74 72 79 20 74 6f 20 75 73 65 20 61 his.example,.if.you.try.to.use.a
ab480 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 0a .class.in.the.Symfony\Component.
ab4a0 20 2a 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74 73 20 63 68 69 6c 64 .*.namespace.or.one.of.its.child
ab4c0 72 65 6e 20 28 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 20 66 ren.(Symfony\Component\Console.f
ab4e0 6f 72 20 69 6e 73 74 61 6e 63 65 29 2c 0a 20 2a 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 or.instance),..*.the.autoloader.
ab500 77 69 6c 6c 20 66 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 63 6c 61 73 73 20 75 6e will.first.look.for.the.class.un
ab520 64 65 72 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 2f 0a 20 2a 20 64 69 72 65 63 74 6f 72 79 2c der.the.component/..*.directory,
ab540 20 61 6e 64 20 69 74 20 77 69 6c 6c 20 74 68 65 6e 20 66 61 6c 6c 62 61 63 6b 20 74 6f 20 74 68 .and.it.will.then.fallback.to.th
ab560 65 20 66 72 61 6d 65 77 6f 72 6b 2f 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 6e 6f 74 0a 20 2a e.framework/.directory.if.not..*
ab580 20 66 6f 75 6e 64 20 62 65 66 6f 72 65 20 67 69 76 69 6e 67 20 75 70 2e 0a 20 2a 0a 20 2a 20 54 .found.before.giving.up...*..*.T
ab5a0 68 69 73 20 63 6c 61 73 73 20 69 73 20 6c 6f 6f 73 65 6c 79 20 62 61 73 65 64 20 6f 6e 20 74 68 his.class.is.loosely.based.on.th
ab5c0 65 20 53 79 6d 66 6f 6e 79 20 55 6e 69 76 65 72 73 61 6c 43 6c 61 73 73 4c 6f 61 64 65 72 2e 0a e.Symfony.UniversalClassLoader..
ab5e0 20 2a 0a 20 2a 20 40 61 75 74 68 6f 72 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 20 3c .*..*.@author.Fabien.Potencier.<
ab600 66 61 62 69 65 6e 40 73 79 6d 66 6f 6e 79 2e 63 6f 6d 3e 0a 20 2a 20 40 61 75 74 68 6f 72 20 4a fabien@symfony.com>..*.@author.J
ab620 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 ordi.Boggiano.<j.boggiano@seld.b
ab640 65 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 20 20 20 20 2f e>..*/.class.ClassLoader.{...../
ab660 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 4c 65 6e 67 74 /.PSR-4.....private.$prefixLengt
ab680 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 74 65 20 24 70 hsPsr4.=.array();.....private.$p
ab6a0 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 20 20 70 72 69 refixDirsPsr4.=.array();.....pri
ab6c0 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 72 61 79 28 29 vate.$fallbackDirsPsr4.=.array()
ab6e0 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 20 24 70 72 65 ;......//.PSR-0.....private.$pre
ab700 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 69 76 61 74 65 fixesPsr0.=.array();.....private
ab720 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 29 3b 0a 0a 20 .$fallbackDirsPsr0.=.array();...
ab740 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 3d 20 66 61 6c ...private.$useIncludePath.=.fal
ab760 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 20 61 72 72 61 se;.....private.$classMap.=.arra
ab780 79 28 29 3b 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f y();......private.$classMapAutho
ab7a0 72 69 74 61 74 69 76 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 ritative.=.false;......public.fu
ab7c0 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 nction.getPrefixes().....{......
ab7e0 20 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 ...if.(!empty($this->prefixesPsr
ab800 30 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 0)).{.............return.call_us
ab820 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 2c 20 24 74 68 er_func_array('array_merge',.$th
ab840 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 is->prefixesPsr0);.........}....
ab860 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 ......return.array();.....}.....
ab880 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 65 73 50 73 72 34 .public.function.getPrefixesPsr4
ab8a0 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 ().....{.........return.$this->p
ab8c0 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 70 75 62 6c 69 63 refixDirsPsr4;.....}......public
ab8e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 20 20 20 20 .function.getFallbackDirs().....
ab900 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b {.........return.$this->fallback
ab920 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 63 20 66 75 6e 63 DirsPsr0;.....}......public.func
ab940 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 0a 20 20 20 20 7b tion.getFallbackDirsPsr4().....{
ab960 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 .........return.$this->fallbackD
ab980 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 20 66 75 6e 63 74 irsPsr4;.....}......public.funct
ab9a0 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 ion.getClassMap().....{.........
ab9c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a 20 return.$this->classMap;.....}...
ab9e0 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 63 6c 61 73 .../**......*.@param.array.$clas
aba00 73 4d 61 70 20 43 6c 61 73 73 20 74 6f 20 66 69 6c 65 6e 61 6d 65 20 6d 61 70 0a 20 20 20 20 20 sMap.Class.to.filename.map......
aba20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 61 73 73 4d */.....public.function.addClassM
aba40 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ap(array.$classMap).....{.......
aba60 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 ..if.($this->classMap).{........
aba80 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 .....$this->classMap.=.array_mer
abaa0 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a ge($this->classMap,.$classMap);.
abac0 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 ........}.else.{.............$th
abae0 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 20 20 is->classMap.=.$classMap;.......
abb00 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 ..}.....}....../**......*.Regist
abb20 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 72 69 65 73 20 66 ers.a.set.of.PSR-0.directories.f
abb40 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 20 20 20 20 20 2a or.a.given.prefix,.either......*
abb60 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 6f 20 74 68 65 20 .appending.or.prepending.to.the.
abb80 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 69 73 20 70 72 65 ones.previously.set.for.this.pre
abba0 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 73 74 72 69 6e 67 fix.......*......*.@param.string
abbc0 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 0a 20 20 20 20 20 .......$prefix..The.prefix......
abbe0 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
abc00 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 20 20 20 20 20 2a he.PSR-0.root.directories......*
abc20 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 65 6e 64 20 57 68 .@param.bool.........$prepend.Wh
abc40 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 74 6f 72 69 65 73 ether.to.prepend.the.directories
abc60 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
abc80 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 20 3d 20 66 61 6c ($prefix,.$paths,.$prepend.=.fal
abca0 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 65 66 69 78 29 20 se).....{.........if.(!$prefix).
abcc0 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 29 20 7b 0a 20 20 {.............if.($prepend).{...
abce0 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
abd00 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 20 20 20 20 20 20 sPsr0.=.array_merge(............
abd20 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,........
abd40 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 73 .............$this->fallbackDirs
abd60 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 20 20 20 20 20 20 Psr0.................);.........
abd80 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 20 20 20 24 74 68 ....}.else.{.................$th
abda0 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 5f 6d 65 72 is->fallbackDirsPsr0.=.array_mer
abdc0 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 68 69 73 2d 3e 66 ge(.....................$this->f
abde0 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 20 20 20 20 20 20 allbackDirsPsr0,................
abe00 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 20 20 20 20 .....(array).$paths.............
abe20 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 20 20 20 20 20 20 ....);.............}............
abe40 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 20 20 20 24 66 69 ..return;.........}..........$fi
abe60 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 69 66 20 28 21 69 rst.=.$prefix[0];.........if.(!i
abe80 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 5d sset($this->prefixesPsr0[$first]
abea0 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 24 74 68 69 73 2d [$prefix])).{.............$this-
abec0 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].=
abee0 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 20 20 20 20 72 65 .(array).$paths;..............re
abf00 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 turn;.........}.........if.($pre
abf20 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 3e 70 72 65 66 69 pend).{.............$this->prefi
abf40 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 72 61 79 xesPsr0[$first][$prefix].=.array
abf60 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 72 72 61 79 29 20 _merge(.................(array).
abf80 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 68 69 73 2d 3e 70 $paths,.................$this->p
abfa0 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 20 20 20 refixesPsr0[$first][$prefix]....
abfc0 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 .........);.........}.else.{....
abfe0 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 72 30 5b 24 66 69 .........$this->prefixesPsr0[$fi
ac000 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 20 20 20 rst][$prefix].=.array_merge(....
ac020 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 65 73 50 73 72 30 .............$this->prefixesPsr0
ac040 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 20 20 20 20 20 20 [$first][$prefix],..............
ac060 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 20 20 20 20 29 3b ...(array).$paths.............);
ac080 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 20 20 20 20 20 2a .........}.....}....../**......*
ac0a0 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 64 69 72 65 63 74 .Registers.a.set.of.PSR-4.direct
ac0c0 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 65 2c 20 65 69 74 ories.for.a.given.namespace,.eit
ac0e0 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 65 70 65 6e 64 69 her......*.appending.or.prependi
ac100 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 73 65 74 20 66 6f ng.to.the.ones.previously.set.fo
ac120 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 20 20 20 20 2a 20 r.this.namespace.......*......*.
ac140 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 @param.string.......$prefix..The
ac160 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 61 69 6c 69 6e 67 .prefix/namespace,.with.trailing
ac180 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 73 74 72 69 6e 67 .'\\'......*.@param.array|string
ac1a0 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 69 72 65 63 74 6f .$paths...The.PSR-0.base.directo
ac1c0 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 20 20 20 20 20 20 ries......*.@param.bool.........
ac1e0 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 74 68 65 20 $prepend.Whether.to.prepend.the.
ac200 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 74 68 72 6f 77 directories......*......*.@throw
ac220 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 0a 20 20 20 20 s.\InvalidArgumentException.....
ac240 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 50 73 72 34 28 .*/.....public.function.addPsr4(
ac260 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 20 3d 20 66 61 6c 73 $prefix,.$paths,.$prepend.=.fals
ac280 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 65 66 69 78 29 20 7b e).....{.........if.(!$prefix).{
ac2a0 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 6f .............//.Register.directo
ac2c0 72 69 65 73 20 66 6f 72 20 74 68 65 20 72 6f 6f 74 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 ries.for.the.root.namespace.....
ac2e0 20 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 .........if.($prepend).{........
ac300 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
ac320 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=.array_merge(.................
ac340 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 20 20 20 20 20 ....(array).$paths,.............
ac360 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 0a ........$this->fallbackDirsPsr4.
ac380 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 20 20 20 20 7d ................);.............}
ac3a0 20 65 6c 73 65 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 .else.{.................$this->f
ac3c0 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 65 72 67 65 28 0a 20 allbackDirsPsr4.=.array_merge(..
ac3e0 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
ac400 63 6b 44 69 72 73 50 73 72 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ckDirsPsr4,.....................
ac420 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 (array).$paths.................)
ac440 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 ;.............}.........}.elseif
ac460 20 28 21 69 73 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 .(!isset($this->prefixDirsPsr4[$
ac480 70 72 65 66 69 78 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 67 69 73 prefix])).{.............//.Regis
ac4a0 74 65 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 6e 65 77 20 6e 61 6d 65 73 70 ter.directories.for.a.new.namesp
ac4c0 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 ace..............$length.=.strle
ac4e0 6e 28 24 70 72 65 66 69 78 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 27 5c 5c 27 n($prefix);.............if.('\\'
ac500 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 20 2d 20 31 5d 29 20 7b 0a 20 20 20 .!==.$prefix[$length.-.1]).{....
ac520 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 .............throw.new.\InvalidA
ac540 72 67 75 6d 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 rgumentException("A.non-empty.PS
ac560 52 2d 34 20 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 R-4.prefix.must.end.with.a.names
ac580 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2e 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d pace.separator.");.............}
ac5a0 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 4c 65 6e 67 74 68 .............$this->prefixLength
ac5c0 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 20 24 6c 65 sPsr4[$prefix[0]][$prefix].=.$le
ac5e0 6e 67 74 68 3b 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 44 ngth;.............$this->prefixD
ac600 69 72 73 50 73 72 34 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 irsPsr4[$prefix].=.(array).$path
ac620 73 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b s;.........}.elseif.($prepend).{
ac640 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 72 65 70 65 6e 64 20 64 69 72 65 63 74 6f 72 .............//.Prepend.director
ac660 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 72 65 64 20 6e 61 ies.for.an.already.registered.na
ac680 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 2d 3e 70 72 65 66 mespace..............$this->pref
ac6a0 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 79 5f 6d 65 72 67 ixDirsPsr4[$prefix].=.array_merg
ac6c0 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 e(.................(array).$path
ac6e0 73 2c 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 s,.................$this->prefix
ac700 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b DirsPsr4[$prefix].............);
ac720 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 2f 2f .........}.else.{.............//
ac740 20 41 70 70 65 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 6e 20 61 6c 72 65 61 .Append.directories.for.an.alrea
ac760 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 20 20 20 20 20 20 dy.registered.namespace.........
ac780 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 72 65 66 .....$this->prefixDirsPsr4[$pref
ac7a0 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ix].=.array_merge(..............
ac7c0 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 72 65 66 69 78 ...$this->prefixDirsPsr4[$prefix
ac7e0 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 ],.................(array).$path
ac800 73 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 0a 20 20 20 20 7d s.............);.........}.....}
ac820 0a 0a 20 20 20 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 ....../**......*.Registers.a.set
ac840 20 6f 66 20 50 53 52 2d 30 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 .of.PSR-0.directories.for.a.give
ac860 6e 20 70 72 65 66 69 78 2c 0a 20 20 20 20 20 2a 20 72 65 70 6c 61 63 69 6e 67 20 61 6e 79 20 6f n.prefix,......*.replacing.any.o
ac880 74 68 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 70 72 thers.previously.set.for.this.pr
ac8a0 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 73 74 72 69 6e efix.......*......*.@param.strin
ac8c0 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 54 68 65 20 70 72 65 66 69 78 0a 20 20 20 20 20 g.......$prefix.The.prefix......
ac8e0 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 54 68 *.@param.array|string.$paths..Th
ac900 65 20 50 53 52 2d 30 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 2f e.PSR-0.base.directories......*/
ac920 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 24 70 72 65 66 69 78 .....public.function.set($prefix
ac940 2c 20 24 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 ,.$paths).....{.........if.(!$pr
ac960 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 62 efix).{.............$this->fallb
ac980 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 ackDirsPsr0.=.(array).$paths;...
ac9a0 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 ......}.else.{.............$this
ac9c0 2d 3e 70 72 65 66 69 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 ->prefixesPsr0[$prefix[0]][$pref
ac9e0 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a ix].=.(array).$paths;.........}.
aca00 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 ....}....../**......*.Registers.
aca20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 34 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 a.set.of.PSR-4.directories.for.a
aca40 20 67 69 76 65 6e 20 6e 61 6d 65 73 70 61 63 65 2c 0a 20 20 20 20 20 2a 20 72 65 70 6c 61 63 69 .given.namespace,......*.replaci
aca60 6e 67 20 61 6e 79 20 6f 74 68 65 72 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 ng.any.others.previously.set.for
aca80 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 20 20 20 20 2a 20 40 .this.namespace.......*......*.@
acaa0 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 54 68 65 20 70 param.string.......$prefix.The.p
acac0 72 65 66 69 78 2f 6e 61 6d 65 73 70 61 63 65 2c 20 77 69 74 68 20 74 72 61 69 6c 69 6e 67 20 27 refix/namespace,.with.trailing.'
acae0 5c 5c 27 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 \\'......*.@param.array|string.$
acb00 70 61 74 68 73 20 20 54 68 65 20 50 53 52 2d 34 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 69 65 paths..The.PSR-4.base.directorie
acb20 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 74 68 72 6f 77 73 20 5c 49 6e 76 61 6c 69 64 s......*......*.@throws.\Invalid
acb40 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 ArgumentException......*/.....pu
acb60 62 6c 69 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 blic.function.setPsr4($prefix,.$
acb80 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 paths).....{.........if.(!$prefi
acba0 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 62 61 63 6b x).{.............$this->fallback
acbc0 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 20 20 20 20 DirsPsr4.=.(array).$paths;......
acbe0 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 67 74 68 20 ...}.else.{.............$length.
acc00 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 20 20 20 69 =.strlen($prefix);.............i
acc20 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 2d 20 31 5d f.('\\'.!==.$prefix[$length.-.1]
acc40 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 77 20 5c 49 ).{.................throw.new.\I
acc60 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 6f 6e 2d 65 nvalidArgumentException("A.non-e
acc80 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 69 74 68 20 mpty.PSR-4.prefix.must.end.with.
acca0 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 20 20 20 20 a.namespace.separator.");.......
accc0 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 72 65 66 69 ......}.............$this->prefi
acce0 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 65 66 69 78 xLengthsPsr4[$prefix[0]][$prefix
acd00 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 69 73 2d 3e ].=.$length;.............$this->
acd20 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 72 72 61 79 prefixDirsPsr4[$prefix].=.(array
acd40 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 20 2f ).$paths;.........}.....}....../
acd60 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 20 74 68 65 **......*.Turns.on.searching.the
acd80 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 73 2e 0a 20 .include.path.for.class.files...
acda0 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 65 49 6e 63 ....*......*.@param.bool.$useInc
acdc0 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 66 75 6e 63 ludePath......*/.....public.func
acde0 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 6e 63 6c 75 tion.setUseIncludePath($useInclu
ace00 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 3e 75 73 65 dePath).....{.........$this->use
ace20 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 68 3b 0a 20 IncludePath.=.$useIncludePath;..
ace40 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 75 73 65 64 ...}....../**......*.Can.be.used
ace60 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 75 73 65 73 .to.check.if.the.autoloader.uses
ace80 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 20 20 20 20 .the.include.path.to.check......
acea0 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 20 40 72 65 *.for.classes.......*......*.@re
acec0 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 20 66 75 6e turn.bool......*/.....public.fun
acee0 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 20 20 7b 0a ction.getUseIncludePath().....{.
acf00 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 6c 75 64 65 ........return.$this->useInclude
acf20 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 54 75 72 6e Path;.....}....../**......*.Turn
acf40 73 20 6f 66 66 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 70 72 65 66 69 78 20 61 6e 64 20 66 s.off.searching.the.prefix.and.f
acf60 61 6c 6c 62 61 63 6b 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 63 6c 61 73 73 65 73 0a allback.directories.for.classes.
acf80 20 20 20 20 20 2a 20 74 68 61 74 20 68 61 76 65 20 6e 6f 74 20 62 65 65 6e 20 72 65 67 69 73 74 .....*.that.have.not.been.regist
acfa0 65 72 65 64 20 77 69 74 68 20 74 68 65 20 63 6c 61 73 73 20 6d 61 70 2e 0a 20 20 20 20 20 2a 0a ered.with.the.class.map.......*.
acfc0 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 .....*.@param.bool.$classMapAuth
acfe0 6f 72 69 74 61 74 69 76 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e oritative......*/.....public.fun
ad000 63 74 69 6f 6e 20 73 65 74 43 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 28 24 ction.setClassMapAuthoritative($
ad020 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 0a 20 20 20 20 7b 0a 20 20 20 classMapAuthoritative).....{....
ad040 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 .....$this->classMapAuthoritativ
ad060 65 20 3d 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 3b 0a 20 20 20 20 e.=.$classMapAuthoritative;.....
ad080 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 68 6f 75 6c 64 20 63 6c 61 73 73 20 6c }....../**......*.Should.class.l
ad0a0 6f 6f 6b 75 70 20 66 61 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 ookup.fail.if.not.found.in.the.c
ad0c0 75 72 72 65 6e 74 20 63 6c 61 73 73 20 6d 61 70 3f 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 urrent.class.map?......*......*.
ad0e0 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 20 @return.bool......*/.....public.
ad100 66 75 6e 63 74 69 6f 6e 20 69 73 43 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 function.isClassMapAuthoritative
ad120 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 ().....{.........return.$this->c
ad140 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 lassMapAuthoritative;.....}.....
ad160 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 ./**......*.Registers.this.insta
ad180 6e 63 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 nce.as.an.autoloader.......*....
ad1a0 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 72 ..*.@param.bool.$prepend.Whether
ad1c0 20 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 6f 72 20 6e 6f .to.prepend.the.autoloader.or.no
ad1e0 74 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 72 65 t......*/.....public.function.re
ad200 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 gister($prepend.=.false).....{..
ad220 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 .......spl_autoload_register(arr
ad240 61 79 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 ay($this,.'loadClass'),.true,.$p
ad260 72 65 70 65 6e 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 55 repend);.....}....../**......*.U
ad280 6e 72 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 nregisters.this.instance.as.an.a
ad2a0 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 utoloader.......*/.....public.fu
ad2c0 6e 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 nction.unregister().....{.......
ad2e0 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 ..spl_autoload_unregister(array(
ad300 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 $this,.'loadClass'));.....}.....
ad320 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 61 64 73 20 74 68 65 20 67 69 76 65 6e 20 63 6c 61 73 ./**......*.Loads.the.given.clas
ad340 73 20 6f 72 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 s.or.interface.......*......*.@p
ad360 61 72 61 6d 20 20 73 74 72 69 6e 67 20 20 20 20 24 63 6c 61 73 73 20 54 68 65 20 6e 61 6d 65 20 aram..string....$class.The.name.
ad380 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c of.the.class......*.@return.bool
ad3a0 7c 6e 75 6c 6c 20 54 72 75 65 20 69 66 20 6c 6f 61 64 65 64 2c 20 6e 75 6c 6c 20 6f 74 68 65 72 |null.True.if.loaded,.null.other
ad3c0 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 6f 6e wise......*/.....public.function
ad3e0 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 .loadClass($class).....{........
ad400 20 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c .if.($file.=.$this->findFile($cl
ad420 61 73 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 46 69 6c 65 28 ass)).{.............includeFile(
ad440 24 66 69 6c 65 29 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 65 $file);..............return.true
ad460 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 20 20 20 20 20 ;.........}.....}....../**......
ad480 2a 20 46 69 6e 64 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 68 65 *.Finds.the.path.to.the.file.whe
ad4a0 72 65 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 20 20 20 2a 0a re.the.class.is.defined.......*.
ad4c0 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 54 68 65 20 .....*.@param.string.$class.The.
ad4e0 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 name.of.the.class......*......*.
ad500 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 7c 66 61 6c 73 65 20 54 68 65 20 70 61 74 68 20 69 66 @return.string|false.The.path.if
ad520 20 66 6f 75 6e 64 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 2a 2f 0a .found,.false.otherwise......*/.
ad540 20 20 20 20 70 75 62 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 ....public.function.findFile($cl
ad560 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 6f 72 6b 20 61 72 6f 75 6e ass).....{.........//.work.aroun
ad580 64 20 66 6f 72 20 50 48 50 20 35 2e 33 2e 30 20 2d 20 35 2e 33 2e 32 20 68 74 74 70 73 3a 2f 2f d.for.PHP.5.3.0.-.5.3.2.https://
ad5a0 62 75 67 73 2e 70 68 70 2e 6e 65 74 2f 35 30 37 33 31 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 bugs.php.net/50731.........if.('
ad5c0 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 \\'.==.$class[0]).{.............
ad5e0 24 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 20 20 20 20 $class.=.substr($class,.1);.....
ad600 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 6c 61 73 73 20 6d 61 70 20 6c 6f 6f 6b ....}..........//.class.map.look
ad620 75 70 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 73 up.........if.(isset($this->clas
ad640 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 sMap[$class])).{.............ret
ad660 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 20 urn.$this->classMap[$class];....
ad680 20 20 20 20 20 7d 0a 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 .....}.........if.($this->classM
ad6a0 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 apAuthoritative).{.............r
ad6c0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 eturn.false;.........}..........
ad6e0 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 57 69 74 68 45 78 74 65 6e $file.=.$this->findFileWithExten
ad700 73 69 6f 6e 28 24 63 6c 61 73 73 2c 20 27 2e 70 68 70 27 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f sion($class,.'.php');........../
ad720 2f 20 53 65 61 72 63 68 20 66 6f 72 20 48 61 63 6b 20 66 69 6c 65 73 20 69 66 20 77 65 20 61 72 /.Search.for.Hack.files.if.we.ar
ad740 65 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 48 48 56 4d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 e.running.on.HHVM.........if.($f
ad760 69 6c 65 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 ile.===.null.&&.defined('HHVM_VE
ad780 52 53 49 4f 4e 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 24 RSION')).{.............$file.=.$
ad7a0 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 57 69 74 68 45 78 74 65 6e 73 69 6f 6e 28 24 63 6c 61 this->findFileWithExtension($cla
ad7c0 73 73 2c 20 27 2e 68 68 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 ss,.'.hh');.........}..........i
ad7e0 66 20 28 24 66 69 6c 65 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 f.($file.===.null).{............
ad800 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 6f 65 .//.Remember.that.this.class.doe
ad820 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 s.not.exist..............return.
ad840 24 74 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 $this->classMap[$class].=.false;
ad860 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 66 69 6c 65 .........}..........return.$file
ad880 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 ;.....}......private.function.fi
ad8a0 6e 64 46 69 6c 65 57 69 74 68 45 78 74 65 6e 73 69 6f 6e 28 24 63 6c 61 73 73 2c 20 24 65 78 74 ndFileWithExtension($class,.$ext
ad8c0 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 34 20 6c 6f 6f 6b 75 70 0a ).....{.........//.PSR-4.lookup.
ad8e0 20 20 20 20 20 20 20 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 ........$logicalPathPsr4.=.strtr
ad900 28 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 ($class,.'\\',.DIRECTORY_SEPARAT
ad920 4f 52 29 20 2e 20 24 65 78 74 3b 0a 0a 20 20 20 20 20 20 20 20 24 66 69 72 73 74 20 3d 20 24 63 OR)...$ext;..........$first.=.$c
ad940 6c 61 73 73 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 lass[0];.........if.(isset($this
ad960 2d 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 29 29 20 7b 0a ->prefixLengthsPsr4[$first])).{.
ad980 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 2d 3e 70 72 65 66 ............foreach.($this->pref
ad9a0 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 72 65 66 69 78 ixLengthsPsr4[$first].as.$prefix
ad9c0 20 3d 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 .=>.$length).{.................i
ad9e0 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 f.(0.===.strpos($class,.$prefix)
ada00 29 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 ).{.....................foreach.
ada20 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 20 ($this->prefixDirsPsr4[$prefix].
ada40 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 20 20 20 20 20 20 as.$dir).{......................
ada60 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 20 24 64 69 72 20 ...if.(file_exists($file.=.$dir.
ada80 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 73 75 62 73 74 72 28 24 ..DIRECTORY_SEPARATOR...substr($
adaa0 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 6c 65 6e 67 74 68 29 29 29 20 7b 0a 20 20 logicalPathPsr4,.$length))).{...
adac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ..........................return
adae0 20 24 66 69 6c 65 3b 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 .$file;.........................
adb00 7d 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 20 20 }.....................}.........
adb20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ........}.............}.........
adb40 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 34 20 66 61 6c 6c 62 61 63 6b 20 64 69 72 }..........//.PSR-4.fallback.dir
adb60 73 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 s.........foreach.($this->fallba
adb80 63 6b 44 69 72 73 50 73 72 34 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ckDirsPsr4.as.$dir).{...........
adba0 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 20 24 64 69 72 20 2e ..if.(file_exists($file.=.$dir..
adbc0 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 63 61 6c 50 .DIRECTORY_SEPARATOR...$logicalP
adbe0 61 74 68 50 73 72 34 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 athPsr4)).{.................retu
adc00 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 rn.$file;.............}.........
adc20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 30 20 6c 6f 6f 6b 75 70 0a 20 20 20 20 20 }..........//.PSR-0.lookup......
adc40 20 20 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 ...if.(false.!==.$pos.=.strrpos(
adc60 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 $class,.'\\')).{.............//.
adc80 6e 61 6d 65 73 70 61 63 65 64 20 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 namespaced.class.name...........
adca0 20 20 24 6c 6f 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 ..$logicalPathPsr0.=.substr($log
adcc0 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 30 2c 20 24 70 6f 73 20 2b 20 31 29 0a 20 20 20 20 20 icalPathPsr4,.0,.$pos.+.1)......
adce0 20 20 20 20 20 20 20 20 20 20 20 2e 20 73 74 72 74 72 28 73 75 62 73 74 72 28 24 6c 6f 67 69 63 .............strtr(substr($logic
add00 61 6c 50 61 74 68 50 73 72 34 2c 20 24 70 6f 73 20 2b 20 31 29 2c 20 27 5f 27 2c 20 44 49 52 45 alPathPsr4,.$pos.+.1),.'_',.DIRE
add20 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 CTORY_SEPARATOR);.........}.else
add40 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 45 41 52 2d 6c 69 6b 65 20 63 6c 61 73 .{.............//.PEAR-like.clas
add60 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
add80 73 72 30 20 3d 20 73 74 72 74 72 28 24 63 6c 61 73 73 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f sr0.=.strtr($class,.'_',.DIRECTO
adda0 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 24 65 78 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a RY_SEPARATOR)...$ext;.........}.
addc0 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 .........if.(isset($this->prefix
adde0 65 73 50 73 72 30 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 esPsr0[$first])).{.............f
ade00 6f 72 65 61 63 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 oreach.($this->prefixesPsr0[$fir
ade20 73 74 5d 20 61 73 20 24 70 72 65 66 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 20 20 20 20 20 st].as.$prefix.=>.$dirs).{......
ade40 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 ...........if.(0.===.strpos($cla
ade60 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ss,.$prefix)).{.................
ade80 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 ....foreach.($dirs.as.$dir).{...
adea0 20 20 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 ......................if.(file_e
adec0 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 53 xists($file.=.$dir...DIRECTORY_S
adee0 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 0a EPARATOR...$logicalPathPsr0)).{.
adf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ............................retu
adf20 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rn.$file;.......................
adf40 20 20 7d 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 ..}.....................}.......
adf60 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 ..........}.............}.......
adf80 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 30 20 66 61 6c 6c 62 61 63 6b 20 64 ..}..........//.PSR-0.fallback.d
adfa0 69 72 73 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c irs.........foreach.($this->fall
adfc0 62 61 63 6b 44 69 72 73 50 73 72 30 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 backDirsPsr0.as.$dir).{.........
adfe0 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 20 24 64 69 72 ....if.(file_exists($file.=.$dir
ae000 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 63 61 ...DIRECTORY_SEPARATOR...$logica
ae020 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 20 20 20 72 65 lPathPsr0)).{.................re
ae040 74 75 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 turn.$file;.............}.......
ae060 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 30 20 69 6e 63 6c 75 64 65 20 70 61 ..}..........//.PSR-0.include.pa
ae080 74 68 73 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 ths..........if.($this->useInclu
ae0a0 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 dePath.&&.$file.=.stream_resolve
ae0c0 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 _include_path($logicalPathPsr0))
ae0e0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 .{.............return.$file;....
ae100 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 53 63 6f 70 65 20 69 73 6f .....}.....}.}../**..*.Scope.iso
ae120 6c 61 74 65 64 20 69 6e 63 6c 75 64 65 2e 0a 20 2a 0a 20 2a 20 50 72 65 76 65 6e 74 73 20 61 63 lated.include...*..*.Prevents.ac
ae140 63 65 73 73 20 74 6f 20 24 74 68 69 73 2f 73 65 6c 66 20 66 72 6f 6d 20 69 6e 63 6c 75 64 65 64 cess.to.$this/self.from.included
ae160 20 66 69 6c 65 73 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 46 69 6c 65 .files...*/.function.includeFile
ae180 28 24 66 69 6c 65 29 0a 7b 0a 20 20 20 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 7d 0a 5b ($file).{.....include.$file;.}.[
ae1a0 0a 20 20 20 20 22 47 6c 69 64 65 22 2c 20 22 41 62 73 74 79 6c 65 73 22 2c 20 22 41 46 4c 2d 31 ....."Glide",."Abstyles",."AFL-1
ae1c0 2e 31 22 2c 20 22 41 46 4c 2d 31 2e 32 22 2c 20 22 41 46 4c 2d 32 2e 30 22 2c 20 22 41 46 4c 2d .1",."AFL-1.2",."AFL-2.0",."AFL-
ae1e0 32 2e 31 22 2c 20 22 41 46 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 41 4d 50 41 53 22 2c 20 22 41 2.1",."AFL-3.0",....."AMPAS",."A
ae200 50 4c 2d 31 2e 30 22 2c 20 22 41 64 6f 62 65 2d 47 6c 79 70 68 22 2c 20 22 41 50 41 46 4d 4c 22 PL-1.0",."Adobe-Glyph",."APAFML"
ae220 2c 20 22 41 64 6f 62 65 2d 32 30 30 36 22 2c 20 22 41 47 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 ,."Adobe-2006",."AGPL-1.0",.....
ae240 22 41 66 6d 70 61 72 73 65 22 2c 20 22 41 6c 61 64 64 69 6e 22 2c 20 22 41 44 53 4c 22 2c 20 22 "Afmparse",."Aladdin",."ADSL",."
ae260 41 4d 44 50 4c 50 41 22 2c 20 22 41 4e 54 4c 52 2d 50 44 22 2c 20 22 41 70 61 63 68 65 2d 31 2e AMDPLPA",."ANTLR-PD",."Apache-1.
ae280 30 22 2c 0a 20 20 20 20 22 41 70 61 63 68 65 2d 31 2e 31 22 2c 20 22 41 70 61 63 68 65 2d 32 2e 0",....."Apache-1.1",."Apache-2.
ae2a0 30 22 2c 20 22 41 4d 4c 22 2c 20 22 41 50 53 4c 2d 31 2e 30 22 2c 20 22 41 50 53 4c 2d 31 2e 31 0",."AML",."APSL-1.0",."APSL-1.1
ae2c0 22 2c 20 22 41 50 53 4c 2d 31 2e 32 22 2c 0a 20 20 20 20 22 41 50 53 4c 2d 32 2e 30 22 2c 20 22 ",."APSL-1.2",....."APSL-2.0",."
ae2e0 41 72 74 69 73 74 69 63 2d 31 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 2d 50 65 72 Artistic-1.0",."Artistic-1.0-Per
ae300 6c 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 2d 63 6c 38 22 2c 0a 20 20 20 20 22 41 72 74 l",."Artistic-1.0-cl8",....."Art
ae320 69 73 74 69 63 2d 32 2e 30 22 2c 20 22 41 41 4c 22 2c 20 22 42 61 68 79 70 68 22 2c 20 22 42 61 istic-2.0",."AAL",."Bahyph",."Ba
ae340 72 72 22 2c 20 22 42 65 65 72 77 61 72 65 22 2c 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 30 rr",."Beerware",."BitTorrent-1.0
ae360 22 2c 0a 20 20 20 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 ",....."BitTorrent-1.1",."BSL-1.
ae380 30 22 2c 20 22 42 6f 72 63 65 75 78 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 22 2c 0a 20 0",."Borceux",."BSD-2-Clause",..
ae3a0 20 20 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 46 72 65 65 42 53 44 22 2c 20 22 42 53 44 2d ..."BSD-2-Clause-FreeBSD",."BSD-
ae3c0 32 2d 43 6c 61 75 73 65 2d 4e 65 74 42 53 44 22 2c 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 22 2-Clause-NetBSD",."BSD-3-Clause"
ae3e0 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 43 6c 65 61 72 22 2c 20 22 42 53 44 ,....."BSD-3-Clause-Clear",."BSD
ae400 2d 34 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 50 72 6f 74 65 63 74 69 6f 6e 22 2c 0a 20 20 -4-Clause",."BSD-Protection",...
ae420 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 41 74 74 72 69 62 75 74 69 6f 6e 22 2c 20 22 42 .."BSD-3-Clause-Attribution",."B
ae440 53 44 2d 34 2d 43 6c 61 75 73 65 2d 55 43 22 2c 20 22 62 7a 69 70 32 2d 31 2e 30 2e 35 22 2c 20 SD-4-Clause-UC",."bzip2-1.0.5",.
ae460 22 62 7a 69 70 32 2d 31 2e 30 2e 36 22 2c 0a 20 20 20 20 22 43 61 6c 64 65 72 61 22 2c 20 22 43 "bzip2-1.0.6",....."Caldera",."C
ae480 45 43 49 4c 4c 2d 31 2e 30 22 2c 20 22 43 45 43 49 4c 4c 2d 31 2e 31 22 2c 20 22 43 45 43 49 4c ECILL-1.0",."CECILL-1.1",."CECIL
ae4a0 4c 2d 32 2e 30 22 2c 20 22 43 45 43 49 4c 4c 2d 42 22 2c 20 22 43 45 43 49 4c 4c 2d 43 22 2c 0a L-2.0",."CECILL-B",."CECILL-C",.
ae4c0 20 20 20 20 22 43 6c 41 72 74 69 73 74 69 63 22 2c 20 22 4d 49 54 2d 43 4d 55 22 2c 20 22 43 4e ...."ClArtistic",."MIT-CMU",."CN
ae4e0 52 49 2d 50 79 74 68 6f 6e 22 2c 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 2d 47 50 4c 2d 43 6f 6d RI-Python",."CNRI-Python-GPL-Com
ae500 70 61 74 69 62 6c 65 22 2c 0a 20 20 20 20 22 43 50 4f 4c 2d 31 2e 30 32 22 2c 20 22 43 44 44 4c patible",....."CPOL-1.02",."CDDL
ae520 2d 31 2e 30 22 2c 20 22 43 44 44 4c 2d 31 2e 31 22 2c 20 22 43 50 41 4c 2d 31 2e 30 22 2c 20 22 -1.0",."CDDL-1.1",."CPAL-1.0",."
ae540 43 50 4c 2d 31 2e 30 22 2c 20 22 43 41 54 4f 53 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 43 6f 6e CPL-1.0",."CATOSL-1.1",....."Con
ae560 64 6f 72 2d 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 dor-1.1",."CC-BY-1.0",."CC-BY-2.
ae580 30 22 2c 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 0a 20 20 0",."CC-BY-2.5",."CC-BY-3.0",...
ae5a0 20 20 22 43 43 2d 42 59 2d 34 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 31 2e 30 22 2c 20 22 .."CC-BY-4.0",."CC-BY-ND-1.0",."
ae5c0 43 43 2d 42 59 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 35 22 2c 20 22 CC-BY-ND-2.0",."CC-BY-ND-2.5",."
ae5e0 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 2d 34 2e 30 CC-BY-ND-3.0",....."CC-BY-ND-4.0
ae600 22 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 ",."CC-BY-NC-1.0",."CC-BY-NC-2.0
ae620 22 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 ",."CC-BY-NC-2.5",....."CC-BY-NC
ae640 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 34 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 -3.0",."CC-BY-NC-4.0",."CC-BY-NC
ae660 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 30 22 2c 0a 20 20 20 -ND-1.0",."CC-BY-NC-ND-2.0",....
ae680 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 ."CC-BY-NC-ND-2.5",."CC-BY-NC-ND
ae6a0 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 34 2e 30 22 2c 20 22 43 43 2d 42 59 -3.0",."CC-BY-NC-ND-4.0",."CC-BY
ae6c0 2d 4e 43 2d 53 41 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e -NC-SA-1.0",....."CC-BY-NC-SA-2.
ae6e0 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 0",."CC-BY-NC-SA-2.5",."CC-BY-NC
ae700 2d 53 41 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 34 2e 30 22 2c 0a 20 20 20 -SA-3.0",."CC-BY-NC-SA-4.0",....
ae720 20 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 30 22 2c ."CC-BY-SA-1.0",."CC-BY-SA-2.0",
ae740 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 33 2e 30 22 2c ."CC-BY-SA-2.5",."CC-BY-SA-3.0",
ae760 0a 20 20 20 20 22 43 43 2d 42 59 2d 53 41 2d 34 2e 30 22 2c 20 22 43 43 30 2d 31 2e 30 22 2c 20 ....."CC-BY-SA-4.0",."CC0-1.0",.
ae780 22 43 72 6f 73 73 77 6f 72 64 22 2c 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 2c 20 22 43 75 62 "Crossword",."CUA-OPL-1.0",."Cub
ae7a0 65 22 2c 20 22 44 2d 46 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 64 69 66 66 6d 61 72 6b 22 2c e",."D-FSL-1.0",....."diffmark",
ae7c0 20 22 57 54 46 50 4c 22 2c 20 22 44 4f 43 22 2c 20 22 44 6f 74 73 65 71 6e 22 2c 20 22 44 53 44 ."WTFPL",."DOC",."Dotseqn",."DSD
ae7e0 50 22 2c 20 22 64 76 69 70 64 66 6d 22 2c 20 22 45 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 65 P",."dvipdfm",."EPL-1.0",....."e
ae800 43 6f 73 2d 32 2e 30 22 2c 20 22 45 43 4c 2d 31 2e 30 22 2c 20 22 45 43 4c 2d 32 2e 30 22 2c 20 Cos-2.0",."ECL-1.0",."ECL-2.0",.
ae820 22 65 47 65 6e 69 78 22 2c 20 22 45 46 4c 2d 31 2e 30 22 2c 20 22 45 46 4c 2d 32 2e 30 22 2c 0a "eGenix",."EFL-1.0",."EFL-2.0",.
ae840 20 20 20 20 22 4d 49 54 2d 61 64 76 65 72 74 69 73 69 6e 67 22 2c 20 22 4d 49 54 2d 65 6e 6e 61 ...."MIT-advertising",."MIT-enna
ae860 22 2c 20 22 45 6e 74 65 73 73 61 22 2c 20 22 45 72 6c 50 4c 2d 31 2e 31 22 2c 20 22 45 55 44 61 ",."Entessa",."ErlPL-1.1",."EUDa
ae880 74 61 67 72 69 64 22 2c 0a 20 20 20 20 22 45 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d 31 tagrid",....."EUPL-1.0",."EUPL-1
ae8a0 2e 31 22 2c 20 22 45 75 72 6f 73 79 6d 22 2c 20 22 46 61 69 72 22 2c 20 22 4d 49 54 2d 66 65 68 .1",."Eurosym",."Fair",."MIT-feh
ae8c0 22 2c 20 22 46 72 61 6d 65 77 6f 72 78 2d 31 2e 30 22 2c 0a 20 20 20 20 22 46 54 4c 22 2c 20 22 ",."Frameworx-1.0",....."FTL",."
ae8e0 46 53 46 55 4c 22 2c 20 22 46 53 46 55 4c 4c 52 22 2c 20 22 47 69 66 74 77 61 72 65 22 2c 20 22 FSFUL",."FSFULLR",."Giftware",."
ae900 47 4c 32 50 53 22 2c 20 22 47 6c 75 6c 78 65 22 2c 20 22 41 47 50 4c 2d 33 2e 30 22 2c 0a 20 20 GL2PS",."Glulxe",."AGPL-3.0",...
ae920 20 20 22 47 46 44 4c 2d 31 2e 31 22 2c 20 22 47 46 44 4c 2d 31 2e 32 22 2c 20 22 47 46 44 4c 2d .."GFDL-1.1",."GFDL-1.2",."GFDL-
ae940 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 20 22 47 50 1.3",."GPL-1.0",."GPL-1.0+",."GP
ae960 4c 2d 32 2e 30 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2b 22 2c 20 22 47 50 4c 2d 32 2e 30 L-2.0",....."GPL-2.0+",."GPL-2.0
ae980 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 20 20 20 22 -with-autoconf-exception",....."
ae9a0 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 GPL-2.0-with-bison-exception",."
ae9c0 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 74 69 6f 6e GPL-2.0-with-classpath-exception
ae9e0 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 63 65 70 74 ",....."GPL-2.0-with-font-except
aea00 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 70 74 69 6f ion",."GPL-2.0-with-GCC-exceptio
aea20 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 22 2c 20 22 n",."GPL-3.0",....."GPL-3.0+",."
aea40 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 69 6f 6e 22 GPL-3.0-with-autoconf-exception"
aea60 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 6e 22 2c 0a ,."GPL-3.0-with-GCC-exception",.
aea80 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 20 22 4c 47 ...."LGPL-2.1",."LGPL-2.1+",."LG
aeaa0 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 32 2e 30 22 PL-3.0",."LGPL-3.0+",."LGPL-2.0"
aeac0 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 0a 20 20 20 20 22 67 6e 75 70 6c 6f 74 22 2c 20 22 67 ,."LGPL-2.0+",....."gnuplot",."g
aeae0 53 4f 41 50 2d 31 2e 33 62 22 2c 20 22 48 61 73 6b 65 6c 6c 52 65 70 6f 72 74 22 2c 20 22 48 50 SOAP-1.3b",."HaskellReport",."HP
aeb00 4e 44 22 2c 20 22 49 42 4d 2d 70 69 62 73 22 2c 20 22 49 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 ND",."IBM-pibs",."IPL-1.0",.....
aeb20 22 49 6d 61 67 65 4d 61 67 69 63 6b 22 2c 20 22 69 4d 61 74 69 78 22 2c 20 22 49 6d 6c 69 62 32 "ImageMagick",."iMatix",."Imlib2
aeb40 22 2c 20 22 49 4a 47 22 2c 20 22 49 6e 74 65 6c 2d 41 43 50 49 22 2c 20 22 49 6e 74 65 6c 22 2c ",."IJG",."Intel-ACPI",."Intel",
aeb60 20 22 49 50 41 22 2c 0a 20 20 20 20 22 49 53 43 22 2c 20 22 4a 61 73 50 65 72 2d 32 2e 30 22 2c ."IPA",....."ISC",."JasPer-2.0",
aeb80 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 2e 30 22 ."JSON",."LPPL-1.3a",."LPPL-1.0"
aeba0 2c 20 22 4c 50 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 4c 50 50 4c 2d 31 2e 32 22 2c 20 22 4c ,."LPPL-1.1",....."LPPL-1.2",."L
aebc0 50 50 4c 2d 31 2e 33 63 22 2c 20 22 4c 61 74 65 78 32 65 22 2c 20 22 42 53 44 2d 33 2d 43 6c 61 PPL-1.3c",."Latex2e",."BSD-3-Cla
aebe0 75 73 65 2d 4c 42 4e 4c 22 2c 20 22 4c 65 70 74 6f 6e 69 63 61 22 2c 0a 20 20 20 20 22 4c 69 62 use-LBNL",."Leptonica",....."Lib
aec00 70 6e 67 22 2c 20 22 6c 69 62 74 69 66 66 22 2c 20 22 4c 50 4c 2d 31 2e 30 32 22 2c 20 22 4c 50 png",."libtiff",."LPL-1.02",."LP
aec20 4c 2d 31 2e 30 22 2c 20 22 4d 61 6b 65 49 6e 64 65 78 22 2c 20 22 4d 54 4c 4c 22 2c 20 22 4d 53 L-1.0",."MakeIndex",."MTLL",."MS
aec40 2d 50 4c 22 2c 0a 20 20 20 20 22 4d 53 2d 52 4c 22 2c 20 22 4d 69 72 4f 53 22 2c 20 22 4d 49 54 -PL",....."MS-RL",."MirOS",."MIT
aec60 4e 46 41 22 2c 20 22 4d 49 54 22 2c 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c 20 22 4d 50 4c 2d 31 2e NFA",."MIT",."Motosoto",."MPL-1.
aec80 30 22 2c 20 22 4d 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 4d 50 4c 2d 32 2e 30 22 2c 20 22 4d 0",."MPL-1.1",....."MPL-2.0",."M
aeca0 50 4c 2d 32 2e 30 2d 6e 6f 2d 63 6f 70 79 6c 65 66 74 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 PL-2.0-no-copyleft-exception",."
aecc0 6d 70 69 63 68 32 22 2c 20 22 4d 75 6c 74 69 63 73 22 2c 20 22 4d 75 70 22 2c 0a 20 20 20 20 22 mpich2",."Multics",."Mup",....."
aece0 4e 41 53 41 2d 31 2e 33 22 2c 20 22 4e 61 75 6d 65 6e 22 2c 20 22 4e 42 50 4c 2d 31 2e 30 22 2c NASA-1.3",."Naumen",."NBPL-1.0",
aed00 20 22 4e 65 74 43 44 46 22 2c 20 22 4e 47 50 4c 22 2c 20 22 4e 4f 53 4c 22 2c 20 22 4e 50 4c 2d ."NetCDF",."NGPL",."NOSL",."NPL-
aed20 31 2e 30 22 2c 0a 20 20 20 20 22 4e 50 4c 2d 31 2e 31 22 2c 20 22 4e 65 77 73 6c 65 74 72 22 2c 1.0",....."NPL-1.1",."Newsletr",
aed40 20 22 4e 4c 50 4c 22 2c 20 22 4e 6f 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 20 22 ."NLPL",."Nokia",."NPOSL-3.0",."
aed60 4e 6f 77 65 62 22 2c 20 22 4e 52 4c 22 2c 20 22 4e 54 50 22 2c 0a 20 20 20 20 22 4e 75 6e 69 74 Noweb",."NRL",."NTP",....."Nunit
aed80 22 2c 20 22 4f 43 4c 43 2d 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 20 22 50 44 44 4c ",."OCLC-2.0",."ODbL-1.0",."PDDL
aeda0 2d 31 2e 30 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 -1.0",."OGTSL",."OLDAP-2.2.2",..
aedc0 20 20 20 22 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 ..."OLDAP-1.1",."OLDAP-1.2",."OL
aede0 44 41 50 2d 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 DAP-1.3",."OLDAP-1.4",."OLDAP-2.
aee00 30 22 2c 0a 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 0",....."OLDAP-2.0.1",."OLDAP-2.
aee20 31 22 2c 20 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 1",."OLDAP-2.2",."OLDAP-2.2.1",.
aee40 22 4f 4c 44 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 "OLDAP-2.3",....."OLDAP-2.4",."O
aee60 4c 44 41 50 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 LDAP-2.5",."OLDAP-2.6",."OLDAP-2
aee80 2e 37 22 2c 20 22 4f 4d 4c 22 2c 20 22 4f 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 4f 53 4c 2d .7",."OML",."OPL-1.0",....."OSL-
aeea0 31 2e 30 22 2c 20 22 4f 53 4c 2d 31 2e 31 22 2c 20 22 4f 53 4c 2d 32 2e 30 22 2c 20 22 4f 53 4c 1.0",."OSL-1.1",."OSL-2.0",."OSL
aeec0 2d 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 38 22 2c 0a 20 -2.1",."OSL-3.0",."OLDAP-2.8",..
aeee0 20 20 20 22 4f 70 65 6e 53 53 4c 22 2c 20 22 50 48 50 2d 33 2e 30 22 2c 20 22 50 48 50 2d 33 2e ..."OpenSSL",."PHP-3.0",."PHP-3.
aef00 30 31 22 2c 20 22 50 6c 65 78 75 73 22 2c 20 22 50 6f 73 74 67 72 65 53 51 4c 22 2c 20 22 70 73 01",."Plexus",."PostgreSQL",."ps
aef20 66 72 61 67 22 2c 0a 20 20 20 20 22 70 73 75 74 69 6c 73 22 2c 20 22 50 79 74 68 6f 6e 2d 32 2e frag",....."psutils",."Python-2.
aef40 30 22 2c 20 22 51 50 4c 2d 31 2e 30 22 2c 20 22 51 68 75 6c 6c 22 2c 20 22 52 64 69 73 63 22 2c 0",."QPL-1.0",."Qhull",."Rdisc",
aef60 20 22 52 50 53 4c 2d 31 2e 30 22 2c 20 22 52 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 52 50 4c ."RPSL-1.0",."RPL-1.1",....."RPL
aef80 2d 31 2e 35 22 2c 20 22 52 48 65 43 6f 73 2d 31 2e 31 22 2c 20 22 52 53 43 50 4c 22 2c 20 22 52 -1.5",."RHeCos-1.1",."RSCPL",."R
aefa0 75 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 20 22 53 61 78 70 61 74 68 22 2c 20 22 53 43 45 41 uby",."SAX-PD",."Saxpath",."SCEA
aefc0 22 2c 0a 20 20 20 20 22 53 57 4c 22 2c 20 22 53 47 49 2d 42 2d 31 2e 30 22 2c 20 22 53 47 49 2d ",....."SWL",."SGI-B-1.0",."SGI-
aefe0 42 2d 31 2e 31 22 2c 20 22 53 47 49 2d 42 2d 32 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 30 22 2c 20 B-1.1",."SGI-B-2.0",."OFL-1.0",.
af000 22 4f 46 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 53 69 6d 50 4c 2d 32 2e 30 22 2c 20 22 53 6c 65 "OFL-1.1",....."SimPL-2.0",."Sle
af020 65 70 79 63 61 74 22 2c 20 22 53 4e 49 41 22 2c 20 22 53 4d 4c 4e 4a 22 2c 20 22 53 74 61 6e 64 epycat",."SNIA",."SMLNJ",."Stand
af040 61 72 64 4d 4c 2d 4e 4a 22 2c 0a 20 20 20 20 22 53 75 67 61 72 43 52 4d 2d 31 2e 31 2e 33 22 2c ardML-NJ",....."SugarCRM-1.1.3",
af060 20 22 53 49 53 53 4c 22 2c 20 22 53 49 53 53 4c 2d 31 2e 32 22 2c 20 22 53 50 4c 2d 31 2e 30 22 ."SISSL",."SISSL-1.2",."SPL-1.0"
af080 2c 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 2c 20 22 54 43 4c 22 2c 0a 20 20 20 20 22 55 6e 6c 69 ,."Watcom-1.0",."TCL",....."Unli
af0a0 63 65 6e 73 65 22 2c 20 22 54 4d 61 74 65 22 2c 20 22 54 4f 52 51 55 45 2d 31 2e 31 22 2c 20 22 cense",."TMate",."TORQUE-1.1",."
af0c0 54 4f 53 4c 22 2c 20 22 55 6e 69 63 6f 64 65 2d 54 4f 55 22 2c 20 22 4e 43 53 41 22 2c 20 22 56 TOSL",."Unicode-TOU",."NCSA",."V
af0e0 69 6d 22 2c 0a 20 20 20 20 22 56 4f 53 54 52 4f 4d 22 2c 20 22 56 53 4c 2d 31 2e 30 22 2c 20 22 im",....."VOSTROM",."VSL-1.0",."
af100 57 33 43 22 2c 20 22 57 73 75 69 70 61 22 2c 20 22 57 58 77 69 6e 64 6f 77 73 22 2c 20 22 58 6e W3C",."Wsuipa",."WXwindows",."Xn
af120 65 74 22 2c 20 22 58 31 31 22 2c 20 22 58 65 72 6f 78 22 2c 0a 20 20 20 20 22 58 46 72 65 65 38 et",."X11",."Xerox",....."XFree8
af140 36 2d 31 2e 31 22 2c 20 22 78 69 6e 65 74 64 22 2c 20 22 78 70 70 22 2c 20 22 58 53 6b 61 74 22 6-1.1",."xinetd",."xpp",."XSkat"
af160 2c 20 22 59 50 4c 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 20 22 5a 65 64 22 2c 0a 20 ,."YPL-1.0",."YPL-1.1",."Zed",..
af180 20 20 20 22 5a 65 6e 64 2d 32 2e 30 22 2c 20 22 5a 69 6d 62 72 61 2d 31 2e 33 22 2c 20 22 5a 6c ..."Zend-2.0",."Zimbra-1.3",."Zl
af1a0 69 62 22 2c 20 22 7a 6c 69 62 2d 61 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 22 2c 20 22 5a 50 ib",."zlib-acknowledgement",."ZP
af1c0 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 5a 50 4c 2d 32 2e 30 22 2c 20 22 5a 50 4c 2d 32 2e 31 22 L-1.1",....."ZPL-2.0",."ZPL-2.1"
af1e0 0a 5d 0a 7b 0a 20 20 20 20 22 24 73 63 68 65 6d 61 22 3a 20 22 68 74 74 70 3a 2f 2f 6a 73 6f 6e .].{....."$schema":."http://json
af200 2d 73 63 68 65 6d 61 2e 6f 72 67 2f 64 72 61 66 74 2d 30 34 2f 73 63 68 65 6d 61 23 22 2c 0a 20 -schema.org/draft-04/schema#",..
af220 20 20 20 22 6e 61 6d 65 22 3a 20 22 50 61 63 6b 61 67 65 22 2c 0a 20 20 20 20 22 74 79 70 65 22 ..."name":."Package",....."type"
af240 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 :."object",....."additionalPrope
af260 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 5b rties":.false,....."required":.[
af280 20 22 6e 61 6d 65 22 2c 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 20 5d 2c 0a 20 20 20 20 22 70 ."name",."description".],....."p
af2a0 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a roperties":.{........."name":.{.
af2c0 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",...
af2e0 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 63 6b 61 67 .........."description":."Packag
af300 65 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 76 65 6e 64 6f 72 2d 6e 61 6d 65 2f 27 e.name,.including.'vendor-name/'
af320 20 70 72 65 66 69 78 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 79 .prefix.".........},........."ty
af340 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 70 74 69 6f 6e 22 pe":.{............."description"
af360 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 69 62 72 61 72 79 :."Package.type,.either.'library
af380 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 6d 70 6f 73 65 72 '.for.common.packages,.'composer
af3a0 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 61 70 61 63 6b 61 -plugin'.for.plugins,.'metapacka
af3c0 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 20 61 20 63 75 73 ge'.for.empty.packages,.or.a.cus
af3e0 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 6e 65 64 20 62 79 tom.type.([a-z0-9-]+).defined.by
af400 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 6b 61 67 65 20 61 .whatever.project.this.package.a
af420 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 74 79 70 65 22 3a pplies.to.",............."type":
af440 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 20 20 20 22 74 61 ."string".........},........."ta
af460 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 64 65 73 63 72 69 rget-dir":.{............."descri
af480 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 73 20 74 68 65 20 ption":."DEPRECATED:.Forces.the.
af4a0 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 74 6f 20 74 68 65 package.to.be.installed.into.the
af4c0 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 54 68 69 73 20 69 .given.subdirectory.path..This.i
af4e0 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 2d 30 20 70 61 63 s.used.for.autoloading.PSR-0.pac
af500 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 74 68 65 69 72 20 kages.that.do.not.contain.their.
af520 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 73 68 65 73 20 66 full.path..Use.forward.slashes.f
af540 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 69 6c 69 74 79 2e or.cross-platform.compatibility.
af560 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 72 69 6e 67 22 0a ",............."type":."string".
af580 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 70 74 69 6f 6e 22 ........},........."description"
af5a0 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"
af5c0 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 53 68 ,............."description":."Sh
af5e0 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 0a 20 20 20 20 20 20 ort.package.description.".......
af600 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 20 20 20 20 ..},........."keywords":.{......
af620 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",.........
af640 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 20 20 20 22 ...."items":.{................."
af660 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 20 type":."string",................
af680 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 72 64 20 74 ."description":."A.tag/keyword.t
af6a0 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 22 0a 20 20 hat.this.package.relates.to."...
af6c0 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 22 ..........}.........},........."
af6e0 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 70 65 22 3a homepage":.{............."type":
af700 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ."string",............."descript
af720 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 70 72 6f 6a ion":."Homepage.URL.for.the.proj
af740 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 20 22 75 72 ect.",............."format":."ur
af760 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 6f 6e 22 3a i".........},........."version":
af780 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 2c .{............."type":."string",
af7a0 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 63 ............."description":."Pac
af7c0 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 63 6f 6d 70 kage.version,.see.http://getcomp
af7e0 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 72 73 69 6f oser.org/doc/04-schema.md#versio
af800 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 65 6d 65 73 n.for.more.info.on.valid.schemes
af820 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 3a 20 7b 0a .".........},........."time":.{.
af840 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",...
af860 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 63 6b 61 67 .........."description":."Packag
af880 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 44 44 27 2c e.release.date,.in.'YYYY-MM-DD',
af8a0 20 27 59 59 59 59 2d 4d 4d 2d 44 44 20 48 48 3a 4d 4d 3a 53 53 27 20 6f 72 20 27 59 59 59 59 2d .'YYYY-MM-DD.HH:MM:SS'.or.'YYYY-
af8c0 4d 4d 2d 44 44 54 48 48 3a 4d 4d 3a 53 53 5a 27 20 66 6f 72 6d 61 74 2e 22 0a 20 20 20 20 20 20 MM-DDTHH:MM:SSZ'.format.".......
af8e0 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 7b 0a 20 20 20 20 20 20 ..},........."license":.{.......
af900 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 61 79 22 ......"type":.["string",."array"
af920 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c ],............."description":."L
af940 69 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c 69 63 65 icense.name..Or.an.array.of.lice
af960 6e 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 nse.names.".........},........."
af980 61 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 authors":.{............."type":.
af9a0 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f "array",............."descriptio
af9c0 6e 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e 74 72 69 n":."List.of.authors.that.contri
af9e0 62 75 74 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 20 74 79 buted.to.the.package..This.is.ty
afa00 70 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c 20 6e 6f pically.the.main.maintainers,.no
afa20 74 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 t.the.full.list.",............."
afa40 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 items":.{................."type"
afa60 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 :."object",................."add
afa80 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 itionalProperties":.false,......
afaa0 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 5b 20 22 6e 61 6d 65 22 5d ..........."required":.[."name"]
afac0 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 65 73 22 3a 20 ,................."properties":.
afae0 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 22 3a 20 7b 0a {....................."name":.{.
afb00 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 70 65 22 3a 20 ........................"type":.
afb20 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 20 20 "string",.......................
afb40 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 20 6f 66 20 74 .."description":."Full.name.of.t
afb60 68 65 20 61 75 74 68 6f 72 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 he.author.".....................
afb80 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 },....................."email":.
afba0 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 70 65 22 {........................."type"
afbc0 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",.....................
afbe0 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 ...."description":."Email.addres
afc00 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 s.of.the.author.",..............
afc20 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 20 20 ..........."format":."email"....
afc40 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 20 .................},.............
afc60 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ........"homepage":.{...........
afc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a .............."type":."string",.
afca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 ........................"descrip
afcc0 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 61 75 74 tion":."Homepage.URL.for.the.aut
afce0 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 hor.",........................."
afd00 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 format":."uri"..................
afd20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 6f 6c 65 22 ...},....................."role"
afd40 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 70 :.{........................."typ
afd60 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 20 e":."string",...................
afd80 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 6f 72 27 73 20 72 ......"description":."Author's.r
afda0 6f 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 ole.in.the.project."............
afdc0 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 20 20 .........}.................}....
afde0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 .........}.........},........."r
afe00 65 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 equire":.{............."type":."
afe20 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f object",............."descriptio
afe40 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e n":."This.is.a.hash.of.package.n
afe60 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e ame.(keys).and.version.constrain
afe80 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f ts.(values).that.are.required.to
afea0 20 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 .run.this.package.",............
afec0 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 20 ."additionalProperties":.true...
afee0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 3a 20 7b 0a 20 20 ......},........."replace":.{...
aff00 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 20 20 .........."type":."object",.....
aff20 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 73 20 ........"description":."This.is.
aff40 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 61 6e a.hash.of.package.name.(keys).an
aff60 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 20 74 d.version.constraints.(values).t
aff80 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 73 20 70 61 63 6b hat.can.be.replaced.by.this.pack
affa0 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 age.",............."additionalPr
affc0 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 20 20 operties":.true.........},......
affe0 20 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ..."conflict":.{............."ty
b0000 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 pe":."object",............."desc
b0020 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 ription":."This.is.a.hash.of.pac
b0040 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e kage.name.(keys).and.version.con
b0060 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e 66 6c 69 63 74 20 straints.(values).that.conflict.
b0080 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 with.this.package.",............
b00a0 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 20 ."additionalProperties":.true...
b00c0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 3a 20 7b 0a 20 20 ......},........."provide":.{...
b00e0 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 20 20 .........."type":."object",.....
b0100 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 73 20 ........"description":."This.is.
b0120 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 61 6e a.hash.of.package.name.(keys).an
b0140 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 20 74 d.version.constraints.(values).t
b0160 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 69 6e 20 61 64 64 hat.this.package.provides.in.add
b0180 69 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 6d 65 2e 22 2c 0a ition.to.this.package's.name.",.
b01a0 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 ............"additionalPropertie
b01c0 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 71 s":.true.........},........."req
b01e0 75 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a uire-dev":.{............."type":
b0200 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
b0220 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
b0240 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
b0260 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.
b0280 72 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 20 28 74 65 73 74 requires.for.developing.it.(test
b02a0 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 ing.tools.and.such).",..........
b02c0 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a ..."additionalProperties":.true.
b02e0 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 74 22 3a 20 7b 0a ........},........."suggest":.{.
b0300 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",...
b0320 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
b0340 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).
b0360 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 and.descriptions.(values).that.t
b0380 68 69 73 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 77 65 6c 6c 20 77 his.package.suggests.work.well.w
b03a0 69 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 73 74 65 64 20 74 ith.it.(this.will.be.suggested.t
b03c0 6f 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 29 2e o.the.user.during.installation).
b03e0 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 72 ",............."additionalProper
b0400 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 22 ties":.true.........},........."
b0420 63 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 config":.{............."type":."
b0440 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f object",............."descriptio
b0460 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c 0a 20 20 20 20 20 20 20 n":."Composer.options.",........
b0480 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 20 20 ....."properties":.{............
b04a0 20 20 20 20 20 22 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 22 3a 20 7b 0a 20 20 20 20 20 20 ....."process-timeout":.{.......
b04c0 20 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 .............."type":."integer",
b04e0 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
b0500 6e 22 3a 20 22 54 68 65 20 74 69 6d 65 6f 75 74 20 69 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 20 n":."The.timeout.in.seconds.for.
b0520 70 72 6f 63 65 73 73 20 65 78 65 63 75 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 process.executions,.defaults.to.
b0540 33 30 30 20 28 35 6d 69 6e 73 29 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 300.(5mins).".................},
b0560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 ................."use-include-pa
b0580 74 68 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 th":.{....................."type
b05a0 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ":."boolean",...................
b05c0 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 74 72 75 65 2c 20 74 68 65 20 43 .."description":."If.true,.the.C
b05e0 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 61 6c 73 6f 20 6c 6f 6f omposer.autoloader.will.also.loo
b0600 6b 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 20 74 68 65 20 50 48 50 20 69 6e 63 6c 75 64 65 k.for.classes.in.the.PHP.include
b0620 20 70 61 74 68 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 .path.".................},......
b0640 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 22 3a 20 ..........."preferred-install":.
b0660 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
b0680 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
b06a0 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 69 6e 73 74 61 6c 6c 20 6d 65 74 68 6f 64 20 43 cription":."The.install.method.C
b06c0 6f 6d 70 6f 73 65 72 20 77 69 6c 6c 20 70 72 65 66 65 72 20 74 6f 20 75 73 65 2c 20 64 65 66 61 omposer.will.prefer.to.use,.defa
b06e0 75 6c 74 73 20 74 6f 20 61 75 74 6f 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 73 ults.to.auto.and.can.be.any.of.s
b0700 6f 75 72 63 65 2c 20 64 69 73 74 20 6f 72 20 61 75 74 6f 2e 22 0a 20 20 20 20 20 20 20 20 20 20 ource,.dist.or.auto."...........
b0720 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 6e 6f 74 69 66 79 ......},................."notify
b0740 2d 6f 6e 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 -on-install":.{.................
b0760 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 20 20 ...."type":."boolean",..........
b0780 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 43 6f 6d 70 6f ..........."description":."Compo
b07a0 73 65 72 20 61 6c 6c 6f 77 73 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 6f 20 64 65 66 69 6e ser.allows.repositories.to.defin
b07c0 65 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 55 52 4c 2c 20 73 6f 20 74 68 61 74 20 74 68 e.a.notification.URL,.so.that.th
b07e0 65 79 20 67 65 74 20 6e 6f 74 69 66 69 65 64 20 77 68 65 6e 65 76 65 72 20 61 20 70 61 63 6b 61 ey.get.notified.whenever.a.packa
b0800 67 65 20 66 72 6f 6d 20 74 68 61 74 20 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20 69 6e 73 74 61 ge.from.that.repository.is.insta
b0820 6c 6c 65 64 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 lled..This.option.allows.you.to.
b0840 64 69 73 61 62 6c 65 20 74 68 61 74 20 62 65 68 61 76 69 6f 75 72 2c 20 64 65 66 61 75 6c 74 73 disable.that.behaviour,.defaults
b0860 20 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 .to.true.".................},...
b0880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 .............."github-protocols"
b08a0 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 :.{....................."type":.
b08c0 22 61 72 72 61 79 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 "array",....................."de
b08e0 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c 73 scription":."A.list.of.protocols
b0900 20 74 6f 20 75 73 65 20 66 6f 72 20 67 69 74 68 75 62 2e 63 6f 6d 20 63 6c 6f 6e 65 73 2c 20 69 .to.use.for.github.com.clones,.i
b0920 6e 20 70 72 69 6f 72 69 74 79 20 6f 72 64 65 72 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b 5c n.priority.order,.defaults.to.[\
b0940 22 67 69 74 5c 22 2c 20 5c 22 68 74 74 70 73 5c 22 2c 20 5c 22 68 74 74 70 5c 22 5d 2e 22 2c 0a "git\",.\"https\",.\"http\"].",.
b0960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 ...................."items":.{..
b0980 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 70 65 22 3a 20 22 ......................."type":."
b09a0 73 74 72 69 6e 67 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 string".....................}...
b09c0 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 ..............},................
b09e0 20 22 67 69 74 68 75 62 2d 6f 61 75 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ."github-oauth":.{..............
b0a00 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 20 ......."type":."object",........
b0a20 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 41 20 68 ............."description":."A.h
b0a40 61 73 68 20 6f 66 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 20 3d 3e 20 67 69 74 68 75 62 20 41 50 49 ash.of.domain.name.=>.github.API
b0a60 20 6f 61 75 74 68 20 74 6f 6b 65 6e 73 2c 20 74 79 70 69 63 61 6c 6c 79 20 7b 5c 22 67 69 74 68 .oauth.tokens,.typically.{\"gith
b0a80 75 62 2e 63 6f 6d 5c 22 3a 5c 22 3c 74 6f 6b 65 6e 3e 5c 22 7d 2e 22 2c 0a 20 20 20 20 20 20 20 ub.com\":\"<token>\"}.",........
b0aa0 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 74 69 ............."additionalProperti
b0ac0 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 20 20 es":.true.................},....
b0ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 74 74 70 2d 62 61 73 69 63 22 3a 20 7b 0a 20 20 20 ............."http-basic":.{....
b0b00 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 63 74 ................."type":."object
b0b20 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
b0b40 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 65 20 3d 3e 20 ion":."A.hash.of.domain.name.=>.
b0b60 7b 5c 22 75 73 65 72 6e 61 6d 65 5c 22 3a 20 5c 22 2e 2e 2e 5c 22 2c 20 5c 22 70 61 73 73 77 6f {\"username\":.\"...\",.\"passwo
b0b80 72 64 5c 22 3a 20 5c 22 2e 2e 2e 5c 22 7d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rd\":.\"...\"}.",...............
b0ba0 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 ......"additionalProperties":.tr
b0bc0 75 65 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 ue.................},...........
b0be0 20 20 20 20 20 20 22 73 74 6f 72 65 2d 61 75 74 68 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ......"store-auths":.{..........
b0c00 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
b0c20 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
b0c40 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 57 68 61 74 20 74 6f 20 64 6f 20 61 66 74 65 72 20 70 escription":."What.to.do.after.p
b0c60 72 6f 6d 70 74 69 6e 67 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2c 20 6f 6e 65 rompting.for.authentication,.one
b0c80 20 6f 66 3a 20 74 72 75 65 20 28 73 74 6f 72 65 29 2c 20 66 61 6c 73 65 20 28 64 6f 20 6e 6f 74 .of:.true.(store),.false.(do.not
b0ca0 20 73 74 6f 72 65 29 20 6f 72 20 5c 22 70 72 6f 6d 70 74 5c 22 20 28 61 73 6b 20 65 76 65 72 79 .store).or.\"prompt\".(ask.every
b0cc0 20 74 69 6d 65 29 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 70 72 6f 6d 70 74 2e 22 0a 20 20 20 .time),.defaults.to.prompt."....
b0ce0 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 .............},.................
b0d00 22 76 65 6e 64 6f 72 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "vendor-dir":.{.................
b0d20 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",...........
b0d40 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
b0d60 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 69 6e cation.where.all.packages.are.in
b0d80 73 74 61 6c 6c 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 5c 22 2e stalled,.defaults.to.\"vendor\".
b0da0 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 ".................},............
b0dc0 20 20 20 20 20 22 62 69 6e 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."bin-dir":.{...............
b0de0 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",.........
b0e00 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 20 ............"description":."The.
b0e20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 62 69 6e 61 72 69 65 73 20 61 72 65 20 location.where.all.binaries.are.
b0e40 6c 69 6e 6b 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 2f 62 69 6e linked,.defaults.to.\"vendor/bin
b0e60 5c 22 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 \".".................},.........
b0e80 20 20 20 20 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 ........"cache-dir":.{..........
b0ea0 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",....
b0ec0 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":.
b0ee0 22 54 68 65 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 "The.location.where.all.caches.a
b0f00 72 65 20 6c 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 re.located,.defaults.to.\"~/.com
b0f20 70 6f 73 65 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 poser/cache\".on.*nix.and.\"%LOC
b0f40 41 4c 41 50 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 ALAPPDATA%\\Composer\".on.window
b0f60 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 20 s.".................},..........
b0f80 20 20 20 20 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 ......."cache-files-dir":.{.....
b0fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 ................"type":."string"
b0fc0 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
b0fe0 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 66 69 6c 65 73 20 28 on":."The.location.where.files.(
b1000 7a 69 70 20 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 zip.downloads).are.cached,.defau
b1020 6c 74 73 20 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 lts.to.\"{$cache-dir}/files\".".
b1040 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 ................},..............
b1060 20 20 20 22 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 ..."cache-repo-dir":.{..........
b1080 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",....
b10a0 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":.
b10c0 22 54 68 65 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 "The.location.where.repo.(git/hg
b10e0 20 72 65 70 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 .repo.clones).are.cached,.defaul
b1100 74 73 20 74 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 ts.to.\"{$cache-dir}/repo\"."...
b1120 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 ..............},................
b1140 20 22 63 61 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 ."cache-vcs-dir":.{.............
b1160 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",.......
b1180 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
b11a0 65 20 6c 6f 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 e.location.where.vcs.infos.(git.
b11c0 63 6c 6f 6e 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 clones,.github.api.calls,.etc..w
b11e0 68 65 6e 20 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 hen.reading.vcs.repos).are.cache
b1200 64 2c 20 64 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 d,.defaults.to.\"{$cache-dir}/vc
b1220 73 5c 22 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 s\".".................},........
b1240 20 20 20 20 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 ........."cache-ttl":.{.........
b1260 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 20 ............"type":."integer",..
b1280 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"
b12a0 3a 20 22 54 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 :."The.default.cache.time-to-liv
b12c0 65 2c 20 64 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 e,.defaults.to.15552000.(6.month
b12e0 73 29 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 s).".................},.........
b1300 20 20 20 20 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 ........"cache-files-ttl":.{....
b1320 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 69 6e 74 65 67 65 ................."type":."intege
b1340 72 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 r",....................."descrip
b1360 74 69 6f 6e 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 tion":."The.cache.time-to-live.f
b1380 6f 72 20 66 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 or.files,.defaults.to.the.value.
b13a0 6f 66 20 63 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 of.cache-ttl.".................}
b13c0 2c 0a 20 20 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 ,................."cache-files-m
b13e0 61 78 73 69 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 axsize":.{....................."
b1400 74 79 70 65 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 type":.["string",."integer"],...
b1420 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":
b1440 20 22 54 68 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 ."The.cache.max.size.for.the.fil
b1460 65 73 20 63 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 es.cache,.defaults.to.\"300MiB\"
b1480 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 .".................},...........
b14a0 20 20 20 20 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 ......"discard-changes":.{......
b14c0 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 73 74 72 69 6e 67 22 ..............."type":.["string"
b14e0 2c 20 22 62 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 ,."boolean"],...................
b1500 20 20 22 64 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 .."description":."The.default.st
b1520 79 6c 65 20 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 yle.of.handling.dirty.updates,.d
b1540 65 66 61 75 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 efaults.to.false.and.can.be.any.
b1560 6f 66 20 74 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 of.true,.false.or.\"stash\"."...
b1580 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 ..............},................
b15a0 20 22 61 75 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 ."autoloader-suffix":.{.........
b15c0 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",...
b15e0 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":
b1600 20 22 4f 70 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 ."Optional.string.to.be.used.as.
b1620 61 20 73 75 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 a.suffix.for.the.generated.Compo
b1640 73 65 72 20 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 ser.autoloader..When.null.a.rand
b1660 6f 6d 20 6f 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 om.one.will.be.generated."......
b1680 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 6f ...........},................."o
b16a0 70 74 69 6d 69 7a 65 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 ptimize-autoloader":.{..........
b16c0 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 ..........."type":."boolean",...
b16e0 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":
b1700 20 22 41 6c 77 61 79 73 20 6f 70 74 69 6d 69 7a 65 20 77 68 65 6e 20 64 75 6d 70 69 6e 67 20 74 ."Always.optimize.when.dumping.t
b1720 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 he.autoloader.".................
b1740 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 6e 64 2d 61 75 74 6f },................."prepend-auto
b1760 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 20 20 20 20 20 20 22 loader":.{....................."
b1780 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 20 20 20 20 20 20 20 type":."boolean",...............
b17a0 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 66 61 6c 73 65 2c 20 ......"description":."If.false,.
b17c0 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 69 6c 6c 20 6e 6f 74 the.composer.autoloader.will.not
b17e0 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 20 61 75 74 6f 6c 6f .be.prepended.to.existing.autolo
b1800 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 0a 20 20 20 20 20 20 aders,.defaults.to.true.".......
b1820 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 6c ..........},................."cl
b1840 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 assmap-authoritative":.{........
b1860 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 65 61 6e 22 2c 0a ............."type":."boolean",.
b1880 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
b18a0 22 3a 20 22 49 66 20 74 72 75 65 2c 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f ":."If.true,.the.composer.autolo
b18c0 61 64 65 72 20 77 69 6c 6c 20 6e 6f 74 20 73 63 61 6e 20 74 68 65 20 66 69 6c 65 73 79 73 74 65 ader.will.not.scan.the.filesyste
b18e0 6d 20 66 6f 72 20 63 6c 61 73 73 65 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20 66 6f 75 6e 64 m.for.classes.that.are.not.found
b1900 20 69 6e 20 74 68 65 20 63 6c 61 73 73 20 6d 61 70 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 66 .in.the.class.map,.defaults.to.f
b1920 61 6c 73 65 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 alse.".................},.......
b1940 20 20 20 20 20 20 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 .........."github-domains":.{...
b1960 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
b1980 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
b19a0 69 6f 6e 22 3a 20 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 ion":."A.list.of.domains.to.use.
b19c0 69 6e 20 67 69 74 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 in.github.mode..This.is.used.for
b19e0 20 47 69 74 48 75 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 .GitHub.Enterprise.setups,.defau
b1a00 6c 74 73 20 74 6f 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 lts.to.[\"github.com\"].",......
b1a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 ..............."items":.{.......
b1a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e .................."type":."strin
b1a60 67 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 20 g".....................}........
b1a80 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 74 .........},................."git
b1aa0 68 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 hub-expose-hostname":.{.........
b1ac0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 ............"type":."boolean",..
b1ae0 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"
b1b00 3a 20 22 44 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 20 49 66 20 73 65 74 20 74 6f 20 66 :."Defaults.to.true..If.set.to.f
b1b20 61 6c 73 65 2c 20 74 68 65 20 4f 41 75 74 68 20 74 6f 6b 65 6e 73 20 63 72 65 61 74 65 64 20 74 alse,.the.OAuth.tokens.created.t
b1b40 6f 20 61 63 63 65 73 73 20 74 68 65 20 67 69 74 68 75 62 20 41 50 49 20 77 69 6c 6c 20 68 61 76 o.access.the.github.API.will.hav
b1b60 65 20 61 20 64 61 74 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 6d 61 63 68 69 6e 65 20 e.a.date.instead.of.the.machine.
b1b80 68 6f 73 74 6e 61 6d 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 hostname.".................}....
b1ba0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 65 .........}.........},........."e
b1bc0 78 74 72 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f xtra":.{............."type":.["o
b1be0 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 bject",."array"],............."d
b1c00 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 72 62 69 74 72 61 72 79 20 65 78 74 72 61 20 64 61 escription":."Arbitrary.extra.da
b1c20 74 61 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 62 79 20 70 6c 75 67 69 6e 73 2c 20 ta.that.can.be.used.by.plugins,.
b1c40 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 70 61 63 6b 61 67 65 20 6f 66 20 74 79 70 65 20 63 6f 6d for.example,.package.of.type.com
b1c60 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 6d 61 79 20 68 61 76 65 20 61 20 27 63 6c 61 73 73 27 20 poser-plugin.may.have.a.'class'.
b1c80 6b 65 79 20 64 65 66 69 6e 69 6e 67 20 61 6e 20 69 6e 73 74 61 6c 6c 65 72 20 63 6c 61 73 73 20 key.defining.an.installer.class.
b1ca0 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 74 69 6f 6e 61 6c 50 name.",............."additionalP
b1cc0 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 20 roperties":.true.........},.....
b1ce0 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 ...."autoload":.{............."t
b1d00 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 ype":."object",............."des
b1d20 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 68 6f 77 20 74 cription":."Description.of.how.t
b1d40 68 65 20 70 61 63 6b 61 67 65 20 63 61 6e 20 62 65 20 61 75 74 6f 6c 6f 61 64 65 64 2e 22 2c 0a he.package.can.be.autoloaded.",.
b1d60 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 ............"properties":.{.....
b1d80 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 30 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ............"psr-0":.{..........
b1da0 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 20 ..........."type":."object",....
b1dc0 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":.
b1de0 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b "This.is.a.hash.of.namespaces.(k
b1e00 65 79 73 29 20 61 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 eys).and.the.directories.they.ca
b1e20 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 n.be.found.into.(values,.can.be.
b1e40 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 arrays.of.paths).by.the.autoload
b1e60 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 er.",....................."addit
b1e80 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 20 ionalProperties":.true..........
b1ea0 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 73 72 2d 34 .......},................."psr-4
b1ec0 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 3a ":.{....................."type":
b1ee0 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ."object",....................."
b1f00 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 description":."This.is.a.hash.of
b1f20 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 50 53 52 2d 34 .namespaces.(keys).and.the.PSR-4
b1f40 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 6d 61 70 20 74 6f 20 28 76 61 .directories.they.can.map.to.(va
b1f60 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 lues,.can.be.arrays.of.paths).by
b1f80 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .the.autoloader.",..............
b1fa0 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 ......."additionalProperties":.t
b1fc0 72 75 65 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 rue.................},..........
b1fe0 20 20 20 20 20 20 20 22 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ......."classmap":.{............
b2000 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 20 20 ........."type":."array",.......
b2020 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
b2040 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 is.is.an.array.of.directories.th
b2060 61 74 20 63 6f 6e 74 61 69 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 at.contain.classes.to.be.include
b2080 64 20 69 6e 20 74 68 65 20 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 d.in.the.class-map.generation.pr
b20a0 6f 63 65 73 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 ocess.".................},......
b20c0 20 20 20 20 20 20 20 20 20 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ..........."files":.{...........
b20e0 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 20 .........."type":."array",......
b2100 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
b2120 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 his.is.an.array.of.files.that.ar
b2140 65 20 61 6c 77 61 79 73 20 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 e.always.required.on.every.reque
b2160 73 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 st.".................}..........
b2180 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 ...}.........},........."autoloa
b21a0 64 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f d-dev":.{............."type":."o
b21c0 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e bject",............."description
b21e0 22 3a 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 75 ":."Description.of.additional.au
b2200 74 6f 6c 6f 61 64 20 72 75 6c 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 70 75 72 toload.rules.for.development.pur
b2220 70 6f 73 65 20 28 65 67 2e 20 61 20 74 65 73 74 20 73 75 69 74 65 29 2e 22 2c 0a 20 20 20 20 20 pose.(eg..a.test.suite).",......
b2240 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":.{..........
b2260 20 20 20 20 20 20 20 22 70 73 72 2d 30 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."psr-0":.{...............
b2280 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",.........
b22a0 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 ............"description":."This
b22c0 20 69 73 20 61 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 .is.a.hash.of.namespaces.(keys).
b22e0 61 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 62 65 20 and.the.directories.they.can.be.
b2300 66 6f 75 6e 64 20 69 6e 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 found.into.(values,.can.be.array
b2320 73 20 6f 66 20 70 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 s.of.paths).by.the.autoloader.",
b2340 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 69 74 69 6f 6e 61 6c ....................."additional
b2360 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 20 20 20 20 20 20 Properties":.true...............
b2380 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 34 22 3a 20 7b 0a ..},................."psr-4":.{.
b23a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a ...................."type":."obj
b23c0 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ect",....................."descr
b23e0 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 iption":."This.is.a.hash.of.name
b2400 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 50 53 52 2d 34 20 64 69 72 65 spaces.(keys).and.the.PSR-4.dire
b2420 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 6d 61 70 20 74 6f 20 28 76 61 6c 75 65 73 2c ctories.they.can.map.to.(values,
b2440 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.
b2460 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.",...................
b2480 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..
b24a0 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 ...............},...............
b24c0 20 20 22 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."classmap":.{.................
b24e0 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",............
b2500 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 73 ........."description":."This.is
b2520 20 61 6e 20 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 63 6f .an.array.of.directories.that.co
b2540 6e 74 61 69 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 ntain.classes.to.be.included.in.
b2560 74 68 65 20 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 the.class-map.generation.process
b2580 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 .".................},...........
b25a0 20 20 20 20 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"files":.{................
b25c0 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ....."type":."array",...........
b25e0 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
b2600 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 61 6c 77 s.an.array.of.files.that.are.alw
b2620 61 79 73 20 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 73 74 2e 22 0a ays.required.on.every.request.".
b2640 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 7d 0a ................}.............}.
b2660 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 72 63 68 69 76 65 22 3a 20 7b 0a ........},........."archive":.{.
b2680 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 22 5d 2c 0a ............"type":.["object"],.
b26a0 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 74 69 ............"description":."Opti
b26c0 6f 6e 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 70 61 63 6b 61 67 65 20 61 72 63 68 69 76 65 ons.for.creating.package.archive
b26e0 73 20 66 6f 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 s.for.distribution.",...........
b2700 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."properties":.{...............
b2720 20 20 22 65 78 63 6c 75 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."exclude":.{..................
b2740 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 20 ..."type":."array",.............
b2760 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 73 74 20 6f ........"description":."A.list.o
b2780 66 20 70 61 74 74 65 72 6e 73 20 66 6f 72 20 70 61 74 68 73 20 74 6f 20 65 78 63 6c 75 64 65 20 f.patterns.for.paths.to.exclude.
b27a0 6f 72 20 69 6e 63 6c 75 64 65 20 69 66 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 61 6e 20 65 or.include.if.prefixed.with.an.e
b27c0 78 63 6c 61 6d 61 74 69 6f 6e 20 6d 61 72 6b 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xclamation.mark."...............
b27e0 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 20 ..}.............}.........},....
b2800 20 20 20 20 20 22 72 65 70 6f 73 69 74 6f 72 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ....."repositories":.{..........
b2820 20 20 20 22 74 79 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 ..."type":.["object",."array"],.
b2840 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 73 65 ............"description":."A.se
b2860 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 68 65 t.of.additional.repositories.whe
b2880 72 65 20 70 61 63 6b 61 67 65 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 2e 22 2c 0a 20 20 20 20 re.packages.can.be.found.",.....
b28a0 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":.
b28c0 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6d 69 6e 69 6d 75 6d true.........},........."minimum
b28e0 2d 73 74 61 62 69 6c 69 74 79 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 -stability":.{............."type
b2900 22 3a 20 5b 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ":.["string"],............."desc
b2920 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 ription":."The.minimum.stability
b2940 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 6d 75 73 74 20 68 61 76 65 20 74 6f 20 62 65 20 69 6e .the.packages.must.have.to.be.in
b2960 73 74 61 6c 6c 2d 61 62 6c 65 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a stall-able..Possible.values.are:
b2980 20 64 65 76 2c 20 61 6c 70 68 61 2c 20 62 65 74 61 2c 20 52 43 2c 20 73 74 61 62 6c 65 2e 22 2c .dev,.alpha,.beta,.RC,.stable.",
b29a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 61 74 74 65 72 6e 22 3a 20 22 5e 64 65 76 7c 61 6c ............."pattern":."^dev|al
b29c0 70 68 61 7c 62 65 74 61 7c 72 63 7c 52 43 7c 73 74 61 62 6c 65 24 22 0a 20 20 20 20 20 20 20 20 pha|beta|rc|RC|stable$".........
b29e0 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 65 66 65 72 2d 73 74 61 62 6c 65 22 3a 20 7b 0a 20 20 },........."prefer-stable":.{...
b2a00 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 .........."type":.["boolean"],..
b2a20 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 73 65 ..........."description":."If.se
b2a40 74 20 74 6f 20 74 72 75 65 2c 20 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 77 69 6c 6c 20 t.to.true,.stable.packages.will.
b2a60 62 65 20 70 72 65 66 65 72 65 64 20 74 6f 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 77 68 65 6e be.prefered.to.dev.packages.when
b2a80 20 70 6f 73 73 69 62 6c 65 2c 20 65 76 65 6e 20 69 66 20 74 68 65 20 6d 69 6e 69 6d 75 6d 2d 73 .possible,.even.if.the.minimum-s
b2aa0 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 73 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 tability.allows.unstable.package
b2ac0 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 62 69 6e 22 3a 20 7b 0a s.".........},........."bin":.{.
b2ae0 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 5d 2c 0a 20 ............"type":.["array"],..
b2b00 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 73 65 74 ..........."description":."A.set
b2b20 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 .of.files.that.should.be.treated
b2b40 20 61 73 20 62 69 6e 61 72 69 65 73 20 61 6e 64 20 73 79 6d 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 .as.binaries.and.symlinked.into.
b2b60 62 69 6e 2d 64 69 72 20 28 66 72 6f 6d 20 63 6f 6e 66 69 67 29 2e 22 2c 0a 20 20 20 20 20 20 20 bin-dir.(from.config).",........
b2b80 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 20 20 20 ....."items":.{.................
b2ba0 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 20 20 20 7d 0a 20 "type":."string".............}..
b2bc0 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 69 6e 63 6c 75 64 65 2d 70 61 74 68 22 .......},........."include-path"
b2be0 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 61 72 72 61 79 22 :.{............."type":.["array"
b2c00 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 ],............."description":."D
b2c20 45 50 52 45 43 41 54 45 44 3a 20 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 EPRECATED:.A.list.of.directories
b2c40 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 67 65 74 20 61 64 64 65 64 20 74 6f 20 50 48 50 27 73 .which.should.get.added.to.PHP's
b2c60 20 69 6e 63 6c 75 64 65 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 70 72 65 73 .include.path..This.is.only.pres
b2c80 65 6e 74 20 74 6f 20 73 75 70 70 6f 72 74 20 6c 65 67 61 63 79 20 70 72 6f 6a 65 63 74 73 2c 20 ent.to.support.legacy.projects,.
b2ca0 61 6e 64 20 61 6c 6c 20 6e 65 77 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 70 72 65 66 65 72 61 62 and.all.new.code.should.preferab
b2cc0 6c 79 20 75 73 65 20 61 75 74 6f 6c 6f 61 64 69 6e 67 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ly.use.autoloading.",...........
b2ce0 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 .."items":.{................."ty
b2d00 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 pe":."string".............}.....
b2d20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 63 72 69 70 74 73 22 3a 20 7b 0a 20 20 20 20 ....},........."scripts":.{.....
b2d40 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 ........"type":.["object"],.....
b2d60 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 63 72 69 70 74 73 20 ........"description":."Scripts.
b2d80 6c 69 73 74 65 6e 65 72 73 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 listeners.that.will.be.executed.
b2da0 62 65 66 6f 72 65 2f 61 66 74 65 72 20 73 6f 6d 65 20 65 76 65 6e 74 73 2e 22 2c 0a 20 20 20 20 before/after.some.events.",.....
b2dc0 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ........"properties":.{.........
b2de0 20 20 20 20 20 20 20 20 22 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 ........"pre-install-cmd":.{....
b2e00 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
b2e20 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"],...................
b2e40 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 .."description":."Occurs.before.
b2e60 74 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c the.install.command.is.executed,
b2e80 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 .contains.one.or.more.Class::met
b2ea0 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 64 73 2e hod.callables.or.shell.commands.
b2ec0 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 ".................},............
b2ee0 20 20 20 20 20 22 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 ....."post-install-cmd":.{......
b2f00 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",
b2f20 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"],.....................
b2f40 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 68 65 "description":."Occurs.after.the
b2f60 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f .install.command.is.executed,.co
b2f80 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 64 ntains.one.or.more.Class::method
b2fa0 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 20 .callables.or.shell.commands."..
b2fc0 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 ...............},...............
b2fe0 20 20 22 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .."pre-update-cmd":.{...........
b3000 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 74 72 .........."type":.["array",."str
b3020 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 73 63 ing"],....................."desc
b3040 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 75 70 64 ription":."Occurs.before.the.upd
b3060 61 74 65 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 ate.command.is.executed,.contain
b3080 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
b30a0 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.".......
b30c0 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 6f ..........},................."po
b30e0 73 74 2d 75 70 64 61 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 st-update-cmd":.{...............
b3100 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"
b3120 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
b3140 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 20 63 ion":."Occurs.after.the.update.c
b3160 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 6e 65 ommand.is.executed,.contains.one
b3180 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 73 .or.more.Class::method.callables
b31a0 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 20 .or.shell.commands."............
b31c0 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 2d 73 74 61 .....},................."pre-sta
b31e0 74 75 73 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 tus-cmd":.{.....................
b3200 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 0a 20 20 20 "type":.["array",."string"],....
b3220 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":.
b3240 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e "Occurs.before.the.status.comman
b3260 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 6f 72 20 6d d.is.executed,.contains.one.or.m
b3280 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
b32a0 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.".................
b32c0 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 73 74 61 74 75 73 2d },................."post-status-
b32e0 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 cmd":.{....................."typ
b3300 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 e":.["array",."string"],........
b3320 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 ............."description":."Occ
b3340 75 72 73 20 61 66 74 65 72 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 urs.after.the.status.command.is.
b3360 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 executed,.contains.one.or.more.C
b3380 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 6c 6c 20 lass::method.callables.or.shell.
b33a0 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 0a 20 20 commands.".................},...
b33c0 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 69 6e 73 74 61 .............."pre-package-insta
b33e0 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 ll":.{....................."type
b3400 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"],.........
b3420 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
b3440 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 rs.before.a.package.is.installed
b3460 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 6d 65 ,.contains.one.or.more.Class::me
b3480 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 64 73 thod.callables.or.shell.commands
b34a0 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 .".................},...........
b34c0 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a ......"post-package-install":.{.
b34e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 ...................."type":.["ar
b3500 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ray",."string"],................
b3520 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 65 ....."description":."Occurs.afte
b3540 72 20 61 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 r.a.package.is.installed,.contai
b3560 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 6c ns.one.or.more.Class::method.cal
b3580 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 20 lables.or.shell.commands."......
b35a0 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 ...........},................."p
b35c0 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 re-package-update":.{...........
b35e0 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 74 72 .........."type":.["array",."str
b3600 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 73 63 ing"],....................."desc
b3620 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 6b 61 ription":."Occurs.before.a.packa
b3640 67 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d ge.is.updated,.contains.one.or.m
b3660 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
b3680 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.".................
b36a0 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 70 61 63 6b 61 67 65 },................."post-package
b36c0 2d 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 -update":.{.....................
b36e0 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 0a 20 20 20 "type":.["array",."string"],....
b3700 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":.
b3720 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 "Occurs.after.a.package.is.updat
b3740 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::
b3760 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
b3780 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.".................},.........
b37a0 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a ........"pre-package-uninstall":
b37c0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b .{....................."type":.[
b37e0 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 "array",."string"],.............
b3800 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 ........"description":."Occurs.b
b3820 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 efore.a.package.has.been.uninsta
b3840 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 lled,.contains.one.or.more.Class
b3860 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 6f 6d 6d ::method.callables.or.shell.comm
b3880 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 20 20 20 ands.".................},.......
b38a0 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c .........."post-package-uninstal
b38c0 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 l":.{....................."type"
b38e0 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 20 :.["array",."string"],..........
b3900 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 72 ..........."description":."Occur
b3920 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 s.after.a.package.has.been.unins
b3940 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 talled,.contains.one.or.more.Cla
b3960 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 6f ss::method.callables.or.shell.co
b3980 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 20 mmands.".................},.....
b39a0 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a ............"pre-autoload-dump":
b39c0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b .{....................."type":.[
b39e0 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 "array",."string"],.............
b3a00 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 ........"description":."Occurs.b
b3a20 65 66 6f 72 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 efore.the.autoloader.is.dumped,.
b3a40 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 contains.one.or.more.Class::meth
b3a60 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 64 73 2e 22 od.callables.or.shell.commands."
b3a80 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 .................},.............
b3aa0 20 20 20 20 22 70 6f 73 74 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 ...."post-autoload-dump":.{.....
b3ac0 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"
b3ae0 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"],....................
b3b00 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 68 ."description":."Occurs.after.th
b3b20 65 20 61 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 e.autoloader.is.dumped,.contains
b3b40 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 .one.or.more.Class::method.calla
b3b60 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 20 bles.or.shell.commands."........
b3b80 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 6f 73 .........},................."pos
b3ba0 74 2d 72 6f 6f 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 t-root-package-install":.{......
b3bc0 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",
b3be0 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"],.....................
b3c00 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 68 65 "description":."Occurs.after.the
b3c20 20 72 6f 6f 74 2d 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 .root-package.is.installed,.cont
b3c40 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
b3c60 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."....
b3c80 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 .............},.................
b3ca0 22 70 6f 73 74 2d 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 "post-create-project-cmd":.{....
b3cc0 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
b3ce0 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"],...................
b3d00 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
b3d20 68 65 20 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 he.create-project.command.is.exe
b3d40 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 61 73 cuted,.contains.one.or.more.Clas
b3d60 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 6f 6d s::method.callables.or.shell.com
b3d80 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 0a 20 20 20 20 20 20 mands.".................}.......
b3da0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 70 70 ......}.........},........."supp
b3dc0 6f 72 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a ort":.{............."type":."obj
b3de0 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 ect",............."properties":.
b3e00 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 {................."email":.{....
b3e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
b3e40 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
b3e60 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 66 6f 72 20 73 75 70 70 6f 72 74 ion":."Email.address.for.support
b3e80 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"
b3ea0 3a 20 22 65 6d 61 69 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 :."email".................},....
b3ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 73 73 75 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 ............."issues":.{........
b3ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 ............."type":."string",..
b3f00 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"
b3f20 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 49 73 73 75 65 20 54 72 61 63 6b 65 72 2e 22 2c 0a 20 :."URL.to.the.Issue.Tracker.",..
b3f40 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 72 ..................."format":."ur
b3f60 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 20 i".................},...........
b3f80 20 20 20 20 20 20 22 66 6f 72 75 6d 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"forum":.{................
b3fa0 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",..........
b3fc0 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 20 74 ..........."description":."URL.t
b3fe0 6f 20 74 68 65 20 46 6f 72 75 6d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o.the.Forum.",..................
b4000 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."format":."uri"..............
b4020 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 69 6b 69 22 3a 20 7b 0a ...},................."wiki":.{.
b4040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 ...................."type":."str
b4060 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ing",....................."descr
b4080 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 57 69 6b 69 2e 22 2c 0a 20 20 20 iption":."URL.to.the.Wiki.",....
b40a0 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 72 69 22 ................."format":."uri"
b40c0 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 .................},.............
b40e0 20 20 20 20 22 69 72 63 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."irc":.{....................
b4100 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 20 ."type":."string",..............
b4120 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 52 43 20 63 68 61 6e 6e ......."description":."IRC.chann
b4140 65 6c 20 66 6f 72 20 73 75 70 70 6f 72 74 2c 20 61 73 20 69 72 63 3a 2f 2f 73 65 72 76 65 72 2f el.for.support,.as.irc://server/
b4160 63 68 61 6e 6e 65 6c 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 channel.",....................."
b4180 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d format":."uri".................}
b41a0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 7b 0a 20 20 ,................."source":.{...
b41c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e .................."type":."strin
b41e0 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 g",....................."descrip
b4200 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 62 72 6f 77 73 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 tion":."URL.to.browse.or.downloa
b4220 64 20 74 68 65 20 73 6f 75 72 63 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.the.sources.",................
b4240 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 ....."format":."uri"............
b4260 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a .....}.............}.........},.
b4280 20 20 20 20 20 20 20 20 22 6e 6f 6e 2d 66 65 61 74 75 72 65 2d 62 72 61 6e 63 68 65 73 22 3a 20 ........"non-feature-branches":.
b42a0 7b 0a 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 5d 2c {............."type":.["array"],
b42c0 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 41 20 73 ............."description":."A.s
b42e0 65 74 20 6f 66 20 73 74 72 69 6e 67 20 6f 72 20 72 65 67 65 78 20 70 61 74 74 65 72 6e 73 20 66 et.of.string.or.regex.patterns.f
b4300 6f 72 20 6e 6f 6e 2d 6e 75 6d 65 72 69 63 20 62 72 61 6e 63 68 20 6e 61 6d 65 73 20 74 68 61 74 or.non-numeric.branch.names.that
b4320 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 68 61 6e 64 6c 65 73 20 61 73 20 66 65 61 74 75 72 65 20 .will.not.be.handles.as.feature.
b4340 62 72 61 6e 63 68 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a branches.",............."items":
b4360 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 72 69 .{................."type":."stri
b4380 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 0a 20 20 20 20 ng".............}.........}.....
b43a0 7d 0a 7d 0a 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 }.}.MZ......................@...
b43c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b43e0 e8 00 00 00 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 ............!..L.!This.program.c
b4400 61 6e 6e 6f 74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 annot.be.run.in.DOS.mode....$...
b4420 00 00 00 00 7f c6 2c cd 3b a7 42 9e 3b a7 42 9e 3b a7 42 9e 32 df d7 9e 3a a7 42 9e 32 df c1 9e ......,.;.B.;.B.;.B.2...:.B.2...
b4440 2d a7 42 9e 32 df c6 9e 39 a7 42 9e 32 df d1 9e 3f a7 42 9e 1c 61 39 9e 38 a7 42 9e 3b a7 43 9e -.B.2...9.B.2...?.B..a9.8.B.;.C.
b4460 08 a7 42 9e 32 df c8 9e 3a a7 42 9e 32 df d6 9e 3a a7 42 9e 32 df d3 9e 3a a7 42 9e 52 69 63 68 ..B.2...:.B.2...:.B.2...:.B.Rich
b4480 3b a7 42 9e 00 00 00 00 00 00 00 00 50 45 00 00 4c 01 05 00 ac 4d 6f 4f 00 00 00 00 00 00 00 00 ;.B.........PE..L....MoO........
b44a0 e0 00 02 01 0b 01 09 00 00 0a 00 00 00 16 00 00 00 00 00 00 38 13 00 00 00 10 00 00 00 20 00 00 ....................8...........
b44c0 00 00 40 00 00 10 00 00 00 02 00 00 05 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 60 00 00 ..@..........................`..
b44e0 00 04 00 00 3f 9c 00 00 03 00 40 81 00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 00 00 00 00 ....?.....@.....................
b4500 10 00 00 00 00 00 00 00 00 00 00 00 90 22 00 00 50 00 00 00 00 40 00 00 20 06 00 00 00 00 00 00 ............."..P....@..........
b4520 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 70 01 00 00 00 21 00 00 1c 00 00 00 00 00 00 00 .............P..p....!..........
b4540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 21 00 00 40 00 00 00 00 00 00 00 ....................8!..@.......
b4560 00 00 00 00 00 20 00 00 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4580 00 00 00 00 2e 74 65 78 74 00 00 00 0b 09 00 00 00 10 00 00 00 0a 00 00 00 04 00 00 00 00 00 00 .....text.......................
b45a0 00 00 00 00 00 00 00 00 20 00 00 60 2e 72 64 61 74 61 00 00 ce 09 00 00 00 20 00 00 00 0a 00 00 ...........`.rdata..............
b45c0 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2e 64 61 74 61 00 00 00 90 03 00 00 ................@..@.data.......
b45e0 00 30 00 00 00 02 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 c0 2e 72 73 72 .0......................@....rsr
b4600 63 00 00 00 20 06 00 00 00 40 00 00 00 08 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c........@......................
b4620 40 00 00 40 2e 72 65 6c 6f 63 00 00 cc 01 00 00 00 50 00 00 00 02 00 00 00 22 00 00 00 00 00 00 @..@.reloc.......P......."......
b4640 00 00 00 00 00 00 00 00 40 00 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........@..B....................
b4660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b46a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b46c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b46e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b47a0 00 00 00 00 6a 24 b8 e6 18 40 00 e8 78 08 00 00 6a f6 ff 15 08 20 40 00 83 65 d0 00 8b f0 8d 45 ....j$...@..x...j.....@..e.....E
b47c0 d0 50 56 ff 15 00 20 40 00 8b 45 d0 83 e0 fb 50 56 ff 15 04 20 40 00 8d 4d d4 ff 15 58 20 40 00 .PV....@..E....PV....@..M...X.@.
b47e0 83 65 fc 00 8d 45 d4 50 ff 35 48 20 40 00 ff 15 4c 20 40 00 59 59 ff 35 5c 20 40 00 8d 45 d4 50 .e...E.P.5H.@...L.@.YY.5\.@..E.P
b4800 ff 35 60 20 40 00 ff 15 44 20 40 00 59 59 8b c8 ff 15 50 20 40 00 83 4d fc ff 8d 4d d4 ff 15 54 .5`.@...D.@.YY....P.@..M...M...T
b4820 20 40 00 33 c0 e8 48 08 00 00 c3 3b 0d 00 30 40 00 75 02 f3 c3 e9 ac 02 00 00 68 80 15 40 00 e8 .@.3..H....;..0@.u........h..@..
b4840 a3 04 00 00 a1 6c 33 40 00 c7 04 24 34 30 40 00 ff 35 68 33 40 00 a3 34 30 40 00 68 24 30 40 00 .....l3@...$40@..5h3@..40@.h$0@.
b4860 68 28 30 40 00 68 20 30 40 00 ff 15 a0 20 40 00 83 c4 14 a3 30 30 40 00 85 c0 7d 08 6a 08 e8 b9 h(0@.h.0@.....@.....00@...}.j...
b4880 03 00 00 59 c3 6a 10 68 08 22 40 00 e8 1f 06 00 00 33 db 89 5d fc 64 a1 18 00 00 00 8b 70 04 89 ...Y.j.h."@......3..].d......p..
b48a0 5d e4 bf 80 33 40 00 53 56 57 ff 15 30 20 40 00 3b c3 74 19 3b c6 75 08 33 f6 46 89 75 e4 eb 10 ]...3@.SVW..0.@.;.t.;.u.3.F.u...
b48c0 68 e8 03 00 00 ff 15 34 20 40 00 eb da 33 f6 46 a1 7c 33 40 00 3b c6 75 0a 6a 1f e8 5c 03 00 00 h......4.@...3.F.|3@.;.u.j..\...
b48e0 59 eb 3b a1 7c 33 40 00 85 c0 75 2c 89 35 7c 33 40 00 68 f0 20 40 00 68 e4 20 40 00 e8 a7 05 00 Y.;.|3@...u,.5|3@.h..@.h..@.....
b4900 00 59 59 85 c0 74 17 c7 45 fc fe ff ff ff b8 ff 00 00 00 e9 dd 00 00 00 89 35 3c 30 40 00 a1 7c .YY..t..E................5<0@..|
b4920 33 40 00 3b c6 75 1b 68 e0 20 40 00 68 d8 20 40 00 e8 6c 05 00 00 59 59 c7 05 7c 33 40 00 02 00 3@.;.u.h..@.h..@..l...YY..|3@...
b4940 00 00 39 5d e4 75 08 53 57 ff 15 38 20 40 00 39 1d 8c 33 40 00 74 19 68 8c 33 40 00 e8 83 04 00 ..9].u.SW..8.@.9..3@.t.h.3@.....
b4960 00 59 85 c0 74 0a 53 6a 02 53 ff 15 8c 33 40 00 a1 24 30 40 00 8b 0d bc 20 40 00 89 01 ff 35 24 .Y..t.Sj.S...3@..$0@.....@....5$
b4980 30 40 00 ff 35 28 30 40 00 ff 35 20 30 40 00 e8 10 fe ff ff 83 c4 0c a3 38 30 40 00 39 1d 2c 30 0@..5(0@..5.0@..........80@.9.,0
b49a0 40 00 75 37 50 ff 15 c0 20 40 00 8b 45 ec 8b 08 8b 09 89 4d e0 50 51 e8 8e 03 00 00 59 59 c3 8b @.u7P....@..E......M.PQ.....YY..
b49c0 65 e8 8b 45 e0 a3 38 30 40 00 33 db 39 1d 2c 30 40 00 75 07 50 ff 15 68 20 40 00 39 1d 3c 30 40 e..E..80@.3.9.,0@.u.P..h.@.9.<0@
b49e0 00 75 06 ff 15 9c 20 40 00 c7 45 fc fe ff ff ff a1 38 30 40 00 e8 fb 04 00 00 c3 b8 4d 5a 00 00 .u.....@..E......80@........MZ..
b4a00 66 39 05 00 00 40 00 74 04 33 c0 eb 4d a1 3c 00 40 00 8d 80 00 00 40 00 81 38 50 45 00 00 75 e9 f9...@.t.3..M.<.@.....@..8PE..u.
b4a20 0f b7 48 18 81 f9 0b 01 00 00 74 1b 81 f9 0b 02 00 00 75 d5 83 b8 84 00 00 00 0e 76 cc 33 c9 39 ..H.......t.......u........v.3.9
b4a40 88 f8 00 00 00 eb 0e 83 78 74 0e 76 bc 33 c9 39 88 e8 00 00 00 0f 95 c1 8b c1 6a 01 a3 2c 30 40 ........xt.v.3.9..........j..,0@
b4a60 00 ff 15 70 20 40 00 6a ff ff 15 6c 20 40 00 59 59 a3 84 33 40 00 a3 88 33 40 00 ff 15 cc 20 40 ...p.@.j...l.@.YY..3@...3@.....@
b4a80 00 8b 0d 74 33 40 00 89 08 ff 15 88 20 40 00 8b 0d 70 33 40 00 89 08 a1 a8 20 40 00 8b 00 a3 78 ...t3@.......@...p3@......@....x
b4aa0 33 40 00 e8 56 02 00 00 e8 ac 04 00 00 83 3d 14 30 40 00 00 75 0c 68 b5 17 40 00 ff 15 ac 20 40 3@..V.........=.0@..u.h..@.....@
b4ac0 00 59 e8 67 04 00 00 83 3d 10 30 40 00 ff 75 09 6a ff ff 15 b0 20 40 00 59 33 c0 c3 e8 7b 04 00 .Y.g....=.0@..u.j.....@.Y3...{..
b4ae0 00 e9 9f fd ff ff 8b ff 55 8b ec 81 ec 28 03 00 00 a3 48 31 40 00 89 0d 44 31 40 00 89 15 40 31 ........U....(....H1@...D1@...@1
b4b00 40 00 89 1d 3c 31 40 00 89 35 38 31 40 00 89 3d 34 31 40 00 66 8c 15 60 31 40 00 66 8c 0d 54 31 @...<1@..581@..=41@.f..`1@.f..T1
b4b20 40 00 66 8c 1d 30 31 40 00 66 8c 05 2c 31 40 00 66 8c 25 28 31 40 00 66 8c 2d 24 31 40 00 9c 8f @.f..01@.f..,1@.f.%(1@.f.-$1@...
b4b40 05 58 31 40 00 8b 45 00 a3 4c 31 40 00 8b 45 04 a3 50 31 40 00 8d 45 08 a3 5c 31 40 00 8b 85 e0 .X1@..E..L1@..E..P1@..E..\1@....
b4b60 fc ff ff c7 05 98 30 40 00 01 00 01 00 a1 50 31 40 00 a3 4c 30 40 00 c7 05 40 30 40 00 09 04 00 ......0@......P1@..L0@...@0@....
b4b80 c0 c7 05 44 30 40 00 01 00 00 00 a1 00 30 40 00 89 85 d8 fc ff ff a1 04 30 40 00 89 85 dc fc ff ...D0@.......0@.........0@......
b4ba0 ff ff 15 1c 20 40 00 a3 90 30 40 00 6a 01 e8 3f 04 00 00 59 6a 00 ff 15 20 20 40 00 68 1c 21 40 .....@...0@.j..?...Yj.....@.h.!@
b4bc0 00 ff 15 24 20 40 00 83 3d 90 30 40 00 00 75 08 6a 01 e8 1b 04 00 00 59 68 09 04 00 c0 ff 15 28 ...$.@..=.0@..u.j......Yh......(
b4be0 20 40 00 50 ff 15 2c 20 40 00 c9 c3 8b ff 55 8b ec 8b 45 08 8b 00 81 38 63 73 6d e0 75 2a 83 78 .@.P..,.@.....U...E....8csm.u*.x
b4c00 10 03 75 24 8b 40 14 3d 20 05 93 19 74 15 3d 21 05 93 19 74 0e 3d 22 05 93 19 74 07 3d 00 40 99 ..u$.@.=....t.=!...t.="...t.=.@.
b4c20 01 75 05 e8 d0 03 00 00 33 c0 5d c2 04 00 68 48 14 40 00 ff 15 20 20 40 00 33 c0 c3 ff 25 a4 20 .u......3.]...hH.@.....@.3...%..
b4c40 40 00 6a 14 68 28 22 40 00 e8 62 02 00 00 ff 35 88 33 40 00 8b 35 8c 20 40 00 ff d6 59 89 45 e4 @.j.h("@..b....5.3@..5..@...Y.E.
b4c60 83 f8 ff 75 0c ff 75 08 ff 15 c4 20 40 00 59 eb 67 6a 08 e8 92 03 00 00 59 83 65 fc 00 ff 35 88 ...u..u.....@.Y.gj......Y.e...5.
b4c80 33 40 00 ff d6 89 45 e4 ff 35 84 33 40 00 ff d6 59 59 89 45 e0 8d 45 e0 50 8d 45 e4 50 ff 75 08 3@....E..5.3@...YY.E..E.P.E.P.u.
b4ca0 8b 35 6c 20 40 00 ff d6 59 50 e8 55 03 00 00 89 45 dc ff 75 e4 ff d6 a3 88 33 40 00 ff 75 e0 ff .5l.@...YP.U....E..u.....3@..u..
b4cc0 d6 83 c4 14 a3 84 33 40 00 c7 45 fc fe ff ff ff e8 09 00 00 00 8b 45 dc e8 18 02 00 00 c3 6a 08 ......3@..E...........E.......j.
b4ce0 e8 19 03 00 00 59 c3 8b ff 55 8b ec ff 75 08 e8 4e ff ff ff f7 d8 1b c0 f7 d8 59 48 5d c3 8b ff .....Y...U...u..N.........YH]...
b4d00 56 b8 fc 21 40 00 be fc 21 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 V..!@...!@.W..;.s.....t......;.r
b4d20 f1 5f 5e c3 8b ff 56 b8 04 22 40 00 be 04 22 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 ._^...V.."@..."@.W..;.s.....t...
b4d40 83 c7 04 3b fe 72 f1 5f 5e c3 ff 25 c8 20 40 00 cc cc cc cc 8b ff 55 8b ec 8b 4d 08 b8 4d 5a 00 ...;.r._^..%..@.......U...M..MZ.
b4d60 00 66 39 01 74 04 33 c0 5d c3 8b 41 3c 03 c1 81 38 50 45 00 00 75 ef 33 d2 b9 0b 01 00 00 66 39 .f9.t.3.]..A<...8PE..u.3......f9
b4d80 48 18 0f 94 c2 8b c2 5d c3 cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 8b 45 08 8b 48 3c 03 H......]..............U...E..H<.
b4da0 c8 0f b7 41 14 53 56 0f b7 71 06 33 d2 57 8d 44 08 18 85 f6 76 1b 8b 7d 0c 8b 48 0c 3b f9 72 09 ...A.SV..q.3.W.D....v..}..H.;.r.
b4dc0 8b 58 08 03 d9 3b fb 72 0a 42 83 c0 28 3b d6 72 e8 33 c0 5f 5e 5b 5d c3 cc cc cc cc cc cc cc cc .X...;.r.B..(;.r.3._^[].........
b4de0 cc cc cc cc 8b ff 55 8b ec 6a fe 68 48 22 40 00 68 65 17 40 00 64 a1 00 00 00 00 50 83 ec 08 53 ......U..j.hH"@.he.@.d.....P...S
b4e00 56 57 a1 00 30 40 00 31 45 f8 33 c5 50 8d 45 f0 64 a3 00 00 00 00 89 65 e8 c7 45 fc 00 00 00 00 VW..0@.1E.3.P.E.d......e..E.....
b4e20 68 00 00 40 00 e8 2a ff ff ff 83 c4 04 85 c0 74 55 8b 45 08 2d 00 00 40 00 50 68 00 00 40 00 e8 h..@..*........tU.E.-..@.Ph..@..
b4e40 50 ff ff ff 83 c4 08 85 c0 74 3b 8b 40 24 c1 e8 1f f7 d0 83 e0 01 c7 45 fc fe ff ff ff 8b 4d f0 P........t;.@$.........E......M.
b4e60 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 8b 45 ec 8b 08 8b 01 33 d2 3d 05 00 00 c0 0f 94 c2 d......Y_^[..]..E.....3.=.......
b4e80 8b c2 c3 8b 65 e8 c7 45 fc fe ff ff ff 33 c0 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d ....e..E.....3..M.d......Y_^[..]
b4ea0 c3 cc ff 25 b8 20 40 00 ff 25 b4 20 40 00 cc cc 68 65 17 40 00 64 ff 35 00 00 00 00 8b 44 24 10 ...%..@..%..@...he.@.d.5.....D$.
b4ec0 89 6c 24 10 8d 6c 24 10 2b e0 53 56 57 a1 00 30 40 00 31 45 fc 33 c5 50 89 65 e8 ff 75 f8 8b 45 .l$..l$.+.SVW..0@.1E.3.P.e..u..E
b4ee0 fc c7 45 fc fe ff ff ff 89 45 f8 8d 45 f0 64 a3 00 00 00 00 c3 8b 4d f0 64 89 0d 00 00 00 00 59 ..E......E..E.d.......M.d......Y
b4f00 5f 5f 5e 5b 8b e5 5d 51 c3 8b ff 55 8b ec ff 75 14 ff 75 10 ff 75 0c ff 75 08 68 87 10 40 00 68 __^[..]Q...U...u..u..u..u.h..@.h
b4f20 00 30 40 00 e8 e7 00 00 00 83 c4 18 5d c3 8b ff 56 68 00 00 03 00 68 00 00 01 00 33 f6 56 e8 d9 .0@.........]...Vh....h....3.V..
b4f40 00 00 00 83 c4 0c 85 c0 74 0d 56 56 56 56 56 e8 c2 00 00 00 83 c4 14 5e c3 33 c0 c3 8b ff 55 8b ........t.VVVVV........^.3....U.
b4f60 ec 83 ec 10 a1 00 30 40 00 83 65 f8 00 83 65 fc 00 53 57 bf 4e e6 40 bb bb 00 00 ff ff 3b c7 74 ......0@..e...e..SW.N.@......;.t
b4f80 0d 85 c3 74 09 f7 d0 a3 04 30 40 00 eb 60 56 8d 45 f8 50 ff 15 3c 20 40 00 8b 75 fc 33 75 f8 ff ...t.....0@..`V.E.P..<.@..u.3u..
b4fa0 15 0c 20 40 00 33 f0 ff 15 10 20 40 00 33 f0 ff 15 14 20 40 00 33 f0 8d 45 f0 50 ff 15 18 20 40 ...@.3.....@.3.....@.3..E.P....@
b4fc0 00 8b 45 f4 33 45 f0 33 f0 3b f7 75 07 be 4f e6 40 bb eb 0b 85 f3 75 07 8b c6 c1 e0 10 0b f0 89 ..E.3E.3.;.u..O.@.....u.........
b4fe0 35 00 30 40 00 f7 d6 89 35 04 30 40 00 5e 5f 5b c9 c3 ff 25 74 20 40 00 ff 25 78 20 40 00 ff 25 5.0@....5.0@.^_[...%t.@..%x.@..%
b5000 7c 20 40 00 ff 25 80 20 40 00 ff 25 84 20 40 00 ff 25 90 20 40 00 ff 25 94 20 40 00 ff 25 98 20 |.@..%..@..%..@..%..@..%..@..%..
b5020 40 00 ff 25 d0 20 40 00 50 64 ff 35 00 00 00 00 8d 44 24 0c 2b 64 24 0c 53 56 57 89 28 8b e8 a1 @..%..@.Pd.5.....D$.+d$.SVW.(...
b5040 00 30 40 00 33 c5 50 89 45 f0 ff 75 fc c7 45 fc ff ff ff ff 8d 45 f4 64 a3 00 00 00 00 c3 8b 4d .0@.3.P.E..u..E......E.d.......M
b5060 f4 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b 4d f0 33 cd e8 af f7 ff ff e9 dd ff ff .d......Y__^[..]Q..M.3..........
b5080 ff 8d 4d d4 ff 25 54 20 40 00 8b 54 24 08 8d 42 0c 8b 4a cc 33 c8 e8 90 f7 ff ff 8b 4a fc 33 c8 ..M..%T.@..T$..B..J.3.......J.3.
b50a0 e8 86 f7 ff ff b8 6c 22 40 00 e9 73 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ......l"@..s....................
b50c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b50e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b51a0 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 .....#...#...#...)..r)..b)..H)..
b51c0 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 4)...)...(...(...(...(...(...(..
b51e0 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 .).......#...$...%...%...&..d&..
b5200 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 .&...$......('...'...'...'...'..
b5220 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 .(..((..6(...'..H(..Z(..t(...(..
b5240 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 .'...'...'...'...'..l'..^'..R'..
b5260 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 00 00 00 00 F'..>'..>(..0'...'...)..........
b5280 96 10 40 00 00 00 00 00 00 00 00 00 57 12 40 00 8a 14 40 00 00 00 00 00 00 00 00 00 00 00 00 00 ..@.........W.@...@.............
b52a0 00 00 00 00 00 00 00 00 ac 4d 6f 4f 00 00 00 00 02 00 00 00 6c 00 00 00 80 21 00 00 80 0f 00 00 .........MoO........l....!......
b52c0 40 30 40 00 98 30 40 00 62 61 64 20 61 6c 6c 6f 63 61 74 69 6f 6e 00 00 00 00 00 00 48 00 00 00 @0@..0@.bad.allocation......H...
b52e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 40 00 f0 21 40 00 .........................0@..!@.
b5320 02 00 00 00 52 53 44 53 d1 8c b3 10 b4 8f 01 4a a8 21 f6 cc eb 4c 5a 00 01 00 00 00 63 3a 5c 75 ....RSDS.......J.!...LZ.....c:\u
b5340 73 65 72 73 5c 73 65 6c 64 5c 64 6f 63 75 6d 65 6e 74 73 5c 76 69 73 75 61 6c 20 73 74 75 64 69 sers\seld\documents\visual.studi
b5360 6f 20 32 30 31 30 5c 50 72 6f 6a 65 63 74 73 5c 68 69 64 64 65 6e 69 6e 70 5c 52 65 6c 65 61 73 o.2010\Projects\hiddeninp\Releas
b5380 65 5c 68 69 64 64 65 6e 69 6e 70 2e 70 64 62 00 00 00 00 00 65 17 00 00 e6 18 00 00 00 00 00 00 e\hiddeninp.pdb.....e...........
b53a0 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff 00 00 00 00 d0 ff ff ff 00 00 00 00 fe ff ff ff ................................
b53c0 07 12 40 00 1b 12 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 cc ff ff ff 00 00 00 00 fe ff ff ff ..@...@.........................
b53e0 00 00 00 00 3a 15 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 d8 ff ff ff 00 00 00 00 fe ff ff ff ....:.@.........................
b5400 cb 16 40 00 df 16 40 00 ff ff ff ff dd 18 40 00 22 05 93 19 01 00 00 00 64 22 40 00 00 00 00 00 ..@...@.......@.".......d"@.....
b5420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 e0 22 00 00 00 00 00 00 00 00 00 00 ....................."..........
b5440 ec 23 00 00 00 20 00 00 24 23 00 00 00 00 00 00 00 00 00 00 f4 26 00 00 44 20 00 00 48 23 00 00 .#......$#...........&..D...H#..
b5460 00 00 00 00 00 00 00 00 12 28 00 00 68 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........(..h...................
b5480 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 .....#...#...#...)..r)..b)..H)..
b54a0 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 4)...)...(...(...(...(...(...(..
b54c0 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 .).......#...$...%...%...&..d&..
b54e0 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 .&...$......('...'...'...'...'..
b5500 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 .(..((..6(...'..H(..Z(..t(...(..
b5520 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 .'...'...'...'...'..l'..^'..R'..
b5540 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 95 01 47 65 F'..>'..>(..0'...'...)........Ge
b5560 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 b7 03 53 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 tConsoleMode....SetConsoleMode..
b5580 3b 02 47 65 74 53 74 64 48 61 6e 64 6c 65 00 00 4b 45 52 4e 45 4c 33 32 2e 64 6c 6c 00 00 16 00 ;.GetStdHandle..KERNEL32.dll....
b55a0 3f 3f 24 3f 36 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 ??$?6DU?$char_traits@D@std@@V?$a
b55c0 6c 6c 6f 63 61 74 6f 72 40 44 40 31 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f llocator@D@1@@std@@YAAAV?$basic_
b55e0 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 ostream@DU?$char_traits@D@std@@@
b5600 30 40 41 41 56 31 30 40 41 42 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 0@AAV10@ABV?$basic_string@DU?$ch
b5620 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 40 44 40 ar_traits@D@std@@V?$allocator@D@
b5640 32 40 40 30 40 40 5a 00 91 06 3f 63 6f 75 74 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 6f 2@@0@@Z...?cout@std@@3V?$basic_o
b5660 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 stream@DU?$char_traits@D@std@@@1
b5680 40 41 00 00 4a 06 3f 63 69 6e 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 @A..J.?cin@std@@3V?$basic_istrea
b56a0 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 31 40 41 00 c2 00 m@DU?$char_traits@D@std@@@1@A...
b56c0 3f 3f 24 67 65 74 6c 69 6e 65 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 ??$getline@DU?$char_traits@D@std
b56e0 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 @@V?$allocator@D@2@@std@@YAAAV?$
b5700 62 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 basic_istream@DU?$char_traits@D@
b5720 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 41 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 std@@@0@AAV10@AAV?$basic_string@
b5740 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 DU?$char_traits@D@std@@V?$alloca
b5760 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 1d 03 3f 3f 36 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 tor@D@2@@0@@Z...??6?$basic_ostre
b5780 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 73 74 64 40 40 am@DU?$char_traits@D@std@@@std@@
b57a0 51 41 45 41 41 56 30 31 40 50 36 41 41 41 56 30 31 40 41 41 56 30 31 40 40 5a 40 5a 00 00 5f 02 QAEAAV01@P6AAAV01@AAV01@@Z@Z.._.
b57c0 3f 3f 31 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 ??1?$basic_string@DU?$char_trait
b57e0 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 40 40 s@D@std@@V?$allocator@D@2@@std@@
b5800 51 41 45 40 58 5a 00 00 7b 01 3f 3f 30 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 QAE@XZ..{.??0?$basic_string@DU?$
b5820 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 40 char_traits@D@std@@V?$allocator@
b5840 44 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 b3 07 3f 65 6e 64 6c 40 73 74 64 40 40 59 D@2@@std@@QAE@XZ....?endl@std@@Y
b5860 41 41 41 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 AAAV?$basic_ostream@DU?$char_tra
b5880 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 41 56 32 31 40 40 5a 00 00 4d 53 56 43 50 39 30 2e its@D@std@@@1@AAV21@@Z..MSVCP90.
b58a0 64 6c 6c 00 15 01 5f 61 6d 73 67 5f 65 78 69 74 00 00 9f 00 5f 5f 67 65 74 6d 61 69 6e 61 72 67 dll..._amsg_exit....__getmainarg
b58c0 73 00 2c 01 5f 63 65 78 69 74 00 00 7c 01 5f 65 78 69 74 00 66 00 5f 58 63 70 74 46 69 6c 74 65 s.,._cexit..|._exit.f._XcptFilte
b58e0 72 00 cc 04 65 78 69 74 00 00 a0 00 5f 5f 69 6e 69 74 65 6e 76 00 04 02 5f 69 6e 69 74 74 65 72 r...exit....__initenv..._initter
b5900 6d 00 05 02 5f 69 6e 69 74 74 65 72 6d 5f 65 00 3c 01 5f 63 6f 6e 66 69 67 74 68 72 65 61 64 6c m..._initterm_e.<._configthreadl
b5920 6f 63 61 6c 65 00 e3 00 5f 5f 73 65 74 75 73 65 72 6d 61 74 68 65 72 72 00 00 0b 01 5f 61 64 6a ocale...__setusermatherr...._adj
b5940 75 73 74 5f 66 64 69 76 00 00 cb 00 5f 5f 70 5f 5f 63 6f 6d 6d 6f 64 65 00 00 cf 00 5f 5f 70 5f ust_fdiv....__p__commode....__p_
b5960 5f 66 6d 6f 64 65 00 00 6a 01 5f 65 6e 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 e0 00 5f 5f 73 65 _fmode..j._encode_pointer...__se
b5980 74 5f 61 70 70 5f 74 79 70 65 00 00 4b 01 5f 63 72 74 5f 64 65 62 75 67 67 65 72 5f 68 6f 6f 6b t_app_type..K._crt_debugger_hook
b59a0 00 00 43 00 3f 74 65 72 6d 69 6e 61 74 65 40 40 59 41 58 58 5a 00 4d 53 56 43 52 39 30 2e 64 6c ..C.?terminate@@YAXXZ.MSVCR90.dl
b59c0 6c 00 e6 03 5f 75 6e 6c 6f 63 6b 00 96 00 5f 5f 64 6c 6c 6f 6e 65 78 69 74 00 76 02 5f 6c 6f 63 l..._unlock...__dllonexit.v._loc
b59e0 6b 00 1c 03 5f 6f 6e 65 78 69 74 00 60 01 5f 64 65 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 73 01 k..._onexit.`._decode_pointer.s.
b5a00 5f 65 78 63 65 70 74 5f 68 61 6e 64 6c 65 72 34 5f 63 6f 6d 6d 6f 6e 00 0b 02 5f 69 6e 76 6f 6b _except_handler4_common..._invok
b5a20 65 5f 77 61 74 73 6f 6e 00 00 3f 01 5f 63 6f 6e 74 72 6f 6c 66 70 5f 73 00 00 bd 02 49 6e 74 65 e_watson..?._controlfp_s....Inte
b5a40 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e 67 65 00 21 04 53 6c 65 65 70 00 ba 02 49 6e 74 65 72 6c rlockedExchange.!.Sleep...Interl
b5a60 6f 63 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68 61 6e 67 65 00 00 2d 04 54 65 72 6d 69 6e 61 74 ockedCompareExchange..-.Terminat
b5a80 65 50 72 6f 63 65 73 73 00 00 a9 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 00 3e 04 eProcess....GetCurrentProcess.>.
b5aa0 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 00 15 04 53 65 74 55 UnhandledExceptionFilter....SetU
b5ac0 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 d1 02 49 73 44 65 62 75 nhandledExceptionFilter...IsDebu
b5ae0 67 67 65 72 50 72 65 73 65 6e 74 00 54 03 51 75 65 72 79 50 65 72 66 6f 72 6d 61 6e 63 65 43 6f ggerPresent.T.QueryPerformanceCo
b5b00 75 6e 74 65 72 00 66 02 47 65 74 54 69 63 6b 43 6f 75 6e 74 00 00 ad 01 47 65 74 43 75 72 72 65 unter.f.GetTickCount....GetCurre
b5b20 6e 74 54 68 72 65 61 64 49 64 00 00 aa 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 49 ntThreadId....GetCurrentProcessI
b5b40 64 00 4f 02 47 65 74 53 79 73 74 65 6d 54 69 6d 65 41 73 46 69 6c 65 54 69 6d 65 00 73 00 5f 5f d.O.GetSystemTimeAsFileTime.s.__
b5b60 43 78 78 46 72 61 6d 65 48 61 6e 64 6c 65 72 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CxxFrameHandler3................
b5b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5ba0 00 00 00 00 4e e6 40 bb b1 19 bf 44 ff ff ff ff ff ff ff ff fe ff ff ff 01 00 00 00 24 21 40 00 ....N.@....D................$!@.
b5bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5da0 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 02 00 10 00 00 00 20 00 00 80 18 00 00 00 ................................
b5dc0 38 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 50 00 00 80 00 00 00 00 8.......................P.......
b5de0 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 68 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 ................h...............
b5e00 00 00 01 00 09 04 00 00 80 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 ................................
b5e20 90 00 00 00 a0 40 00 00 28 03 00 00 e4 04 00 00 00 00 00 00 c8 43 00 00 56 02 00 00 e4 04 00 00 .....@..(............C..V.......
b5e40 00 00 00 00 28 03 34 00 00 00 56 00 53 00 5f 00 56 00 45 00 52 00 53 00 49 00 4f 00 4e 00 5f 00 ....(.4...V.S._.V.E.R.S.I.O.N._.
b5e60 49 00 4e 00 46 00 4f 00 00 00 00 00 bd 04 ef fe 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 I.N.F.O.........................
b5e80 00 00 00 00 17 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5ea0 86 02 00 00 01 00 53 00 74 00 72 00 69 00 6e 00 67 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 ......S.t.r.i.n.g.F.i.l.e.I.n.f.
b5ec0 6f 00 00 00 62 02 00 00 01 00 30 00 34 00 30 00 39 00 30 00 34 00 62 00 30 00 00 00 ca 00 51 00 o...b.....0.4.0.9.0.4.b.0.....Q.
b5ee0 01 00 46 00 69 00 6c 00 65 00 44 00 65 00 73 00 63 00 72 00 69 00 70 00 74 00 69 00 6f 00 6e 00 ..F.i.l.e.D.e.s.c.r.i.p.t.i.o.n.
b5f00 00 00 00 00 52 00 65 00 61 00 64 00 73 00 20 00 66 00 72 00 6f 00 6d 00 20 00 73 00 74 00 64 00 ....R.e.a.d.s...f.r.o.m...s.t.d.
b5f20 69 00 6e 00 20 00 77 00 69 00 74 00 68 00 6f 00 75 00 74 00 20 00 6c 00 65 00 61 00 6b 00 69 00 i.n...w.i.t.h.o.u.t...l.e.a.k.i.
b5f40 6e 00 67 00 20 00 69 00 6e 00 66 00 6f 00 20 00 74 00 6f 00 20 00 74 00 68 00 65 00 20 00 74 00 n.g...i.n.f.o...t.o...t.h.e...t.
b5f60 65 00 72 00 6d 00 69 00 6e 00 61 00 6c 00 20 00 61 00 6e 00 64 00 20 00 6f 00 75 00 74 00 70 00 e.r.m.i.n.a.l...a.n.d...o.u.t.p.
b5f80 75 00 74 00 73 00 20 00 62 00 61 00 63 00 6b 00 20 00 74 00 6f 00 20 00 73 00 74 00 64 00 6f 00 u.t.s...b.a.c.k...t.o...s.t.d.o.
b5fa0 75 00 74 00 00 00 00 00 36 00 0b 00 01 00 46 00 69 00 6c 00 65 00 56 00 65 00 72 00 73 00 69 00 u.t.....6.....F.i.l.e.V.e.r.s.i.
b5fc0 6f 00 6e 00 00 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 o.n.....1.,...0.,...0.,...0.....
b5fe0 38 00 0c 00 01 00 49 00 6e 00 74 00 65 00 72 00 6e 00 61 00 6c 00 4e 00 61 00 6d 00 65 00 00 00 8.....I.n.t.e.r.n.a.l.N.a.m.e...
b6000 68 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 00 75 00 74 00 00 00 50 00 16 00 01 00 4c 00 h.i.d.d.e.n.i.n.p.u.t...P.....L.
b6020 65 00 67 00 61 00 6c 00 43 00 6f 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 00 00 4a 00 6f 00 e.g.a.l.C.o.p.y.r.i.g.h.t...J.o.
b6040 72 00 64 00 69 00 20 00 42 00 6f 00 67 00 67 00 69 00 61 00 6e 00 6f 00 20 00 2d 00 20 00 32 00 r.d.i...B.o.g.g.i.a.n.o...-...2.
b6060 30 00 31 00 32 00 00 00 48 00 10 00 01 00 4f 00 72 00 69 00 67 00 69 00 6e 00 61 00 6c 00 46 00 0.1.2...H.....O.r.i.g.i.n.a.l.F.
b6080 69 00 6c 00 65 00 6e 00 61 00 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 i.l.e.n.a.m.e...h.i.d.d.e.n.i.n.
b60a0 70 00 75 00 74 00 2e 00 65 00 78 00 65 00 00 00 3a 00 0d 00 01 00 50 00 72 00 6f 00 64 00 75 00 p.u.t...e.x.e...:.....P.r.o.d.u.
b60c0 63 00 74 00 4e 00 61 00 6d 00 65 00 00 00 00 00 48 00 69 00 64 00 64 00 65 00 6e 00 20 00 49 00 c.t.N.a.m.e.....H.i.d.d.e.n...I.
b60e0 6e 00 70 00 75 00 74 00 00 00 00 00 3a 00 0b 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 n.p.u.t.....:.....P.r.o.d.u.c.t.
b6100 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 V.e.r.s.i.o.n...1.,...0.,...0.,.
b6120 20 00 30 00 00 00 00 00 44 00 00 00 01 00 56 00 61 00 72 00 46 00 69 00 6c 00 65 00 49 00 6e 00 ..0.....D.....V.a.r.F.i.l.e.I.n.
b6140 66 00 6f 00 00 00 00 00 24 00 04 00 00 00 54 00 72 00 61 00 6e 00 73 00 6c 00 61 00 74 00 69 00 f.o.....$.....T.r.a.n.s.l.a.t.i.
b6160 6f 00 6e 00 00 00 00 00 09 04 b0 04 3c 61 73 73 65 6d 62 6c 79 20 78 6d 6c 6e 73 3d 22 75 72 6e o.n.........<assembly.xmlns="urn
b6180 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 2e 76 31 22 20 6d :schemas-microsoft-com:asm.v1".m
b61a0 61 6e 69 66 65 73 74 56 65 72 73 69 6f 6e 3d 22 31 2e 30 22 3e 0d 0a 20 20 3c 74 72 75 73 74 49 anifestVersion="1.0">....<trustI
b61c0 6e 66 6f 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f 66 74 nfo.xmlns="urn:schemas-microsoft
b61e0 2d 63 6f 6d 3a 61 73 6d 2e 76 33 22 3e 0d 0a 20 20 20 20 3c 73 65 63 75 72 69 74 79 3e 0d 0a 20 -com:asm.v3">......<security>...
b6200 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 .....<requestedPrivileges>......
b6220 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 20 6c 65 76 ....<requestedExecutionLevel.lev
b6240 65 6c 3d 22 61 73 49 6e 76 6f 6b 65 72 22 20 75 69 41 63 63 65 73 73 3d 22 66 61 6c 73 65 22 3e el="asInvoker".uiAccess="false">
b6260 3c 2f 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 3e 0d 0a 20 20 20 20 </requestedExecutionLevel>......
b6280 20 20 3c 2f 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 3c 2f ..</requestedPrivileges>......</
b62a0 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 3c 2f 74 72 75 73 74 49 6e 66 6f 3e 0d 0a 20 20 3c 64 65 security>....</trustInfo>....<de
b62c0 70 65 6e 64 65 6e 63 79 3e 0d 0a 20 20 20 20 3c 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c pendency>......<dependentAssembl
b62e0 79 3e 0d 0a 20 20 20 20 20 20 3c 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 79 20 74 79 70 65 y>........<assemblyIdentity.type
b6300 3d 22 77 69 6e 33 32 22 20 6e 61 6d 65 3d 22 4d 69 63 72 6f 73 6f 66 74 2e 56 43 39 30 2e 43 52 ="win32".name="Microsoft.VC90.CR
b6320 54 22 20 76 65 72 73 69 6f 6e 3d 22 39 2e 30 2e 32 31 30 32 32 2e 38 22 20 70 72 6f 63 65 73 73 T".version="9.0.21022.8".process
b6340 6f 72 41 72 63 68 69 74 65 63 74 75 72 65 3d 22 78 38 36 22 20 70 75 62 6c 69 63 4b 65 79 54 6f orArchitecture="x86".publicKeyTo
b6360 6b 65 6e 3d 22 31 66 63 38 62 33 62 39 61 31 65 31 38 65 33 62 22 3e 3c 2f 61 73 73 65 6d 62 6c ken="1fc8b3b9a1e18e3b"></assembl
b6380 79 49 64 65 6e 74 69 74 79 3e 0d 0a 20 20 20 20 3c 2f 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d yIdentity>......</dependentAssem
b63a0 62 6c 79 3e 0d 0a 20 20 3c 2f 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 3c 2f 61 73 73 65 6d 62 6c bly>....</dependency>..</assembl
b63c0 79 3e 50 41 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 y>PAPADDINGXXPADDINGPADDINGXXPAD
b63e0 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6400 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6420 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6440 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6460 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6480 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b64a0 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b64c0 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b64e0 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6500 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6520 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6540 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6560 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b6580 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 DINGPADDINGXXPADDINGPADDINGXXPAD
b65a0 44 49 4e 47 00 10 00 00 40 01 00 00 03 30 10 30 21 30 2f 30 38 30 46 30 4c 30 54 30 5e 30 64 30 DING....@....0.0!0/080F0L0T0^0d0
b65c0 6e 30 7b 30 89 30 97 30 a1 30 a8 30 ae 30 b3 30 b8 30 bd 30 c2 30 c8 30 d0 30 e4 30 ff 30 08 31 n0{0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
b65e0 23 31 2d 31 40 31 4a 31 4f 31 54 31 76 31 7b 31 84 31 89 31 96 31 a7 31 ad 31 b4 31 c8 31 cd 31 #1-1@1J1O1T1v1{1.1.1.1.1.1.1.1.1
b6600 d3 31 db 31 e1 31 e7 31 f4 31 fa 31 03 32 22 32 2a 32 33 32 39 32 41 32 4d 32 5f 32 6a 32 70 32 .1.1.1.1.1.1.2"2*23292A2M2_2j2p2
b6620 b9 32 bf 32 c7 32 ce 32 d3 32 d9 32 df 32 e7 32 ed 32 f4 32 fb 32 0b 33 13 33 19 33 25 33 30 33 .2.2.2.2.2.2.2.2.2.2.2.3.3.3%303
b6640 4e 33 54 33 5a 33 60 33 66 33 6c 33 73 33 7a 33 81 33 88 33 8f 33 96 33 9d 33 a5 33 ad 33 b5 33 N3T3Z3`3f3l3s3z3.3.3.3.3.3.3.3.3
b6660 c1 33 ca 33 cf 33 d5 33 df 33 e8 33 f3 33 ff 33 04 34 14 34 19 34 1f 34 25 34 3b 34 42 34 8b 34 .3.3.3.3.3.3.3.3.4.4.4.4%4;4B4.4
b6680 91 34 9a 34 a1 34 ac 34 b2 34 c6 34 db 34 e6 34 fe 34 14 35 21 35 5e 35 63 35 84 35 89 35 a8 35 .4.4.4.4.4.4.4.4.4.5!5^5c5.5.5.5
b66a0 48 36 4d 36 5f 36 7d 36 91 36 97 36 00 37 06 37 0d 37 2a 37 77 37 7c 37 c1 37 e4 37 f1 37 fd 37 H6M6_6}6.6.6.7.7.7*7w7|7.7.7.7.7
b66c0 05 38 0d 38 19 38 3d 38 45 38 50 38 56 38 5c 38 62 38 68 38 6e 38 74 38 7a 38 80 38 9c 38 e2 38 .8.8.8=8E8P8V8\8b8h8n8t8z8.8.8.8
b66e0 02 39 00 00 00 20 00 00 24 00 00 00 dc 30 e8 30 ec 30 1c 31 20 31 74 31 78 31 1c 32 20 32 40 32 .9......$....0.0.0.1.1t1x1.2.2@2
b6700 5c 32 60 32 68 32 74 32 00 30 00 00 0c 00 00 00 18 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \2`2h2t2.0.......0..............
b6720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b67a0 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 ....<?php...........namespace.Sy
b67c0 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 73 65 20 53 79 mfony\Component\Process;..use.Sy
b67e0 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 65 70 74 69 6f mfony\Component\Process\Exceptio
b6800 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a n\RuntimeException;.............
b6820 63 6c 61 73 73 20 50 68 70 50 72 6f 63 65 73 73 20 65 78 74 65 6e 64 73 20 50 72 6f 63 65 73 73 class.PhpProcess.extends.Process
b6840 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 6e 20 5f 5f .{............public.function.__
b6860 63 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 74 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 construct($script,.$cwd.=.null,.
b6880 61 72 72 61 79 20 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 2c 20 24 74 69 6d 65 6f 75 74 20 3d array.$env.=.array(),.$timeout.=
b68a0 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b .60,.array.$options.=.array()).{
b68c0 0a 24 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 .$executableFinder.=.new.PhpExec
b68e0 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 utableFinder();.if.(false.===.$p
b6900 68 70 20 3d 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 29 20 hp.=.$executableFinder->find()).
b6920 7b 0a 24 70 68 70 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 {.$php.=.null;.}..parent::__cons
b6940 74 72 75 63 74 28 24 70 68 70 2c 20 24 63 77 64 2c 20 24 65 6e 76 2c 20 24 73 63 72 69 70 74 2c truct($php,.$cwd,.$env,.$script,
b6960 20 24 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 .$timeout,.$options);.}.......pu
b6980 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 68 70 42 69 6e 61 72 79 28 24 70 68 70 29 blic.function.setPhpBinary($php)
b69a0 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a .{.$this->setCommandLine($php);.
b69c0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c }.....public.function.start($cal
b69e0 6c 62 61 63 6b 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 74 68 lback.=.null).{.if.(null.===.$th
b6a00 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 is->getCommandLine()).{.throw.ne
b6a20 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 6f 20 66 69 w.RuntimeException('Unable.to.fi
b6a40 6e 64 20 74 68 65 20 50 48 50 20 65 78 65 63 75 74 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 nd.the.PHP.executable.');.}..par
b6a60 65 6e 74 3a 3a 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ent::start($callback);.}.}.<?php
b6a80 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
b6aa0 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 73 73 20 45 78 65 ponent\Process;........class.Exe
b6ac0 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 75 66 66 69 78 65 cutableFinder.{.private.$suffixe
b6ae0 73 20 3d 20 61 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e 63 6d 64 27 s.=.array('.exe',.'.bat',.'.cmd'
b6b00 2c 20 27 2e 63 6f 6d 27 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ,.'.com');.......public.function
b6b20 20 73 65 74 53 75 66 66 69 78 65 73 28 61 72 72 61 79 20 24 73 75 66 66 69 78 65 73 29 0a 7b 0a .setSuffixes(array.$suffixes).{.
b6b40 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 20 3d 20 24 73 75 66 66 69 78 65 73 3b 0a 7d 0a 0a $this->suffixes.=.$suffixes;.}..
b6b60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 66 66 69 78 28 24 .....public.function.addSuffix($
b6b80 73 75 66 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 5b 5d 20 3d 20 24 73 suffix).{.$this->suffixes[].=.$s
b6ba0 75 66 66 69 78 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 uffix;.}...........public.functi
b6bc0 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 on.find($name,.$default.=.null,.
b6be0 61 72 72 61 79 20 24 65 78 74 72 61 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 array.$extraDirs.=.array()).{.if
b6c00 20 28 69 6e 69 5f 67 65 74 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 20 7b 0a 24 73 65 .(ini_get('open_basedir')).{.$se
b6c20 61 72 63 68 50 61 74 68 20 3d 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f archPath.=.explode(PATH_SEPARATO
b6c40 52 2c 20 69 6e 69 5f 67 65 74 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 3b 0a 24 64 69 R,.ini_get('open_basedir'));.$di
b6c60 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 65 61 72 63 68 50 61 rs.=.array();.foreach.($searchPa
b6c80 74 68 20 61 73 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 th.as.$path).{.if.(is_dir($path)
b6ca0 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 ).{.$dirs[].=.$path;.}.else.{.if
b6cc0 20 28 62 61 73 65 6e 61 6d 65 28 24 70 61 74 68 29 20 3d 3d 20 24 6e 61 6d 65 20 26 26 20 69 73 .(basename($path).==.$name.&&.is
b6ce0 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 _executable($path)).{.return.$pa
b6d00 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 th;.}.}.}.}.else.{.$dirs.=.array
b6d20 5f 6d 65 72 67 65 28 0a 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 _merge(.explode(PATH_SEPARATOR,.
b6d40 67 65 74 65 6e 76 28 27 50 41 54 48 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 50 61 74 68 27 29 getenv('PATH').?:.getenv('Path')
b6d60 29 2c 0a 24 65 78 74 72 61 44 69 72 73 0a 29 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 ),.$extraDirs.);.}..$suffixes.=.
b6d80 61 72 72 61 79 28 27 27 29 3b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 array('');.if.('\\'.===.DIRECTOR
b6da0 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 70 61 74 68 45 78 74 20 3d 20 67 65 74 65 6e 76 Y_SEPARATOR).{.$pathExt.=.getenv
b6dc0 28 27 50 41 54 48 45 58 54 27 29 3b 0a 24 73 75 66 66 69 78 65 73 20 3d 20 24 70 61 74 68 45 78 ('PATHEXT');.$suffixes.=.$pathEx
b6de0 74 20 3f 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 70 61 74 t.?.explode(PATH_SEPARATOR,.$pat
b6e00 68 45 78 74 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 3b 0a 7d 0a 66 6f 72 65 61 hExt).:.$this->suffixes;.}.forea
b6e20 63 68 20 28 24 73 75 66 66 69 78 65 73 20 61 73 20 24 73 75 66 66 69 78 29 20 7b 0a 66 6f 72 65 ch.($suffixes.as.$suffix).{.fore
b6e40 61 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 69 73 5f 66 69 6c ach.($dirs.as.$dir).{.if.(is_fil
b6e60 65 28 24 66 69 6c 65 20 3d 20 24 64 69 72 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 e($file.=.$dir.DIRECTORY_SEPARAT
b6e80 4f 52 2e 24 6e 61 6d 65 2e 24 73 75 66 66 69 78 29 20 26 26 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 OR.$name.$suffix).&&.('\\'.===.D
b6ea0 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 7c 7c 20 69 73 5f 65 78 65 63 75 74 61 IRECTORY_SEPARATOR.||.is_executa
b6ec0 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 3b 0a 7d 0a 7d ble($file))).{.return.$file;.}.}
b6ee0 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 70 68 70 0a 0a .}..return.$default;.}.}.<?php..
b6f00 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
b6f20 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 6d 70 6f nent\Process;..use.Symfony\Compo
b6f40 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 nent\Process\Exception\InvalidAr
b6f60 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d gumentException;.use.Symfony\Com
b6f80 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 ponent\Process\Exception\LogicEx
b6fa0 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 65 6e 74 5c 50 ception;.use.Symfony\Component\P
b6fc0 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 rocess\Exception\ProcessFailedEx
b6fe0 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 65 6e 74 5c 50 ception;.use.Symfony\Component\P
b7000 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 65 64 4f 75 74 rocess\Exception\ProcessTimedOut
b7020 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 65 6e 74 Exception;.use.Symfony\Component
b7040 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 78 63 65 70 74 \Process\Exception\RuntimeExcept
b7060 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 50 72 6f 63 65 ion;.use.Symfony\Component\Proce
b7080 73 73 5c 50 69 70 65 73 5c 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d ss\Pipes\PipesInterface;.use.Sym
b70a0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 69 70 65 73 5c 55 6e 69 fony\Component\Process\Pipes\Uni
b70c0 78 50 69 70 65 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 xPipes;.use.Symfony\Component\Pr
b70e0 6f 63 65 73 73 5c 50 69 70 65 73 5c 57 69 6e 64 6f 77 73 50 69 70 65 73 3b 0a 0a 0a 0a 0a 0a 0a ocess\Pipes\WindowsPipes;.......
b7100 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 3d 20 ....class.Process.{.const.ERR.=.
b7120 27 65 72 72 27 3b 0a 63 6f 6e 73 74 20 4f 55 54 20 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 74 'err';.const.OUT.=.'out';..const
b7140 20 53 54 41 54 55 53 5f 52 45 41 44 59 20 3d 20 27 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 20 53 .STATUS_READY.=.'ready';.const.S
b7160 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 3d 20 27 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e 73 74 TATUS_STARTED.=.'started';.const
b7180 20 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 65 64 .STATUS_TERMINATED.=.'terminated
b71a0 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 44 49 4e 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 4f 55 ';..const.STDIN.=.0;.const.STDOU
b71c0 54 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 44 45 52 52 20 3d 20 32 3b 0a 0a 0a 20 63 6f 6e 73 T.=.1;.const.STDERR.=.2;....cons
b71e0 74 20 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 3d 20 30 2e 32 3b 0a 0a 70 72 69 76 t.TIMEOUT_PRECISION.=.0.2;..priv
b7200 61 74 65 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c ate.$callback;.private.$commandl
b7220 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 3b ine;.private.$cwd;.private.$env;
b7240 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 73 74 61 72 74 74 .private.$input;.private.$startt
b7260 69 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 3b 0a 70 72 ime;.private.$lastOutputTime;.pr
b7280 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 69 64 6c 65 54 69 6d ivate.$timeout;.private.$idleTim
b72a0 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 eout;.private.$options;.private.
b72c0 24 65 78 69 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 45 78 69 74 $exitcode;.private.$fallbackExit
b72e0 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f code;.private.$processInformatio
b7300 6e 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c n;.private.$outputDisabled.=.fal
b7320 73 65 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 se;.private.$stdout;.private.$st
b7340 64 65 72 72 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d derr;.private.$enhanceWindowsCom
b7360 70 61 74 69 62 69 6c 69 74 79 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 patibility.=.true;.private.$enha
b7380 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 nceSigchildCompatibility;.privat
b73a0 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 75 73 20 3d 20 73 65 e.$process;.private.$status.=.se
b73c0 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 20 24 69 6e 63 72 65 lf::STATUS_READY;.private.$incre
b73e0 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 mentalOutputOffset.=.0;.private.
b7400 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 20 3d 20 $incrementalErrorOutputOffset.=.
b7420 30 3b 0a 70 72 69 76 61 74 65 20 24 74 74 79 3b 0a 70 72 69 76 61 74 65 20 24 70 74 79 3b 0a 0a 0;.private.$tty;.private.$pty;..
b7440 70 72 69 76 61 74 65 20 24 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 66 61 6c 73 65 3b private.$useFileHandles.=.false;
b7460 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 50 69 70 65 73 3b 0a 0a 70 72 69 76 61 74 ..private.$processPipes;..privat
b7480 65 20 24 6c 61 74 65 73 74 53 69 67 6e 61 6c 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 e.$latestSignal;..private.static
b74a0 20 24 73 69 67 63 68 69 6c 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 .$sigchild;.........public.stati
b74c0 63 20 24 65 78 69 74 43 6f 64 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 4f 4b 27 2c c.$exitCodes.=.array(.0.=>.'OK',
b74e0 0a 31 20 3d 3e 20 27 47 65 6e 65 72 61 6c 20 65 72 72 6f 72 27 2c 0a 32 20 3d 3e 20 27 4d 69 73 .1.=>.'General.error',.2.=>.'Mis
b7500 75 73 65 20 6f 66 20 73 68 65 6c 6c 20 62 75 69 6c 74 69 6e 73 27 2c 0a 0a 31 32 36 20 3d 3e 20 use.of.shell.builtins',..126.=>.
b7520 27 49 6e 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 6e 6f 74 20 65 78 65 63 75 74 65 27 'Invoked.command.cannot.execute'
b7540 2c 0a 31 32 37 20 3d 3e 20 27 43 6f 6d 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 27 2c 0a 31 32 ,.127.=>.'Command.not.found',.12
b7560 38 20 3d 3e 20 27 49 6e 76 61 6c 69 64 20 65 78 69 74 20 61 72 67 75 6d 65 6e 74 27 2c 0a 0a 0a 8.=>.'Invalid.exit.argument',...
b7580 20 31 32 39 20 3d 3e 20 27 48 61 6e 67 75 70 27 2c 0a 31 33 30 20 3d 3e 20 27 49 6e 74 65 72 72 .129.=>.'Hangup',.130.=>.'Interr
b75a0 75 70 74 27 2c 0a 31 33 31 20 3d 3e 20 27 51 75 69 74 20 61 6e 64 20 64 75 6d 70 20 63 6f 72 65 upt',.131.=>.'Quit.and.dump.core
b75c0 27 2c 0a 31 33 32 20 3d 3e 20 27 49 6c 6c 65 67 61 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 27 2c ',.132.=>.'Illegal.instruction',
b75e0 0a 31 33 33 20 3d 3e 20 27 54 72 61 63 65 2f 62 72 65 61 6b 70 6f 69 6e 74 20 74 72 61 70 27 2c .133.=>.'Trace/breakpoint.trap',
b7600 0a 31 33 34 20 3d 3e 20 27 50 72 6f 63 65 73 73 20 61 62 6f 72 74 65 64 27 2c 0a 31 33 35 20 3d .134.=>.'Process.aborted',.135.=
b7620 3e 20 27 42 75 73 20 65 72 72 6f 72 3a 20 22 61 63 63 65 73 73 20 74 6f 20 75 6e 64 65 66 69 6e >.'Bus.error:."access.to.undefin
b7640 65 64 20 70 6f 72 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 6f 62 6a 65 63 74 22 27 2c 0a 31 ed.portion.of.memory.object"',.1
b7660 33 36 20 3d 3e 20 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 78 63 65 70 74 69 6f 6e 3a 36.=>.'Floating.point.exception:
b7680 20 22 65 72 72 6f 6e 65 6f 75 73 20 61 72 69 74 68 6d 65 74 69 63 20 6f 70 65 72 61 74 69 6f 6e ."erroneous.arithmetic.operation
b76a0 22 27 2c 0a 31 33 37 20 3d 3e 20 27 4b 69 6c 6c 20 28 74 65 72 6d 69 6e 61 74 65 20 69 6d 6d 65 "',.137.=>.'Kill.(terminate.imme
b76c0 64 69 61 74 65 6c 79 29 27 2c 0a 31 33 38 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 diately)',.138.=>.'User-defined.
b76e0 31 27 2c 0a 31 33 39 20 3d 3e 20 27 53 65 67 6d 65 6e 74 61 74 69 6f 6e 20 76 69 6f 6c 61 74 69 1',.139.=>.'Segmentation.violati
b7700 6f 6e 27 2c 0a 31 34 30 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 32 27 2c 0a 31 34 on',.140.=>.'User-defined.2',.14
b7720 31 20 3d 3e 20 27 57 72 69 74 65 20 74 6f 20 70 69 70 65 20 77 69 74 68 20 6e 6f 20 6f 6e 65 20 1.=>.'Write.to.pipe.with.no.one.
b7740 72 65 61 64 69 6e 67 27 2c 0a 31 34 32 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 reading',.142.=>.'Signal.raised.
b7760 62 79 20 61 6c 61 72 6d 27 2c 0a 31 34 33 20 3d 3e 20 27 54 65 72 6d 69 6e 61 74 69 6f 6e 20 28 by.alarm',.143.=>.'Termination.(
b7780 72 65 71 75 65 73 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 29 27 2c 0a 0a 20 31 34 35 20 3d 3e request.to.terminate)',...145.=>
b77a0 20 27 43 68 69 6c 64 20 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 2c 20 73 74 6f 70 .'Child.process.terminated,.stop
b77c0 70 65 64 20 28 6f 72 20 63 6f 6e 74 69 6e 75 65 64 2a 29 27 2c 0a 31 34 36 20 3d 3e 20 27 43 6f ped.(or.continued*)',.146.=>.'Co
b77e0 6e 74 69 6e 75 65 20 69 66 20 73 74 6f 70 70 65 64 27 2c 0a 31 34 37 20 3d 3e 20 27 53 74 6f 70 ntinue.if.stopped',.147.=>.'Stop
b7800 20 65 78 65 63 75 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 69 6c 79 27 2c 0a 31 34 38 20 3d 3e 20 .executing.temporarily',.148.=>.
b7820 27 54 65 72 6d 69 6e 61 6c 20 73 74 6f 70 20 73 69 67 6e 61 6c 27 2c 0a 31 34 39 20 3d 3e 20 27 'Terminal.stop.signal',.149.=>.'
b7840 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f Background.process.attempting.to
b7860 20 72 65 61 64 20 66 72 6f 6d 20 74 74 79 20 28 22 69 6e 22 29 27 2c 0a 31 35 30 20 3d 3e 20 27 .read.from.tty.("in")',.150.=>.'
b7880 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f Background.process.attempting.to
b78a0 20 77 72 69 74 65 20 74 6f 20 74 74 79 20 28 22 6f 75 74 22 29 27 2c 0a 31 35 31 20 3d 3e 20 27 .write.to.tty.("out")',.151.=>.'
b78c0 55 72 67 65 6e 74 20 64 61 74 61 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 73 6f 63 6b 65 74 27 Urgent.data.available.on.socket'
b78e0 2c 0a 31 35 32 20 3d 3e 20 27 43 50 55 20 74 69 6d 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 ,.152.=>.'CPU.time.limit.exceede
b7900 64 27 2c 0a 31 35 33 20 3d 3e 20 27 46 69 6c 65 20 73 69 7a 65 20 6c 69 6d 69 74 20 65 78 63 65 d',.153.=>.'File.size.limit.exce
b7920 65 64 65 64 27 2c 0a 31 35 34 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 eded',.154.=>.'Signal.raised.by.
b7940 74 69 6d 65 72 20 63 6f 75 6e 74 69 6e 67 20 76 69 72 74 75 61 6c 20 74 69 6d 65 3a 20 22 76 69 timer.counting.virtual.time:."vi
b7960 72 74 75 61 6c 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 22 27 2c 0a 31 35 35 20 3d 3e 20 27 50 rtual.timer.expired"',.155.=>.'P
b7980 72 6f 66 69 6c 69 6e 67 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 27 2c 0a 0a 20 31 35 37 20 3d rofiling.timer.expired',...157.=
b79a0 3e 20 27 50 6f 6c 6c 61 62 6c 65 20 65 76 65 6e 74 27 2c 0a 0a 20 31 35 39 20 3d 3e 20 27 42 61 >.'Pollable.event',...159.=>.'Ba
b79c0 64 20 73 79 73 63 61 6c 6c 27 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 d.syscall',.);................pu
b79e0 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 63 6f 6d 6d 61 blic.function.__construct($comma
b7a00 6e 64 6c 69 6e 65 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 6e 76 20 ndline,.$cwd.=.null,.array.$env.
b7a20 3d 20 6e 75 6c 6c 2c 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 74 69 6d 65 6f 75 74 20 =.null,.$input.=.null,.$timeout.
b7a40 3d 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a =.60,.array.$options.=.array()).
b7a60 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 {.if.(!function_exists('proc_ope
b7a80 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f n')).{.throw.new.RuntimeExceptio
b7aa0 6e 28 27 54 68 65 20 50 72 6f 63 65 73 73 20 63 6c 61 73 73 20 72 65 6c 69 65 73 20 6f 6e 20 70 n('The.Process.class.relies.on.p
b7ac0 72 6f 63 5f 6f 70 65 6e 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 roc_open,.which.is.not.available
b7ae0 20 6f 6e 20 79 6f 75 72 20 50 48 50 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 27 29 3b 0a 7d 0a .on.your.PHP.installation.');.}.
b7b00 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 .$this->commandline.=.$commandli
b7b20 6e 65 3b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 ne;.$this->cwd.=.$cwd;..........
b7b40 69 66 20 28 6e 75 6c 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 if.(null.===.$this->cwd.&&.(defi
b7b60 6e 65 64 28 27 5a 45 4e 44 5f 54 48 52 45 41 44 5f 53 41 46 45 27 29 20 7c 7c 20 27 5c 5c 27 20 ned('ZEND_THREAD_SAFE').||.'\\'.
b7b80 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 29 20 7b 0a 24 74 68 69 ===.DIRECTORY_SEPARATOR)).{.$thi
b7ba0 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 3d s->cwd.=.getcwd();.}.if.(null.!=
b7bc0 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 7d =.$env).{.$this->setEnv($env);.}
b7be0 0a 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 73 2d 3e ..$this->input.=.$input;.$this->
b7c00 73 65 74 54 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 setTimeout($timeout);.$this->use
b7c20 46 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 FileHandles.=.'\\'.===.DIRECTORY
b7c40 5f 53 45 50 41 52 41 54 4f 52 3b 0a 24 74 68 69 73 2d 3e 70 74 79 20 3d 20 66 61 6c 73 65 3b 0a _SEPARATOR;.$this->pty.=.false;.
b7c60 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 69 6c 69 $this->enhanceWindowsCompatibili
b7c80 74 79 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c ty.=.true;.$this->enhanceSigchil
b7ca0 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 27 5c 5c 27 20 21 3d 3d 20 44 49 52 45 43 54 dCompatibility.=.'\\'.!==.DIRECT
b7cc0 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 ORY_SEPARATOR.&&.$this->isSigchi
b7ce0 6c 64 45 6e 61 62 6c 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 ldEnabled();.$this->options.=.ar
b7d00 72 61 79 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f ray_replace(array('suppress_erro
b7d20 72 73 27 20 3d 3e 20 74 72 75 65 2c 20 27 62 69 6e 61 72 79 5f 70 69 70 65 73 27 20 3d 3e 20 74 rs'.=>.true,.'binary_pipes'.=>.t
b7d40 72 75 65 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rue),.$options);.}..public.funct
b7d60 69 6f 6e 20 5f 5f 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 6f 70 ion.__destruct().{...$this->stop
b7d80 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 63 6c 6f 6e 65 28 29 ();.}..public.function.__clone()
b7da0 0a 7b 0a 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 7d 0a .{.$this->resetProcessData();.}.
b7dc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ......................public.fun
b7de0 63 74 69 6f 6e 20 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 ction.run($callback.=.null).{.$t
b7e00 68 69 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 his->start($callback);..return.$
b7e20 74 68 69 73 2d 3e 77 61 69 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 this->wait();.}...............pu
b7e40 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 52 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 blic.function.mustRun($callback.
b7e60 3d 20 6e 75 6c 6c 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 45 =.null).{.if.($this->isSigchildE
b7e80 6e 61 62 6c 65 64 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 nabled().&&.!$this->enhanceSigch
b7ea0 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 ildCompatibility).{.throw.new.Ru
b7ec0 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 61 73 20 62 65 65 ntimeException('This.PHP.has.bee
b7ee0 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 69 67 63 68 69 6c n.compiled.with.--enable-sigchil
b7f00 64 2e 20 59 6f 75 20 6d 75 73 74 20 75 73 65 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 d..You.must.use.setEnhanceSigchi
b7f20 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 20 74 6f 20 75 73 65 20 74 68 69 73 20 6d 65 ldCompatibility().to.use.this.me
b7f40 74 68 6f 64 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 75 6e thod.');.}..if.(0.!==.$this->run
b7f60 28 24 63 61 6c 6c 62 61 63 6b 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 ($callback)).{.throw.new.Process
b7f80 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 FailedException($this);.}..retur
b7fa0 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 0a 0a 0a n.$this;.}......................
b7fc0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 ....public.function.start($callb
b7fe0 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 ack.=.null).{.if.($this->isRunni
b8000 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 ng()).{.throw.new.RuntimeExcepti
b8020 6f 6e 28 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 on('Process.is.already.running')
b8040 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 26 26 ;.}.if.($this->outputDisabled.&&
b8060 20 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 .null.!==.$callback).{.throw.new
b8080 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 73 20 62 65 65 6e .LogicException('Output.has.been
b80a0 20 64 69 73 61 62 6c 65 64 2c 20 65 6e 61 62 6c 65 20 69 74 20 74 6f 20 61 6c 6c 6f 77 20 74 68 .disabled,.enable.it.to.allow.th
b80c0 65 20 75 73 65 20 6f 66 20 61 20 63 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 e.use.of.a.callback.');.}..$this
b80e0 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 2d 3e 73 74 61 ->resetProcessData();.$this->sta
b8100 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 69 6d 65 20 3d rttime.=.$this->lastOutputTime.=
b8120 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 6c 6c 62 61 63 .microtime(true);.$this->callbac
b8140 6b 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 k.=.$this->buildCallback($callba
b8160 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 67 65 74 44 65 ck);.$descriptors.=.$this->getDe
b8180 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 3d 20 24 74 68 scriptors();..$commandline.=.$th
b81a0 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 is->commandline;..if.('\\'.===.D
b81c0 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 IRECTORY_SEPARATOR.&&.$this->enh
b81e0 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d anceWindowsCompatibility).{.$com
b8200 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 63 6d 64 20 2f 56 3a 4f 4e 20 2f 45 3a 4f 4e 20 2f 43 20 22 mandline.=.'cmd./V:ON./E:ON./C."
b8220 28 27 2e 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 ('.$commandline.')';.foreach.($t
b8240 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 67 65 74 46 69 6c 65 73 28 29 20 61 73 his->processPipes->getFiles().as
b8260 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 66 69 6c 65 6e 61 6d 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e .$offset.=>.$filename).{.$comman
b8280 64 6c 69 6e 65 20 2e 3d 20 27 20 27 2e 24 6f 66 66 73 65 74 2e 27 3e 27 2e 50 72 6f 63 65 73 73 dline..=.'.'.$offset.'>'.Process
b82a0 55 74 69 6c 73 3a 3a 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 66 69 6c 65 6e 61 6d 65 29 Utils::escapeArgument($filename)
b82c0 3b 0a 7d 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 2e 3d 20 27 22 27 3b 0a 0a 69 66 20 28 21 69 ;.}.$commandline..=.'"';..if.(!i
b82e0 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 73 73 5f 73 68 65 6c sset($this->options['bypass_shel
b8300 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 79 70 61 73 73 5f 73 l'])).{.$this->options['bypass_s
b8320 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 2d 3e 70 72 6f 63 65 hell'].=.true;.}.}..$this->proce
b8340 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 6e 65 2c 20 24 64 65 ss.=.proc_open($commandline,.$de
b8360 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 50 69 70 65 73 2d 3e scriptors,.$this->processPipes->
b8380 70 69 70 65 73 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 74 68 69 73 2d 3e 65 6e 76 2c 20 24 pipes,.$this->cwd,.$this->env,.$
b83a0 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 this->options);..if.(!is_resourc
b83c0 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 e($this->process)).{.throw.new.R
b83e0 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 6c 61 75 6e 63 untimeException('Unable.to.launc
b8400 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 69 73 2d 3e 73 74 61 h.a.new.process.');.}.$this->sta
b8420 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 44 3b 0a 0a 69 66 20 tus.=.self::STATUS_STARTED;..if.
b8440 28 24 74 68 69 73 2d 3e 74 74 79 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d ($this->tty).{.return;.}..$this-
b8460 3e 75 70 64 61 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 >updateStatus(false);.$this->che
b8480 63 6b 54 69 6d 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 ckTimeout();.}.................p
b84a0 75 62 6c 69 63 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 ublic.function.restart($callback
b84c0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 .=.null).{.if.($this->isRunning(
b84e0 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 )).{.throw.new.RuntimeException(
b8500 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 'Process.is.already.running');.}
b8520 0a 0a 24 70 72 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 ..$process.=.clone.$this;.$proce
b8540 73 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 ss->start($callback);..return.$p
b8560 72 6f 63 65 73 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 69 63 rocess;.}.................public
b8580 20 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 .function.wait($callback.=.null)
b85a0 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 .{.$this->requireProcessIsStarte
b85c0 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 d(__FUNCTION__);..$this->updateS
b85e0 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c tatus(false);.if.(null.!==.$call
b8600 62 61 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d back).{.$this->callback.=.$this-
b8620 3e 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 64 6f >buildCallback($callback);.}..do
b8640 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 3b 0a 24 72 75 6e 6e 69 .{.$this->checkTimeout();.$runni
b8660 6e 67 20 3d 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f ng.=.'\\'.===.DIRECTORY_SEPARATO
b8680 52 20 3f 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 3a 20 24 74 68 69 73 2d 3e R.?.$this->isRunning().:.$this->
b86a0 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 61 72 65 4f 70 65 6e 28 29 3b 0a 24 63 6c 6f 73 65 20 processPipes->areOpen();.$close.
b86c0 3d 20 27 5c 5c 27 20 21 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 7c =.'\\'.!==.DIRECTORY_SEPARATOR.|
b86e0 7c 20 21 24 72 75 6e 6e 69 6e 67 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 74 72 |.!$running;.$this->readPipes(tr
b8700 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 6e 67 29 3b ue,.$close);.}.while.($running);
b8720 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 20 7b 0a 75 ..while.($this->isRunning()).{.u
b8740 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 72 6f 63 65 sleep(1000);.}..if.($this->proce
b8760 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 24 74 68 ssInformation['signaled'].&&.$th
b8780 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 73 69 67 27 is->processInformation['termsig'
b87a0 5d 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 74 65 73 74 53 69 67 6e 61 6c 29 20 7b 0a 74 68 72 ].!==.$this->latestSignal).{.thr
b87c0 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 70 72 69 6e 74 66 28 ow.new.RuntimeException(sprintf(
b87e0 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 6e 61 6c 65 64 20 77 'The.process.has.been.signaled.w
b8800 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 3e 70 72 6f 63 65 73 ith.signal."%s".',.$this->proces
b8820 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 3b 0a 7d 0a 0a 72 65 sInformation['termsig']));.}..re
b8840 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$this->exitcode;.}.........
b8860 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 7b 0a 69 66 20 28 24 public.function.getPid().{.if.($
b8880 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 7b 0a 74 68 72 this->isSigchildEnabled()).{.thr
b88a0 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 69 73 20 50 48 ow.new.RuntimeException('This.PH
b88c0 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 65 6e 61 62 6c P.has.been.compiled.with.--enabl
b88e0 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 64 65 6e 74 69 66 69 e-sigchild..The.process.identifi
b8900 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 29 3b 0a 7d 0a 0a 24 er.can.not.be.retrieved.');.}..$
b8920 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 72 65 74 75 this->updateStatus(false);..retu
b8940 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 74 68 69 73 2d 3e 70 rn.$this->isRunning().?.$this->p
b8960 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 3a 20 6e 75 6c 6c 3b rocessInformation['pid'].:.null;
b8980 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 .}.............public.function.s
b89a0 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 53 69 67 6e 61 6c ignal($signal).{.$this->doSignal
b89c0 28 24 73 69 67 6e 61 6c 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a ($signal,.true);..return.$this;.
b89e0 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 69 73 61 62 }..........public.function.disab
b8a00 6c 65 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e leOutput().{.if.($this->isRunnin
b8a20 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f g()).{.throw.new.RuntimeExceptio
b8a40 6e 28 27 44 69 73 61 62 6c 69 6e 67 20 6f 75 74 70 75 74 20 77 68 69 6c 65 20 74 68 65 20 70 72 n('Disabling.output.while.the.pr
b8a60 6f 63 65 73 73 20 69 73 20 72 75 6e 6e 69 6e 67 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 ocess.is.running.is.not.possible
b8a80 2e 27 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 .');.}.if.(null.!==.$this->idleT
b8aa0 69 6d 65 6f 75 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 imeout).{.throw.new.LogicExcepti
b8ac0 6f 6e 28 27 4f 75 74 70 75 74 20 63 61 6e 20 6e 6f 74 20 62 65 20 64 69 73 61 62 6c 65 64 20 77 on('Output.can.not.be.disabled.w
b8ae0 68 69 6c 65 20 61 6e 20 69 64 6c 65 20 74 69 6d 65 6f 75 74 20 69 73 20 73 65 74 2e 27 29 3b 0a hile.an.idle.timeout.is.set.');.
b8b00 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b }..$this->outputDisabled.=.true;
b8b20 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ..return.$this;.}.........public
b8b40 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 24 .function.enableOutput().{.if.($
b8b60 74 68 69 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 52 this->isRunning()).{.throw.new.R
b8b80 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 6e 61 62 6c 69 6e 67 20 6f 75 74 70 75 74 untimeException('Enabling.output
b8ba0 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 73 20 72 75 6e 6e 69 6e 67 20 69 73 .while.the.process.is.running.is
b8bc0 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 .not.possible.');.}..$this->outp
b8be0 75 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 utDisabled.=.false;..return.$thi
b8c00 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 4f 75 74 s;.}.......public.function.isOut
b8c20 70 75 74 44 69 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 putDisabled().{.return.$this->ou
b8c40 74 70 75 74 44 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tputDisabled;.}............publi
b8c60 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 69 66 20 28 24 74 68 c.function.getOutput().{.if.($th
b8c80 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 is->outputDisabled).{.throw.new.
b8ca0 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 73 20 62 65 65 6e 20 LogicException('Output.has.been.
b8cc0 64 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 disabled.');.}..$this->requirePr
b8ce0 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 ocessIsStarted(__FUNCTION__);..$
b8d00 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 66 61 6c 73 65 2c 20 27 5c 5c 27 20 3d 3d 3d 20 this->readPipes(false,.'\\'.===.
b8d20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3f 20 21 24 74 68 69 73 2d 3e 70 72 DIRECTORY_SEPARATOR.?.!$this->pr
b8d40 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3a 20 74 72 ocessInformation['running'].:.tr
b8d60 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 0a 7d 0a 0a 0a ue);..return.$this->stdout;.}...
b8d80 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 6e 63 ..........public.function.getInc
b8da0 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 rementalOutput().{.$this->requir
b8dc0 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b eProcessIsStarted(__FUNCTION__);
b8de0 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 0a 24 ..$data.=.$this->getOutput();..$
b8e00 6c 61 74 65 73 74 20 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e latest.=.substr($data,.$this->in
b8e20 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 29 3b 0a 0a 69 66 20 28 66 61 6c crementalOutputOffset);..if.(fal
b8e40 73 65 20 3d 3d 3d 20 24 6c 61 74 65 73 74 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a se.===.$latest).{.return.'';.}..
b8e60 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 20 3d $this->incrementalOutputOffset.=
b8e80 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b .strlen($data);..return.$latest;
b8ea0 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 65 61 72 4f 75 .}.......public.function.clearOu
b8ec0 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 27 27 3b 0a 24 74 68 tput().{.$this->stdout.=.'';.$th
b8ee0 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 20 3d 20 30 3b is->incrementalOutputOffset.=.0;
b8f00 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 70 75 62 ..return.$this;.}............pub
b8f20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a lic.function.getErrorOutput().{.
b8f40 69 66 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 20 7b 0a 74 68 72 if.($this->outputDisabled).{.thr
b8f60 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 ow.new.LogicException('Output.ha
b8f80 73 20 62 65 65 6e 20 64 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 s.been.disabled.');.}..$this->re
b8fa0 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e quireProcessIsStarted(__FUNCTION
b8fc0 5f 5f 29 3b 0a 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 27 5c __);..$this->readPipes(false,.'\
b8fe0 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3f 20 21 24 74 \'.===.DIRECTORY_SEPARATOR.?.!$t
b9000 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 6e 67 his->processInformation['running
b9020 27 5d 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 65 72 '].:.true);..return.$this->stder
b9040 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f r;.}..............public.functio
b9060 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 75 74 28 29 0a 7b 0a n.getIncrementalErrorOutput().{.
b9080 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f $this->requireProcessIsStarted(_
b90a0 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 _FUNCTION__);..$data.=.$this->ge
b90c0 74 45 72 72 6f 72 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 74 tErrorOutput();..$latest.=.subst
b90e0 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 45 72 72 6f 72 r($data,.$this->incrementalError
b9100 4f 75 74 70 75 74 4f 66 66 73 65 74 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6c OutputOffset);..if.(false.===.$l
b9120 61 74 65 73 74 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e atest).{.return.'';.}..$this->in
b9140 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 20 3d 20 73 74 72 crementalErrorOutputOffset.=.str
b9160 6c 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a len($data);..return.$latest;.}..
b9180 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 72 45 72 72 6f 72 4f .....public.function.clearErrorO
b91a0 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 27 27 3b 0a 24 74 utput().{.$this->stderr.=.'';.$t
b91c0 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 66 73 65 his->incrementalErrorOutputOffse
b91e0 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 0a 0a 0a 0a 0a t.=.0;..return.$this;.}.........
b9200 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a ..public.function.getExitCode().
b9220 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()
b9240 20 26 26 20 21 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 .&&.!$this->enhanceSigchildCompa
b9260 74 69 62 69 6c 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 tibility).{.throw.new.RuntimeExc
b9280 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 6c eption('This.PHP.has.been.compil
b92a0 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 59 6f 75 20 6d ed.with.--enable-sigchild..You.m
b92c0 75 73 74 20 75 73 65 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 ust.use.setEnhanceSigchildCompat
b92e0 69 62 69 6c 69 74 79 28 29 20 74 6f 20 75 73 65 20 74 68 69 73 20 6d 65 74 68 6f 64 2e 27 29 3b ibility().to.use.this.method.');
b9300 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 3b 0a .}..$this->updateStatus(false);.
b9320 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->exitcode;.}......
b9340 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 45 78 69 74 .........public.function.getExit
b9360 43 6f 64 65 54 65 78 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 65 78 69 74 63 CodeText().{.if.(null.===.$exitc
b9380 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 29 20 7b 0a 72 65 ode.=.$this->getExitCode()).{.re
b93a0 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 turn;.}..return.isset(self::$exi
b93c0 74 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 tCodes[$exitcode]).?.self::$exit
b93e0 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f Codes[$exitcode].:.'Unknown.erro
b9400 72 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 r';.}.........public.function.is
b9420 53 75 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 74 68 69 Successful().{.return.0.===.$thi
b9440 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->getExitCode();.}.............
b9460 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 .public.function.hasBeenSignaled
b9480 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 54 65 72 6d ().{.$this->requireProcessIsTerm
b94a0 69 6e 61 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 inated(__FUNCTION__);..if.($this
b94c0 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 6e ->isSigchildEnabled()).{.throw.n
b94e0 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 61 ew.RuntimeException('This.PHP.ha
b9500 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 69 s.been.compiled.with.--enable-si
b9520 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 72 gchild..Term.signal.can.not.be.r
b9540 65 74 72 69 65 76 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 etrieved.');.}..$this->updateSta
b9560 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
b9580 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'];.}....
b95a0 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 54 65 72 ..........public.function.getTer
b95c0 6d 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 mSignal().{.$this->requireProces
b95e0 73 49 73 54 65 72 6d 69 6e 61 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 69 66 sIsTerminated(__FUNCTION__);..if
b9600 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 7b 0a .($this->isSigchildEnabled()).{.
b9620 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 69 73 throw.new.RuntimeException('This
b9640 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 65 6e .PHP.has.been.compiled.with.--en
b9660 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e able-sigchild..Term.signal.can.n
b9680 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 ot.be.retrieved.');.}..$this->up
b96a0 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 24 74 68 69 73 dateStatus(false);..return.$this
b96c0 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 73 69 67 27 5d 3b ->processInformation['termsig'];
b96e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 .}.............public.function.h
b9700 61 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 asBeenStopped().{.$this->require
b9720 50 72 6f 63 65 73 73 49 73 54 65 72 6d 69 6e 61 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f ProcessIsTerminated(__FUNCTION__
b9740 29 3b 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 );..$this->updateStatus(false);.
b9760 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f .return.$this->processInformatio
b9780 6e 5b 27 73 74 6f 70 70 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c n['stopped'];.}.............publ
b97a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 ic.function.getStopSignal().{.$t
b97c0 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 54 65 72 6d 69 6e 61 74 65 64 28 his->requireProcessIsTerminated(
b97e0 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 __FUNCTION__);..$this->updateSta
b9800 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
b9820 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 0a 0a 0a 0a ssInformation['stopsig'];.}.....
b9840 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 29 0a 7b 0a ..public.function.isRunning().{.
b9860 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 20 24 74 68 if.(self::STATUS_STARTED.!==.$th
b9880 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 7d 0a 0a 24 is->status).{.return.false;.}..$
b98a0 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 72 65 74 75 this->updateStatus(false);..retu
b98c0 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 rn.$this->processInformation['ru
b98e0 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 74 69 6f 6e nning'];.}.......public.function
b9900 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 3e 73 74 61 .isStarted().{.return.$this->sta
b9920 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 0a 0a 0a 0a tus.!=.self::STATUS_READY;.}....
b9940 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 74 65 64 28 ...public.function.isTerminated(
b9960 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 65 29 3b 0a ).{.$this->updateStatus(false);.
b9980 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 66 3a 3a 53 .return.$this->status.==.self::S
b99a0 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 70 75 62 6c TATUS_TERMINATED;.}.........publ
b99c0 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 68 69 73 2d ic.function.getStatus().{.$this-
b99e0 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 24 74 >updateStatus(false);..return.$t
b9a00 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 62 6c 69 63 his->status;.}............public
b9a20 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 2c 20 24 73 .function.stop($timeout.=.10,.$s
b9a40 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 6f 20 3d 20 ignal.=.null).{.$timeoutMicro.=.
b9a60 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 69 66 20 28 microtime(true).+.$timeout;.if.(
b9a80 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 69 66 20 28 27 5c 5c 27 20 3d $this->isRunning()).{.if.('\\'.=
b9aa0 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 26 26 20 21 24 74 68 69 73 ==.DIRECTORY_SEPARATOR.&&.!$this
b9ac0 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 65 78 65 63 28 73 70 ->isSigchildEnabled()).{.exec(sp
b9ae0 72 69 6e 74 66 28 22 74 61 73 6b 6b 69 6c 6c 20 2f 46 20 2f 54 20 2f 50 49 44 20 25 64 20 32 3e rintf("taskkill./F./T./PID.%d.2>
b9b00 26 31 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 69 64 28 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 &1",.$this->getPid()),.$output,.
b9b20 24 65 78 69 74 43 6f 64 65 29 3b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 20 3e 20 30 29 20 7b $exitCode);.if.($exitCode.>.0).{
b9b40 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 55 6e 61 .throw.new.RuntimeException('Una
b9b60 62 6c 65 20 74 6f 20 6b 69 6c 6c 20 74 68 65 20 70 72 6f 63 65 73 73 27 29 3b 0a 7d 0a 7d 0a 0a ble.to.kill.the.process');.}.}..
b9b80 20 24 74 68 69 73 2d 3e 64 6f 53 69 67 6e 61 6c 28 31 35 2c 20 66 61 6c 73 65 29 3b 0a 64 6f 20 .$this->doSignal(15,.false);.do.
b9ba0 7b 0a 75 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 {.usleep(1000);.}.while.($this->
b9bc0 69 73 52 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 isRunning().&&.microtime(true).<
b9be0 20 24 74 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 .$timeoutMicro);..if.($this->isR
b9c00 75 6e 6e 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 unning().&&.!$this->isSigchildEn
b9c20 61 62 6c 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 abled()).{.if.(null.!==.$signal.
b9c40 7c 7c 20 64 65 66 69 6e 65 64 28 27 53 49 47 4b 49 4c 4c 27 29 29 20 7b 0a 0a 20 0a 20 0a 20 0a ||.defined('SIGKILL')).{........
b9c60 20 24 74 68 69 73 2d 3e 64 6f 53 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 20 3f 3a 20 53 49 47 4b .$this->doSignal($signal.?:.SIGK
b9c80 49 4c 4c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 ILL,.false);.}.}.}..$this->updat
b9ca0 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 eStatus(false);.if.($this->proce
b9cc0 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 74 68 69 ssInformation['running']).{.$thi
b9ce0 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 s->close();.}..return.$this->exi
b9d00 74 63 6f 64 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 61 tcode;.}.......public.function.a
b9d20 64 64 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 ddOutput($line).{.$this->lastOut
b9d40 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 3b 0a 24 74 68 69 73 putTime.=.microtime(true);.$this
b9d60 2d 3e 73 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ->stdout..=.$line;.}.......publi
b9d80 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 c.function.addErrorOutput($line)
b9da0 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 6d 69 63 72 6f .{.$this->lastOutputTime.=.micro
b9dc0 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 6c 69 time(true);.$this->stderr..=.$li
b9de0 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 20 67 65 74 43 ne;.}.......public.function.getC
b9e00 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d ommandLine().{.return.$this->com
b9e20 6d 61 6e 64 6c 69 6e 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 mandline;.}.........public.funct
b9e40 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 29 ion.setCommandLine($commandline)
b9e60 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 .{.$this->commandline.=.$command
b9e80 6c 69 6e 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 line;..return.$this;.}.......pub
b9ea0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 lic.function.getTimeout().{.retu
b9ec0 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rn.$this->timeout;.}.......publi
b9ee0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 c.function.getIdleTimeout().{.re
b9f00 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a turn.$this->idleTimeout;.}......
b9f20 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 .......public.function.setTimeou
b9f40 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 t($timeout).{.$this->timeout.=.$
b9f60 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b this->validateTimeout($timeout);
b9f80 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 70 ..return.$this;.}..............p
b9fa0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 24 74 ublic.function.setIdleTimeout($t
b9fc0 69 6d 65 6f 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 69 6d 65 6f 75 74 20 imeout).{.if.(null.!==.$timeout.
b9fe0 26 26 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 20 7b 0a 74 68 72 6f &&.$this->outputDisabled).{.thro
ba000 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 49 64 6c 65 20 74 69 6d 65 6f w.new.LogicException('Idle.timeo
ba020 75 74 20 63 61 6e 20 6e 6f 74 20 62 65 20 73 65 74 20 77 68 69 6c 65 20 74 68 65 20 6f 75 74 70 ut.can.not.be.set.while.the.outp
ba040 75 74 20 69 73 20 64 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 64 6c ut.is.disabled.');.}..$this->idl
ba060 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 65 54 69 6d 65 6f 75 eTimeout.=.$this->validateTimeou
ba080 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 73 3b 0a 7d 0a 0a 0a t($timeout);..return.$this;.}...
ba0a0 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 54 74 79 28 24 ........public.function.setTty($
ba0c0 74 74 79 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 tty).{.if.('\\'.===.DIRECTORY_SE
ba0e0 50 41 52 41 54 4f 52 20 26 26 20 24 74 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e PARATOR.&&.$tty).{.throw.new.Run
ba100 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 54 59 20 6d 6f 64 65 20 69 73 20 6e 6f 74 20 73 timeException('TTY.mode.is.not.s
ba120 75 70 70 6f 72 74 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 20 70 6c 61 74 66 6f 72 6d 2e 27 29 3b upported.on.Windows.platform.');
ba140 0a 7d 0a 69 66 20 28 24 74 74 79 20 26 26 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 64 .}.if.($tty.&&.(!file_exists('/d
ba160 65 76 2f 74 74 79 27 29 20 7c 7c 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 27 2f 64 65 76 2f 74 ev/tty').||.!is_readable('/dev/t
ba180 74 79 27 29 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 ty'))).{.throw.new.RuntimeExcept
ba1a0 69 6f 6e 28 27 54 54 59 20 6d 6f 64 65 20 72 65 71 75 69 72 65 73 20 2f 64 65 76 2f 74 74 79 20 ion('TTY.mode.requires./dev/tty.
ba1c0 74 6f 20 62 65 20 72 65 61 64 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 74 79 to.be.readable.');.}..$this->tty
ba1e0 20 3d 20 28 62 6f 6f 6c 29 20 24 74 74 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d .=.(bool).$tty;..return.$this;.}
ba200 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 74 79 28 29 0a 7b .......public.function.isTty().{
ba220 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .return.$this->tty;.}.........pu
ba240 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 74 79 28 24 62 6f 6f 6c 29 0a 7b 0a 24 74 blic.function.setPty($bool).{.$t
ba260 68 69 73 2d 3e 70 74 79 20 3d 20 28 62 6f 6f 6c 29 20 24 62 6f 6f 6c 3b 0a 0a 72 65 74 75 72 6e his->pty.=.(bool).$bool;..return
ba280 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.
ba2a0 69 73 50 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 74 79 3b 0a 7d 0a 0a isPty().{.return.$this->pty;.}..
ba2c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 6f 72 6b 69 6e 67 44 .....public.function.getWorkingD
ba2e0 69 72 65 63 74 6f 72 79 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d irectory().{.if.(null.===.$this-
ba300 3e 63 77 64 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 67 65 74 63 77 64 28 29 20 3f 3a 20 6e >cwd).{.....return.getcwd().?:.n
ba320 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 77 64 3b 0a 7d 0a 0a 0a 0a ull;.}..return.$this->cwd;.}....
ba340 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 .....public.function.setWorkingD
ba360 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 irectory($cwd).{.$this->cwd.=.$c
ba380 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 wd;..return.$this;.}.......publi
ba3a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 c.function.getEnv().{.return.$th
ba3c0 69 73 2d 3e 65 6e 76 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 is->env;.}...............public.
ba3e0 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 61 72 72 61 79 20 24 65 6e 76 29 0a 7b 0a 0a 20 function.setEnv(array.$env).{...
ba400 24 65 6e 76 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 65 6e 76 2c 20 66 75 6e 63 74 69 $env.=.array_filter($env,.functi
ba420 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 21 69 73 5f 61 72 72 61 79 28 24 on.($value).{.return.!is_array($
ba440 76 61 6c 75 65 29 3b 0a 7d 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 28 value);.});..$this->env.=.array(
ba460 29 3b 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 );.foreach.($env.as.$key.=>.$val
ba480 75 65 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 ue).{.$this->env[(binary).$key].
ba4a0 3d 20 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 =.(binary).$value;.}..return.$th
ba4c0 69 73 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 67 is;.}..........public.function.g
ba4e0 65 74 53 74 64 69 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 etStdin().{.return.$this->getInp
ba500 75 74 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 67 65 ut();.}.......public.function.ge
ba520 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 0a tInput().{.return.$this->input;.
ba540 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 69 6f 6e 20 }...............public.function.
ba560 73 65 74 53 74 64 69 6e 28 24 73 74 64 69 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d setStdin($stdin).{.return.$this-
ba580 3e 73 65 74 49 6e 70 75 74 28 24 73 74 64 69 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a >setInput($stdin);.}............
ba5a0 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 69 6e 70 75 74 .public.function.setInput($input
ba5c0 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 74 68 ).{.if.($this->isRunning()).{.th
ba5e0 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 70 75 74 20 63 61 row.new.LogicException('Input.ca
ba600 6e 20 6e 6f 74 20 62 65 20 73 65 74 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 n.not.be.set.while.the.process.i
ba620 73 20 72 75 6e 6e 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 s.running.');.}..$this->input.=.
ba640 50 72 6f 63 65 73 73 55 74 69 6c 73 3a 3a 76 61 6c 69 64 61 74 65 49 6e 70 75 74 28 73 70 72 69 ProcessUtils::validateInput(spri
ba660 6e 74 66 28 27 25 73 3a 3a 25 73 27 2c 20 5f 5f 43 4c 41 53 53 5f 5f 2c 20 5f 5f 46 55 4e 43 54 ntf('%s::%s',.__CLASS__,.__FUNCT
ba680 49 4f 4e 5f 5f 29 2c 20 24 69 6e 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a ION__),.$input);..return.$this;.
ba6a0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f }.......public.function.getOptio
ba6c0 6e 73 28 29 0a 7b 0a 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 ns().{.return.$this->options;.}.
ba6e0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f ........public.function.setOptio
ba700 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 ns(array.$options).{.$this->opti
ba720 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ons.=.$options;..return.$this;.}
ba740 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 45 6e 68 61 .........public.function.getEnha
ba760 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 nceWindowsCompatibility().{.retu
ba780 72 6e 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 rn.$this->enhanceWindowsCompatib
ba7a0 69 6c 69 74 79 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 ility;.}.........public.function
ba7c0 20 73 65 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 .setEnhanceWindowsCompatibility(
ba7e0 24 65 6e 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 $enhance).{.$this->enhanceWindow
ba800 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 68 61 6e 63 65 sCompatibility.=.(bool).$enhance
ba820 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 20 ;..return.$this;.}.......public.
ba840 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 function.getEnhanceSigchildCompa
ba860 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e tibility().{.return.$this->enhan
ba880 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a ceSigchildCompatibility;.}......
ba8a0 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 68 61 6e 63 .......public.function.setEnhanc
ba8c0 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 65 6e 68 61 6e 63 65 29 eSigchildCompatibility($enhance)
ba8e0 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 .{.$this->enhanceSigchildCompati
ba900 62 69 6c 69 74 79 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 68 61 6e 63 65 3b 0a 0a 72 65 74 75 72 bility.=.(bool).$enhance;..retur
ba920 6e 20 24 74 68 69 73 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 n.$this;.}..........public.funct
ba940 69 6f 6e 20 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e ion.checkTimeout().{.if.($this->
ba960 73 74 61 74 75 73 20 21 3d 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 29 status.!==.self::STATUS_STARTED)
ba980 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 .{.return;.}..if.(null.!==.$this
ba9a0 2d 3e 74 69 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 ->timeout.&&.$this->timeout.<.mi
ba9c0 63 72 6f 74 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 crotime(true).-.$this->starttime
ba9e0 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 50 ).{.$this->stop(0);..throw.new.P
baa00 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 50 rocessTimedOutException($this,.P
baa20 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 47 45 rocessTimedOutException::TYPE_GE
baa40 4e 45 52 41 4c 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 69 NERAL);.}..if.(null.!==.$this->i
baa60 64 6c 65 54 69 6d 65 6f 75 74 20 26 26 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 dleTimeout.&&.$this->idleTimeout
baa80 20 3c 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 6c 61 73 74 .<.microtime(true).-.$this->last
baaa0 4f 75 74 70 75 74 54 69 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 OutputTime).{.$this->stop(0);..t
baac0 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f hrow.new.ProcessTimedOutExceptio
baae0 6e 28 24 74 68 69 73 2c 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f n($this,.ProcessTimedOutExceptio
bab00 6e 3a 3a 54 59 50 45 5f 49 44 4c 45 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n::TYPE_IDLE);.}.}.......public.
bab20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 74 79 53 75 70 70 6f 72 74 65 64 28 29 static.function.isPtySupported()
bab40 0a 7b 0a 73 74 61 74 69 63 20 24 72 65 73 75 6c 74 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d .{.static.$result;..if.(null.!==
bab60 20 24 72 65 73 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 .$result).{.return.$result;.}..i
bab80 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 f.('\\'.===.DIRECTORY_SEPARATOR)
baba0 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 .{.return.$result.=.false;.}..$p
babc0 72 6f 63 20 3d 20 40 70 72 6f 63 5f 6f 70 65 6e 28 27 65 63 68 6f 20 31 27 2c 20 61 72 72 61 79 roc.=.@proc_open('echo.1',.array
babe0 28 61 72 72 61 79 28 27 70 74 79 27 29 2c 20 61 72 72 61 79 28 27 70 74 79 27 29 2c 20 61 72 72 (array('pty'),.array('pty'),.arr
bac00 61 79 28 27 70 74 79 27 29 29 2c 20 24 70 69 70 65 73 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f ay('pty')),.$pipes);.if.(is_reso
bac20 75 72 63 65 28 24 70 72 6f 63 29 29 20 7b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 29 urce($proc)).{.proc_close($proc)
bac40 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 ;..return.$result.=.true;.}..ret
bac60 75 72 6e 20 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 urn.$result.=.false;.}.......pri
bac80 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a 7b vate.function.getDescriptors().{
baca0 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f .if.('\\'.===.DIRECTORY_SEPARATO
bacc0 52 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 20 3d 20 57 69 6e 64 6f R).{.$this->processPipes.=.Windo
bace0 77 73 50 69 70 65 73 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 2c 20 24 74 68 69 73 2d 3e 69 6e wsPipes::create($this,.$this->in
bad00 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 put);.}.else.{.$this->processPip
bad20 65 73 20 3d 20 55 6e 69 78 50 69 70 65 73 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 2c 20 24 74 es.=.UnixPipes::create($this,.$t
bad40 68 69 73 2d 3e 69 6e 70 75 74 29 3b 0a 7d 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 24 74 his->input);.}.$descriptors.=.$t
bad60 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 70 74 6f 72 his->processPipes->getDescriptor
bad80 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 3b 0a 0a 69 66 20 28 21 s($this->outputDisabled);..if.(!
bada0 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 20 26 26 20 24 74 68 69 73 2d 3e $this->useFileHandles.&&.$this->
badc0 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 26 26 20 enhanceSigchildCompatibility.&&.
bade0 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 7b 0a 0a 20 $this->isSigchildEnabled()).{...
bae00 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 64 65 73 63 $descriptors.=.array_merge($desc
bae20 72 69 70 74 6f 72 73 2c 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 riptors,.array(array('pipe',.'w'
bae40 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 28 27 2e 24 )));..$this->commandline.=.'('.$
bae60 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 20 33 3e 2f 64 65 76 2f 6e 75 6c 6c this->commandline.').3>/dev/null
bae80 3b 20 63 6f 64 65 3d 24 3f 3b 20 65 63 68 6f 20 24 63 6f 64 65 20 3e 26 33 3b 20 65 78 69 74 20 ;.code=$?;.echo.$code.>&3;.exit.
baea0 24 63 6f 64 65 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 73 3b 0a $code';.}..return.$descriptors;.
baec0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 }............protected.function.
baee0 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 61 74 buildCallback($callback).{.$that
baf00 20 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 3b 0a 24 63 61 6c .=.$this;.$out.=.self::OUT;.$cal
baf20 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 20 lback.=.function.($type,.$data).
baf40 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 29 20 7b 0a 69 use.($that,.$callback,.$out).{.i
baf60 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 2d 3e 61 64 64 4f 75 f.($out.==.$type).{.$that->addOu
baf80 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 61 74 2d 3e 61 64 64 tput($data);.}.else.{.$that->add
bafa0 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 20 28 6e 75 6c 6c 20 ErrorOutput($data);.}..if.(null.
bafc0 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 72 5f 66 75 6e 63 28 !==.$callback).{.call_user_func(
bafe0 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 0a 7d 0a 7d 3b 0a 0a $callback,.$type,.$data);.}.};..
bb000 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 0a 70 72 6f 74 65 63 return.$callback;.}.......protec
bb020 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 28 24 62 6c 6f 63 6b ted.function.updateStatus($block
bb040 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 54 41 52 54 45 44 20 ing).{.if.(self::STATUS_STARTED.
bb060 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a !==.$this->status).{.return;.}..
bb080 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 70 72 6f 63 $this->processInformation.=.proc
bb0a0 5f 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 68 _get_status($this->process);.$th
bb0c0 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 74 68 69 73 2d 3e 72 is->captureExitCode();..$this->r
bb0e0 65 61 64 50 69 70 65 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 eadPipes($blocking,.'\\'.===.DIR
bb100 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3f 20 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 ECTORY_SEPARATOR.?.!$this->proce
bb120 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3a 20 74 72 75 65 29 ssInformation['running'].:.true)
bb140 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f ;..if.(!$this->processInformatio
bb160 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a n['running']).{.$this->close();.
bb180 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 }.}.......protected.function.isS
bb1a0 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 igchildEnabled().{.if.(null.!==.
bb1c0 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a self::$sigchild).{.return.self::
bb1e0 24 73 69 67 63 68 69 6c 64 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 $sigchild;.}..if.(!function_exis
bb200 74 73 28 27 70 68 70 69 6e 66 6f 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 ts('phpinfo')).{.return.self::$s
bb220 69 67 63 68 69 6c 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a igchild.=.false;.}..ob_start();.
bb240 70 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 0a 72 65 74 75 72 6e 20 73 phpinfo(INFO_GENERAL);..return.s
bb260 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f elf::$sigchild.=.false.!==.strpo
bb280 73 28 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 s(ob_get_clean(),.'--enable-sigc
bb2a0 68 69 6c 64 27 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 hild');.}...........private.func
bb2c0 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b tion.validateTimeout($timeout).{
bb2e0 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 69 .$timeout.=.(float).$timeout;..i
bb300 66 20 28 30 2e 30 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 29 20 7b 0a 24 74 69 6d 65 6f 75 74 20 f.(0.0.===.$timeout).{.$timeout.
bb320 3d 20 6e 75 6c 6c 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 =.null;.}.elseif.($timeout.<.0).
bb340 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 {.throw.new.InvalidArgumentExcep
bb360 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 tion('The.timeout.value.must.be.
bb380 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 20 6f 72 20 66 6c 6f 61 a.valid.positive.integer.or.floa
bb3a0 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 69 6d 65 6f 75 74 3b t.number.');.}..return.$timeout;
bb3c0 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 72 65 61 64 50 .}........private.function.readP
bb3e0 69 70 65 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 29 0a 7b 0a 24 72 65 73 75 6c ipes($blocking,.$close).{.$resul
bb400 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 61 64 41 6e 64 t.=.$this->processPipes->readAnd
bb420 57 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 29 3b 0a 0a 24 63 61 6c 6c Write($blocking,.$close);..$call
bb440 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 3b 0a 66 6f 72 65 61 63 68 20 back.=.$this->callback;.foreach.
bb460 28 24 72 65 73 75 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 ($result.as.$type.=>.$data).{.if
bb480 20 28 33 20 3d 3d 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 .(3.==.$type).{.$this->fallbackE
bb4a0 78 69 74 63 6f 64 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 xitcode.=.(int).$data;.}.else.{.
bb4c0 24 63 61 6c 6c 62 61 63 6b 28 24 74 79 70 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 54 44 4f 55 54 $callback($type.===.self::STDOUT
bb4e0 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 .?.self::OUT.:.self::ERR,.$data)
bb500 3b 0a 7d 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 63 61 70 ;.}.}.}.....private.function.cap
bb520 74 75 72 65 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 tureExitCode().{.if.(isset($this
bb540 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']
bb560 29 20 26 26 20 2d 31 20 21 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 ).&&.-1.!=.$this->processInforma
bb580 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 tion['exitcode']).{.$this->exitc
bb5a0 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b ode.=.$this->processInformation[
bb5c0 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 'exitcode'];.}.}.......private.f
bb5e0 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 unction.close().{.$this->process
bb600 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 28 Pipes->close();.if.(is_resource(
bb620 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 70 $this->process)).{.$exitcode.=.p
bb640 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 20 65 6c 73 roc_close($this->process);.}.els
bb660 65 20 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 78 e.{.$exitcode.=.-1;.}..$this->ex
bb680 69 74 63 6f 64 65 20 3d 20 2d 31 20 21 3d 3d 20 24 65 78 69 74 63 6f 64 65 20 3f 20 24 65 78 69 itcode.=.-1.!==.$exitcode.?.$exi
bb6a0 74 63 6f 64 65 20 3a 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 tcode.:.(null.!==.$this->exitcod
bb6c0 65 20 3f 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3a 20 2d 31 29 3b 0a 24 74 68 69 73 e.?.$this->exitcode.:.-1);.$this
bb6e0 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
bb700 45 44 3b 0a 0a 69 66 20 28 2d 31 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 ED;..if.(-1.===.$this->exitcode.
bb720 26 26 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 &&.null.!==.$this->fallbackExitc
bb740 6f 64 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 ode).{.$this->exitcode.=.$this->
bb760 66 61 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 fallbackExitcode;.}.elseif.(-1.=
bb780 3d 3d 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 ==.$this->exitcode.&&.$this->pro
bb7a0 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 20 26 26 20 30 cessInformation['signaled'].&&.0
bb7c0 20 3c 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
bb7e0 72 6d 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 rmsig']).{...$this->exitcode.=.1
bb800 32 38 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 28.+.$this->processInformation['
bb820 74 65 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 termsig'];.}..return.$this->exit
bb840 63 6f 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 code;.}.....private.function.res
bb860 65 74 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 etProcessData().{.$this->startti
bb880 6d 65 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 me.=.null;.$this->callback.=.nul
bb8a0 6c 3b 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 l;.$this->exitcode.=.null;.$this
bb8c0 2d 3e 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 ->fallbackExitcode.=.null;.$this
bb8e0 2d 3e 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 ->processInformation.=.null;.$th
bb900 69 73 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 is->stdout.=.null;.$this->stderr
bb920 20 3d 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 .=.null;.$this->process.=.null;.
bb940 24 74 68 69 73 2d 3e 6c 61 74 65 73 74 53 69 67 6e 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 $this->latestSignal.=.null;.$thi
bb960 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a s->status.=.self::STATUS_READY;.
bb980 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 20 3d $this->incrementalOutputOffset.=
bb9a0 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 70 75 .0;.$this->incrementalErrorOutpu
bb9c0 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 tOffset.=.0;.}..............priv
bb9e0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 53 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 2c 20 24 ate.function.doSignal($signal,.$
bba00 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 throwException).{.if.(!$this->is
bba20 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 69 66 20 28 24 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e Running()).{.if.($throwException
bba40 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 ).{.throw.new.LogicException('Ca
bba60 6e 20 6e 6f 74 20 73 65 6e 64 20 73 69 67 6e 61 6c 20 6f 6e 20 61 20 6e 6f 6e 20 72 75 6e 6e 69 n.not.send.signal.on.a.non.runni
bba80 6e 67 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a ng.process.');.}..return.false;.
bbaa0 7d 0a 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 }..if.($this->isSigchildEnabled(
bbac0 29 29 20 7b 0a 69 66 20 28 24 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f )).{.if.($throwException).{.thro
bbae0 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
bbb00 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
bbb20 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 20 6e 6f 74 20 62 -sigchild..The.process.can.not.b
bbb40 65 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a e.signaled.');.}..return.false;.
bbb60 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 40 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 }..if.(true.!==.@proc_terminate(
bbb80 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 73 69 67 6e 61 6c 29 29 20 7b 0a 69 66 20 28 $this->process,.$signal)).{.if.(
bbba0 24 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e $throwException).{.throw.new.Run
bbbc0 74 69 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 timeException(sprintf('Error.whi
bbbe0 6c 65 20 73 65 6e 64 69 6e 67 20 73 69 67 6e 61 6c 20 60 25 73 60 2e 27 2c 20 24 73 69 67 6e 61 le.sending.signal.`%s`.',.$signa
bbc00 6c 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e l));.}..return.false;.}..$this->
bbc20 6c 61 74 65 73 74 53 69 67 6e 61 6c 20 3d 20 24 73 69 67 6e 61 6c 3b 0a 0a 72 65 74 75 72 6e 20 latestSignal.=.$signal;..return.
bbc40 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
bbc60 20 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 24 66 75 6e 63 74 69 .requireProcessIsStarted($functi
bbc80 6f 6e 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 53 74 61 72 74 65 64 28 onName).{.if.(!$this->isStarted(
bbca0 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 )).{.throw.new.LogicException(sp
bbcc0 72 69 6e 74 66 28 27 50 72 6f 63 65 73 73 20 6d 75 73 74 20 62 65 20 73 74 61 72 74 65 64 20 62 rintf('Process.must.be.started.b
bbce0 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 25 73 2e 27 2c 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d efore.calling.%s.',.$functionNam
bbd00 65 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 e));.}.}.........private.functio
bbd20 6e 20 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 54 65 72 6d 69 6e 61 74 65 64 28 24 66 75 n.requireProcessIsTerminated($fu
bbd40 6e 63 74 69 6f 6e 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 54 65 72 6d nctionName).{.if.(!$this->isTerm
bbd60 69 6e 61 74 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 inated()).{.throw.new.LogicExcep
bbd80 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 50 72 6f 63 65 73 73 20 6d 75 73 74 20 62 65 20 74 65 tion(sprintf('Process.must.be.te
bbda0 72 6d 69 6e 61 74 65 64 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 25 73 2e 27 2c 20 24 66 rminated.before.calling.%s.',.$f
bbdc0 75 6e 63 74 69 6f 6e 4e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a unctionName));.}.}.}.<?php......
bbde0 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
bbe00 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 6d 70 6f 6e 65 6e 74 \Process;..use.Symfony\Component
bbe20 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 \Process\Exception\InvalidArgume
bbe40 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ntException;.use.Symfony\Compone
bbe60 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 65 70 74 nt\Process\Exception\LogicExcept
bbe80 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 0a ion;.......class.ProcessBuilder.
bbea0 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 63 {.private.$arguments;.private.$c
bbec0 77 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 wd;.private.$env.=.array();.priv
bbee0 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 ate.$input;.private.$timeout.=.6
bbf00 30 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 0;.private.$options.=.array();.p
bbf20 72 69 76 61 74 65 20 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 rivate.$inheritEnv.=.true;.priva
bbf40 74 65 20 24 70 72 65 66 69 78 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6f te.$prefix.=.array();.private.$o
bbf60 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 utputDisabled.=.false;.......pub
bbf80 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.$
bbfa0 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 arguments.=.array()).{.$this->ar
bbfc0 67 75 6d 65 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a guments.=.$arguments;.}.........
bbfe0 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 61 72 public.static.function.create(ar
bc000 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 ray.$arguments.=.array()).{.retu
bc020 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 3b 0a 7d 0a 0a 0a 0a rn.new.static($arguments);.}....
bc040 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 61 72 67 75 6d 65 .....public.function.add($argume
bc060 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 3d 20 24 61 72 67 75 nt).{.$this->arguments[].=.$argu
bc080 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 0a 0a 0a 0a 0a 0a 0a ment;..return.$this;.}..........
bc0a0 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 78 28 24 70 72 65 66 .public.function.setPrefix($pref
bc0c0 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 61 72 72 61 79 28 24 ix).{.$this->prefix.=.is_array($
bc0e0 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 28 24 70 72 65 66 69 prefix).?.$prefix.:.array($prefi
bc100 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 0a 0a 0a 0a 0a 0a 0a x);..return.$this;.}............
bc120 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 72 72 public.function.setArguments(arr
bc140 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 6e 74 ay.$arguments).{.$this->argument
bc160 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 0a 7d s.=.$arguments;..return.$this;.}
bc180 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b .........public.function.setWork
bc1a0 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 ingDirectory($cwd).{.$this->cwd.
bc1c0 3d 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a =.$cwd;..return.$this;.}........
bc1e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d .public.function.inheritEnvironm
bc200 65 6e 74 56 61 72 69 61 62 6c 65 73 28 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 29 entVariables($inheritEnv.=.true)
bc220 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 24 69 6e 68 65 72 69 74 45 .{.$this->inheritEnv.=.$inheritE
bc240 6e 76 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 nv;..return.$this;.}............
bc260 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 24 6e 61 6d 65 2c 20 24 .public.function.setEnv($name,.$
bc280 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 value).{.$this->env[$name].=.$va
bc2a0 6c 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 lue;..return.$this;.}...........
bc2c0 0a 0a 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 ..public.function.addEnvironment
bc2e0 56 61 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 Variables(array.$variables).{.$t
bc300 68 69 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 his->env.=.array_replace($this->
bc320 65 6e 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 env,.$variables);..return.$this;
bc340 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 .}...........public.function.set
bc360 49 6e 70 75 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 50 Input($input).{.$this->input.=.P
bc380 72 6f 63 65 73 73 55 74 69 6c 73 3a 3a 76 61 6c 69 64 61 74 65 49 6e 70 75 74 28 73 70 72 69 6e rocessUtils::validateInput(sprin
bc3a0 74 66 28 27 25 73 3a 3a 25 73 27 2c 20 5f 5f 43 4c 41 53 53 5f 5f 2c 20 5f 5f 46 55 4e 43 54 49 tf('%s::%s',.__CLASS__,.__FUNCTI
bc3c0 4f 4e 5f 5f 29 2c 20 24 69 6e 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ON__),.$input);..return.$this;.}
bc3e0 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
bc400 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d Timeout($timeout).{.if.(null.===
bc420 20 24 74 69 6d 65 6f 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 6e 75 .$timeout).{.$this->timeout.=.nu
bc440 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 3d ll;..return.$this;.}..$timeout.=
bc460 20 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 .(float).$timeout;..if.($timeout
bc480 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e .<.0).{.throw.new.InvalidArgumen
bc4a0 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 tException('The.timeout.value.mu
bc4c0 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 20 6f st.be.a.valid.positive.integer.o
bc4e0 72 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 69 6d r.float.number.');.}..$this->tim
bc500 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a eout.=.$timeout;..return.$this;.
bc520 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 65 74 4f 70 }..........public.function.setOp
bc540 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 tion($name,.$value).{.$this->opt
bc560 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 ions[$name].=.$value;..return.$t
bc580 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 64 69 73 his;.}.......public.function.dis
bc5a0 61 62 6c 65 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 ableOutput().{.$this->outputDisa
bc5c0 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a bled.=.true;..return.$this;.}...
bc5e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 4f 75 74 70 75 74 ....public.function.enableOutput
bc600 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c ().{.$this->outputDisabled.=.fal
bc620 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 se;..return.$this;.}.........pub
bc640 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 69 66 20 28 lic.function.getProcess().{.if.(
bc660 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 29 20 26 26 20 30 20 0.===.count($this->prefix).&&.0.
bc680 3d 3d 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 29 20 7b 0a 74 ===.count($this->arguments)).{.t
bc6a0 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 hrow.new.LogicException('You.mus
bc6c0 74 20 61 64 64 28 29 20 63 6f 6d 6d 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 62 65 66 6f 72 65 t.add().command.arguments.before
bc6e0 20 63 61 6c 6c 69 6e 67 20 67 65 74 50 72 6f 63 65 73 73 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6f 70 .calling.getProcess().');.}..$op
bc700 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 0a 24 61 72 67 75 6d 65 tions.=.$this->options;..$argume
bc720 6e 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 2c nts.=.array_merge($this->prefix,
bc740 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 24 73 63 72 69 70 74 20 3d 20 69 6d .$this->arguments);.$script.=.im
bc760 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 61 72 72 61 79 28 5f 5f 4e 41 4d plode('.',.array_map(array(__NAM
bc780 45 53 50 41 43 45 5f 5f 2e 27 5c 5c 50 72 6f 63 65 73 73 55 74 69 6c 73 27 2c 20 27 65 73 63 61 ESPACE__.'\\ProcessUtils',.'esca
bc7a0 70 65 41 72 67 75 6d 65 6e 74 27 29 2c 20 24 61 72 67 75 6d 65 6e 74 73 29 29 3b 0a 0a 69 66 20 peArgument'),.$arguments));..if.
bc7c0 28 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 29 20 7b 0a 0a 20 24 65 6e 76 20 3d 20 61 ($this->inheritEnv).{...$env.=.a
bc7e0 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 5f 45 4e 56 2c 20 24 5f 53 45 52 56 45 52 2c 20 24 74 rray_replace($_ENV,.$_SERVER,.$t
bc800 68 69 73 2d 3e 65 6e 76 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 his->env);.}.else.{.$env.=.$this
bc820 2d 3e 65 6e 76 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 ->env;.}..$process.=.new.Process
bc840 28 24 73 63 72 69 70 74 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 65 6e 76 2c 20 24 74 68 69 ($script,.$this->cwd,.$env,.$thi
bc860 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f s->input,.$this->timeout,.$optio
bc880 6e 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 ns);..if.($this->outputDisabled)
bc8a0 20 7b 0a 24 70 72 6f 63 65 73 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d 0a .{.$process->disableOutput();.}.
bc8c0 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .return.$process;.}.}.<?php.....
bc8e0 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
bc900 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 6d 70 6f 6e 65 6e t\Process;..use.Symfony\Componen
bc920 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d t\Process\Exception\InvalidArgum
bc940 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 entException;.........class.Proc
bc960 65 73 73 55 74 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 essUtils.{....private.function._
bc980 5f 63 6f 6e 73 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 _construct().{.}.........public.
bc9a0 73 74 61 74 69 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 static.function.escapeArgument($
bc9c0 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d argument).{.........if.('\\'.===
bc9e0 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 69 66 20 28 27 27 20 3d .DIRECTORY_SEPARATOR).{.if.(''.=
bca00 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 73 68 65 ==.$argument).{.return.escapeshe
bca20 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 41 72 67 llarg($argument);.}..$escapedArg
bca40 75 6d 65 6e 74 20 3d 20 27 27 3b 0a 24 71 75 6f 74 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 ument.=.'';.$quote.=.false;.fore
bca60 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 28 22 29 2f 69 27 2c 20 24 61 72 67 75 6d ach.(preg_split('/(")/i',.$argum
bca80 65 6e 74 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 20 7c 20 50 ent,.-1,.PREG_SPLIT_NO_EMPTY.|.P
bcaa0 52 45 47 5f 53 50 4c 49 54 5f 44 45 4c 49 4d 5f 43 41 50 54 55 52 45 29 20 61 73 20 24 70 61 72 REG_SPLIT_DELIM_CAPTURE).as.$par
bcac0 74 29 20 7b 0a 69 66 20 28 27 22 27 20 3d 3d 3d 20 24 70 61 72 74 29 20 7b 0a 24 65 73 63 61 70 t).{.if.('"'.===.$part).{.$escap
bcae0 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 27 5c 5c 22 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 edArgument..=.'\\"';.}.elseif.(s
bcb00 65 6c 66 3a 3a 69 73 53 75 72 72 6f 75 6e 64 65 64 42 79 28 24 70 61 72 74 2c 20 27 25 27 29 29 elf::isSurroundedBy($part,.'%'))
bcb20 20 7b 0a 0a 20 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 27 5e 25 22 27 2e 73 .{...$escapedArgument..=.'^%"'.s
bcb40 75 62 73 74 72 28 24 70 61 72 74 2c 20 31 2c 20 2d 31 29 2e 27 22 5e 25 27 3b 0a 7d 20 65 6c 73 ubstr($part,.1,.-1).'"^%';.}.els
bcb60 65 20 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 72 74 2c e.{...if.('\\'.===.substr($part,
bcb80 20 2d 31 29 29 20 7b 0a 24 70 61 72 74 20 2e 3d 20 27 5c 5c 27 3b 0a 7d 0a 24 71 75 6f 74 65 20 .-1)).{.$part..=.'\\';.}.$quote.
bcba0 3d 20 74 72 75 65 3b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 24 70 61 72 =.true;.$escapedArgument..=.$par
bcbc0 74 3b 0a 7d 0a 7d 0a 69 66 20 28 24 71 75 6f 74 65 29 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 t;.}.}.if.($quote).{.$escapedArg
bcbe0 75 6d 65 6e 74 20 3d 20 27 22 27 2e 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 2e 27 22 27 ument.=.'"'.$escapedArgument.'"'
bcc00 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 3b 0a 7d 0a ;.}..return.$escapedArgument;.}.
bcc20 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 .return.escapeshellarg($argument
bcc40 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 74 69 63 20 66 75 );.}............public.static.fu
bcc60 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 49 6e 70 75 74 28 24 63 61 6c 6c 65 72 2c 20 24 69 nction.validateInput($caller,.$i
bcc80 6e 70 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 69 6e 70 75 74 29 20 7b 0a 69 nput).{.if.(null.!==.$input).{.i
bcca0 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e f.(is_resource($input)).{.return
bccc0 20 24 69 6e 70 75 74 3b 0a 7d 0a 69 66 20 28 69 73 5f 73 63 61 6c 61 72 28 24 69 6e 70 75 74 29 .$input;.}.if.(is_scalar($input)
bcce0 29 20 7b 0a 72 65 74 75 72 6e 20 28 73 74 72 69 6e 67 29 20 24 69 6e 70 75 74 3b 0a 7d 0a 0a 20 ).{.return.(string).$input;.}...
bcd00 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 69 6e 70 75 74 29 20 26 26 20 6d 65 74 68 6f 64 5f if.(is_object($input).&&.method_
bcd20 65 78 69 73 74 73 28 24 69 6e 70 75 74 2c 20 27 5f 5f 74 6f 53 74 72 69 6e 67 27 29 29 20 7b 0a exists($input,.'__toString')).{.
bcd40 72 65 74 75 72 6e 20 28 73 74 72 69 6e 67 29 20 24 69 6e 70 75 74 3b 0a 7d 0a 0a 74 68 72 6f 77 return.(string).$input;.}..throw
bcd60 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 .new.InvalidArgumentException(sp
bcd80 72 69 6e 74 66 28 27 25 73 20 6f 6e 6c 79 20 61 63 63 65 70 74 73 20 73 74 72 69 6e 67 73 20 6f rintf('%s.only.accepts.strings.o
bcda0 72 20 73 74 72 65 61 6d 20 72 65 73 6f 75 72 63 65 73 2e 27 2c 20 24 63 61 6c 6c 65 72 29 29 3b r.stream.resources.',.$caller));
bcdc0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 73 74 .}..return.$input;.}..private.st
bcde0 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 72 72 6f 75 6e 64 65 64 42 79 28 24 61 72 atic.function.isSurroundedBy($ar
bce00 67 2c 20 24 63 68 61 72 29 0a 7b 0a 72 65 74 75 72 6e 20 32 20 3c 20 73 74 72 6c 65 6e 28 24 61 g,.$char).{.return.2.<.strlen($a
bce20 72 67 29 20 26 26 20 24 63 68 61 72 20 3d 3d 3d 20 24 61 72 67 5b 30 5d 20 26 26 20 24 63 68 61 rg).&&.$char.===.$arg[0].&&.$cha
bce40 72 20 3d 3d 3d 20 24 61 72 67 5b 73 74 72 6c 65 6e 28 24 61 72 67 29 20 2d 20 31 5d 3b 0a 7d 0a r.===.$arg[strlen($arg).-.1];.}.
bce60 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
bce80 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 65 70 74 69 6f 6e 3b ony\Component\Process\Exception;
bcea0 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\
bcec0 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 54 69 6d 65 Process;.......class.ProcessTime
bcee0 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 dOutException.extends.RuntimeExc
bcf00 65 70 74 69 6f 6e 0a 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 eption.{.const.TYPE_GENERAL.=.1;
bcf20 0a 63 6f 6e 73 74 20 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 .const.TYPE_IDLE.=.2;..private.$
bcf40 70 72 6f 63 65 73 73 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 process;.private.$timeoutType;..
bcf60 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 72 6f 63 public.function.__construct(Proc
bcf80 65 73 73 20 24 70 72 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 ess.$process,.$timeoutType).{.$t
bcfa0 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 24 74 68 69 73 2d 3e his->process.=.$process;.$this->
bcfc0 74 69 6d 65 6f 75 74 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 timeoutType.=.$timeoutType;..par
bcfe0 65 6e 74 3a 3a 5f 5f 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 ent::__construct(sprintf(.'The.p
bd000 72 6f 63 65 73 73 20 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 rocess."%s".exceeded.the.timeout
bd020 20 6f 66 20 25 73 20 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 .of.%s.seconds.',.$process->getC
bd040 6f 6d 6d 61 6e 64 4c 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 ommandLine(),.$this->getExceeded
bd060 54 69 6d 65 6f 75 74 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 Timeout().));.}..public.function
bd080 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 .getProcess().{.return.$this->pr
bd0a0 6f 63 65 73 73 3b 0a 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 ocess;.}..public.function.isGene
bd0c0 72 61 6c 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 74 69 6d ralTimeout().{.return.$this->tim
bd0e0 65 6f 75 74 54 79 70 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 eoutType.===.self::TYPE_GENERAL;
bd100 0a 7d 0a 0a 70 75 62 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 .}..public.function.isIdleTimeou
bd120 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 65 20 t().{.return.$this->timeoutType.
bd140 3d 3d 3d 20 73 65 6c 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 ===.self::TYPE_IDLE;.}..public.f
bd160 75 6e 63 74 69 6f 6e 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 unction.getExceededTimeout().{.s
bd180 77 69 74 63 68 20 28 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 witch.($this->timeoutType).{.cas
bd1a0 65 20 73 65 6c 66 3a 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 e.self::TYPE_GENERAL:.return.$th
bd1c0 69 73 2d 3e 70 72 6f 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 is->process->getTimeout();..case
bd1e0 20 73 65 6c 66 3a 3a 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 .self::TYPE_IDLE:.return.$this->
bd200 70 72 6f 63 65 73 73 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 process->getIdleTimeout();..defa
bd220 75 6c 74 3a 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 ult:.throw.new.\LogicException(s
bd240 70 72 69 6e 74 66 28 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 printf('Unknown.timeout.type."%d
bd260 22 2e 27 2c 20 24 74 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 ".',.$this->timeoutType));.}.}.}
bd280 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
bd2a0 6e 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 ny\Component\Process\Exception;.
bd2c0 0a 0a 0a 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 ......interface.ExceptionInterfa
bd2e0 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ce.{.}.<?php...........namespace
bd300 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 65 70 .Symfony\Component\Process\Excep
bd320 74 69 6f 6e 3b 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 tion;.......class.RuntimeExcepti
bd340 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 on.extends.\RuntimeException.imp
bd360 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 0a 3c lements.ExceptionInterface.{.}.<
bd380 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
bd3a0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a \Component\Process\Exception;...
bd3c0 0a 0a 0a 0a 63 6c 61 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 ....class.LogicException.extends
bd3e0 20 5c 4c 6f 67 69 63 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 .\LogicException.implements.Exce
bd400 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ptionInterface.{.}.<?php........
bd420 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
bd440 72 6f 63 65 73 73 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 43 rocess\Exception;..use.Symfony\C
bd460 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a omponent\Process\Process;.......
bd480 63 6c 61 73 73 20 50 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 class.ProcessFailedException.ext
bd4a0 65 6e 64 73 20 52 75 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 ends.RuntimeException.{.private.
bd4c0 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 5f 63 6f 6e $process;..public.function.__con
bd4e0 73 74 72 75 63 74 28 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 struct(Process.$process).{.if.($
bd500 70 72 6f 63 65 73 73 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 process->isSuccessful()).{.throw
bd520 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 45 .new.InvalidArgumentException('E
bd540 78 70 65 63 74 65 64 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 xpected.a.failed.process,.but.th
bd560 65 20 67 69 76 65 6e 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 e.given.process.was.successful.'
bd580 29 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 73 70 72 69 6e 74 66 28 27 54 68 65 20 63 6f 6d 6d );.}..$error.=.sprintf('The.comm
bd5a0 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 43 6f 64 65 3a 20 and."%s".failed.'."\nExit.Code:.
bd5c0 25 73 28 25 73 29 22 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e %s(%s)",.$process->getCommandLin
bd5e0 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 65 28 29 2c 0a 24 70 e(),.$process->getExitCode(),.$p
bd600 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 0a 29 3b 0a 0a 69 66 rocess->getExitCodeText().);..if
bd620 20 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 4f 75 74 70 75 74 44 69 73 61 62 6c 65 64 28 29 29 .(!$process->isOutputDisabled())
bd640 20 7b 0a 24 65 72 72 6f 72 20 2e 3d 20 73 70 72 69 6e 74 66 28 22 5c 6e 5c 6e 4f 75 74 70 75 74 .{.$error..=.sprintf("\n\nOutput
bd660 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 5c 6e 5c 6e 45 72 72 6f 72 :\n================\n%s\n\nError
bd680 20 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 22 2c .Output:\n================\n%s",
bd6a0 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 .$process->getOutput(),.$process
bd6c0 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a ->getErrorOutput().);.}..parent:
bd6e0 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 72 72 6f 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 :__construct($error);..$this->pr
bd700 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ocess.=.$process;.}..public.func
bd720 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getProcess().{.return.$this
bd740 2d 3e 70 72 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ->process;.}.}.<?php...........n
bd760 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 amespace.Symfony\Component\Proce
bd780 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 ss\Exception;.......class.Invali
bd7a0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 49 6e 76 61 dArgumentException.extends.\Inva
bd7c0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 lidArgumentException.implements.
bd7e0 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 43 6f 70 79 72 69 67 68 74 ExceptionInterface.{.}.Copyright
bd800 20 28 63 29 20 32 30 30 34 2d 32 30 31 35 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 0a .(c).2004-2015.Fabien.Potencier.
bd820 0a 50 65 72 6d 69 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 .Permission.is.hereby.granted,.f
bd840 72 65 65 20 6f 66 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 ree.of.charge,.to.any.person.obt
bd860 61 69 6e 69 6e 67 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 aining.a.copy.of.this.software.a
bd880 6e 64 20 61 73 73 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 nd.associated.documentation.file
bd8a0 73 20 28 74 68 65 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 s.(the."Software"),.to.deal.in.t
bd8c0 68 65 20 53 6f 66 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 he.Software.without.restriction,
bd8e0 20 69 6e 63 6c 75 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 .including.without.limitation.th
bd900 65 20 72 69 67 68 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 e.rights.to.use,.copy,.modify,.m
bd920 65 72 67 65 2c 20 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 erge,.publish,.distribute,.subli
bd940 63 65 6e 73 65 2c 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 cense,.and/or.sell.copies.of.the
bd960 20 53 6f 66 74 77 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 .Software,.and.to.permit.persons
bd980 20 74 6f 20 77 68 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 .to.whom.the.Software.is.furnish
bd9a0 65 64 0a 74 6f 20 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 ed.to.do.so,.subject.to.the.foll
bd9c0 6f 77 69 6e 67 20 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 owing.conditions:..The.above.cop
bd9e0 79 72 69 67 68 74 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 yright.notice.and.this.permissio
bda00 6e 20 6e 6f 74 69 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 n.notice.shall.be.included.in.al
bda20 6c 0a 63 6f 70 69 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 l.copies.or.substantial.portions
bda40 20 6f 66 20 74 68 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 .of.the.Software...THE.SOFTWARE.
bda60 49 53 20 50 52 4f 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 IS.PROVIDED."AS.IS",.WITHOUT.WAR
bda80 52 41 4e 54 59 20 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 RANTY.OF.ANY.KIND,.EXPRESS.OR.IM
bdaa0 50 4c 49 45 44 2c 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 PLIED,.INCLUDING.BUT.NOT.LIMITED
bdac0 20 54 4f 20 54 48 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 .TO.THE.WARRANTIES.OF.MERCHANTAB
bdae0 49 4c 49 54 59 2c 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 ILITY,.FITNESS.FOR.A.PARTICULAR.
bdb00 50 55 52 50 4f 53 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 PURPOSE.AND.NONINFRINGEMENT..IN.
bdb20 4e 4f 20 45 56 45 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 NO.EVENT.SHALL.THE.AUTHORS.OR.CO
bdb40 50 59 52 49 47 48 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 PYRIGHT.HOLDERS.BE.LIABLE.FOR.AN
bdb60 59 20 43 4c 41 49 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 Y.CLAIM,.DAMAGES.OR.OTHER.LIABIL
bdb80 49 54 59 2c 20 57 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 ITY,.WHETHER.IN.AN.ACTION.OF.CON
bdba0 54 52 41 43 54 2c 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 TRACT,.TORT.OR.OTHERWISE,.ARISIN
bdbc0 47 20 46 52 4f 4d 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 G.FROM,.OUT.OF.OR.IN.CONNECTION.
bdbe0 57 49 54 48 20 54 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 WITH.THE.SOFTWARE.OR.THE.USE.OR.
bdc00 4f 54 48 45 52 20 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 OTHER.DEALINGS.IN.THE.SOFTWARE..
bdc20 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
bdc40 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 73 y\Component\Process;........clas
bdc60 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 20 s.PhpExecutableFinder.{.private.
bdc80 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 74 $executableFinder;..public.funct
bdca0 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 75 ion.__construct().{.$this->execu
bdcc0 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 64 tableFinder.=.new.ExecutableFind
bdce0 65 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 20 er();.}.........public.function.
bdd00 66 69 6e 64 28 24 69 6e 63 6c 75 64 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a 7b 0a 0a 20 69 66 find($includeArgs.=.true).{...if
bdd20 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 72 65 74 .(defined('HHVM_VERSION')).{.ret
bdd40 75 72 6e 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 68 68 76 6d 20 3d 20 67 65 74 65 6e 76 28 27 urn.(false.!==.($hhvm.=.getenv('
bdd60 50 48 50 5f 42 49 4e 41 52 59 27 29 29 20 3f 20 24 68 68 76 6d 20 3a 20 50 48 50 5f 42 49 4e 41 PHP_BINARY')).?.$hhvm.:.PHP_BINA
bdd80 52 59 29 2e 28 24 69 6e 63 6c 75 64 65 41 72 67 73 20 3f 20 27 20 27 2e 69 6d 70 6c 6f 64 65 28 RY).($includeArgs.?.'.'.implode(
bdda0 27 20 27 2c 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 72 67 75 6d 65 6e 74 73 28 29 29 20 3a 20 27 '.',.$this->findArguments()).:.'
bddc0 27 29 3b 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 ');.}....if.(defined('PHP_BINARY
bdde0 27 29 20 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 ').&&.PHP_BINARY.&&.in_array(PHP
bde00 5f 53 41 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 _SAPI,.array('cli',.'cli-server'
bde20 29 29 20 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 )).&&.is_file(PHP_BINARY)).{.ret
bde40 75 72 6e 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 urn.PHP_BINARY;.}..if.($php.=.ge
bde60 74 65 6e 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 tenv('PHP_PATH')).{.if.(!is_exec
bde80 75 74 61 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 utable($php)).{.return.false;.}.
bdea0 0a 72 65 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 .return.$php;.}..if.($php.=.gete
bdec0 6e 76 28 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 nv('PHP_PEAR_PHP_BIN')).{.if.(is
bdee0 5f 65 78 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 _executable($php)).{.return.$php
bdf00 3b 0a 7d 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 ;.}.}..$dirs.=.array(PHP_BINDIR)
bdf20 3b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 ;.if.('\\'.===.DIRECTORY_SEPARAT
bdf40 4f 52 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 27 43 3a 5c 78 61 6d 70 70 5c 70 68 70 5c 5c 27 OR).{.$dirs[].=.'C:\xampp\php\\'
bdf60 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 6c 65 46 69 6e ;.}..return.$this->executableFin
bdf80 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 72 73 29 3b 0a der->find('php',.false,.$dirs);.
bdfa0 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 69 6e 64 41 72 67 75 }.......public.function.findArgu
bdfc0 6d 65 6e 74 73 28 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 ments().{.$arguments.=.array();.
bdfe0 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 49 4f 4e 27 29 29 20 ...if.(defined('HHVM_VERSION')).
be000 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 27 2d 2d 70 68 70 27 3b 0a 7d 0a 0a 72 65 74 {.$arguments[].=.'--php';.}..ret
be020 75 72 6e 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a urn.$arguments;.}.}.<?php.......
be040 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\
be060 50 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 Process\Pipes;.........interface
be080 20 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 43 48 55 4e 4b 5f 53 49 .PipesInterface.{.const.CHUNK_SI
be0a0 5a 45 20 3d 20 31 36 33 38 34 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ZE.=.16384;.......public.functio
be0c0 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.getDescriptors();.......public
be0e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .function.getFiles();..........p
be100 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 41 6e 64 57 72 69 74 65 28 24 62 6c 6f ublic.function.readAndWrite($blo
be120 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 20 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 cking,.$close.=.false);.......pu
be140 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 65 4f 70 65 6e 28 29 3b 0a 0a 0a 0a 0a 70 75 62 blic.function.areOpen();.....pub
be160 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a lic.function.close();.}.<?php...
be180 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
be1a0 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 ent\Process\Pipes;.......abstrac
be1c0 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 50 69 70 65 73 20 69 6d 70 6c 65 6d 65 6e 74 73 t.class.AbstractPipes.implements
be1e0 20 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 70 75 62 6c 69 63 20 24 70 69 70 65 73 .PipesInterface.{..public.$pipes
be200 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 42 75 .=.array();...protected.$inputBu
be220 66 66 65 72 20 3d 20 27 27 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 0a 0a ffer.=.'';..protected.$input;...
be240 70 72 69 76 61 74 65 20 24 62 6c 6f 63 6b 65 64 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 75 62 private.$blocked.=.true;.....pub
be260 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 lic.function.close().{.foreach.(
be280 24 74 68 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 $this->pipes.as.$pipe).{.fclose(
be2a0 24 70 69 70 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 $pipe);.}.$this->pipes.=.array()
be2c0 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 68 61 73 ;.}.......protected.function.has
be2e0 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 29 0a 7b 0a 24 6c SystemCallBeenInterrupted().{.$l
be300 61 73 74 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 0a 0a 20 astError.=.error_get_last();....
be320 72 65 74 75 72 6e 20 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 return.isset($lastError['message
be340 27 5d 29 20 26 26 20 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 ']).&&.false.!==.stripos($lastEr
be360 72 6f 72 5b 27 6d 65 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 ror['message'],.'interrupted.sys
be380 74 65 6d 20 63 61 6c 6c 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 tem.call');.}.....protected.func
be3a0 74 69 6f 6e 20 75 6e 62 6c 6f 63 6b 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 62 6c 6f tion.unblock().{.if.(!$this->blo
be3c0 63 6b 65 64 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 74 68 69 cked).{.return;.}..foreach.($thi
be3e0 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f s->pipes.as.$pipe).{.stream_set_
be400 62 6c 6f 63 6b 69 6e 67 28 24 70 69 70 65 2c 20 30 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 blocking($pipe,.0);.}.if.(null.!
be420 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f 62 6c ==.$this->input).{.stream_set_bl
be440 6f 63 6b 69 6e 67 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 30 29 3b 0a 7d 0a 0a 24 74 68 69 ocking($this->input,.0);.}..$thi
be460 73 2d 3e 62 6c 6f 63 6b 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a s->blocked.=.false;.}.}.<?php...
be480 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
be4a0 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c ent\Process\Pipes;..use.Symfony\
be4c0 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 Component\Process\Process;.use.S
be4e0 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 65 70 74 69 ymfony\Component\Process\Excepti
be500 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a on\RuntimeException;............
be520 63 6c 61 73 73 20 57 69 6e 64 6f 77 73 50 69 70 65 73 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 class.WindowsPipes.extends.Abstr
be540 61 63 74 50 69 70 65 73 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 20 3d 20 61 72 72 actPipes.{..private.$files.=.arr
be560 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 ay();..private.$fileHandles.=.ar
be580 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 ray();..private.$readBytes.=.arr
be5a0 61 79 28 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 30 2c 0a 50 72 6f 63 65 73 ay(.Process::STDOUT.=>.0,.Proces
be5c0 73 3a 3a 53 54 44 45 52 52 20 3d 3e 20 30 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 69 73 s::STDERR.=>.0,.);..private.$dis
be5e0 61 62 6c 65 4f 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 ableOutput;..public.function.__c
be600 6f 6e 73 74 72 75 63 74 28 24 64 69 73 61 62 6c 65 4f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 29 onstruct($disableOutput,.$input)
be620 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 20 3d 20 28 62 6f 6f 6c 29 .{.$this->disableOutput.=.(bool)
be640 20 24 64 69 73 61 62 6c 65 4f 75 74 70 75 74 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 69 .$disableOutput;..if.(!$this->di
be660 73 61 62 6c 65 4f 75 74 70 75 74 29 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e 66 69 sableOutput).{.........$this->fi
be680 6c 65 73 20 3d 20 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 les.=.array(.Process::STDOUT.=>.
be6a0 74 65 6d 70 6e 61 6d 28 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2c 20 27 73 66 5f tempnam(sys_get_temp_dir(),.'sf_
be6c0 70 72 6f 63 5f 73 74 64 6f 75 74 27 29 2c 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 45 52 52 20 3d proc_stdout'),.Process::STDERR.=
be6e0 3e 20 74 65 6d 70 6e 61 6d 28 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2c 20 27 73 >.tempnam(sys_get_temp_dir(),.'s
be700 66 5f 70 72 6f 63 5f 73 74 64 65 72 72 27 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 f_proc_stderr'),.);.foreach.($th
be720 69 73 2d 3e 66 69 6c 65 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 66 69 6c 65 29 20 7b is->files.as.$offset.=>.$file).{
be740 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 24 6f 66 66 73 65 74 5d 20 3d 20 66 .$this->fileHandles[$offset].=.f
be760 6f 70 65 6e 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 5b 24 6f 66 66 73 65 74 5d 2c 20 27 72 62 27 open($this->files[$offset],.'rb'
be780 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 65 48 61 6e 64 );.if.(false.===.$this->fileHand
be7a0 6c 65 73 5b 24 6f 66 66 73 65 74 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d les[$offset]).{.throw.new.Runtim
be7c0 65 45 78 63 65 70 74 69 6f 6e 28 27 41 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 63 6f 75 eException('A.temporary.file.cou
be7e0 6c 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 70 72 ld.not.be.opened.to.write.the.pr
be800 6f 63 65 73 73 20 6f 75 74 70 75 74 20 74 6f 2c 20 76 65 72 69 66 79 20 74 68 61 74 20 79 6f 75 ocess.output.to,.verify.that.you
be820 72 20 54 45 4d 50 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 69 73 20 77 r.TEMP.environment.variable.is.w
be840 72 69 74 61 62 6c 65 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 ritable');.}.}.}..if.(is_resourc
be860 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 e($input)).{.$this->input.=.$inp
be880 75 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 ut;.}.else.{.$this->inputBuffer.
be8a0 3d 20 24 69 6e 70 75 74 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f =.$input;.}.}..public.function._
be8c0 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 0a 24 74 _destruct().{.$this->close();.$t
be8e0 68 69 73 2d 3e 72 65 6d 6f 76 65 46 69 6c 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 his->removeFiles();.}.....public
be900 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a 7b 0a 69 66 20 .function.getDescriptors().{.if.
be920 28 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 29 20 7b 0a 24 6e 75 6c 6c 73 74 ($this->disableOutput).{.$nullst
be940 72 65 61 6d 20 3d 20 66 6f 70 65 6e 28 27 4e 55 4c 27 2c 20 27 63 27 29 3b 0a 0a 72 65 74 75 72 ream.=.fopen('NUL',.'c');..retur
be960 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 6e 75 n.array(.array('pipe',.'r'),.$nu
be980 6c 6c 73 74 72 65 61 6d 2c 0a 24 6e 75 6c 6c 73 74 72 65 61 6d 2c 0a 29 3b 0a 7d 0a 0a 0a 20 0a llstream,.$nullstream,.);.}.....
be9a0 20 0a 20 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 ...return.array(.array('pipe',.'
be9c0 72 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 4e 55 4c 27 2c 20 27 77 27 29 2c 0a r'),.array('file',.'NUL',.'w'),.
be9e0 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 4e 55 4c 27 2c 20 27 77 27 29 2c 0a 29 3b 0a 7d 0a array('file',.'NUL',.'w'),.);.}.
bea00 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 6c 65 73 28 29 0a 7b ....public.function.getFiles().{
bea20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .return.$this->files;.}.....publ
bea40 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 41 6e 64 57 72 69 74 65 28 24 62 6c 6f 63 6b 69 ic.function.readAndWrite($blocki
bea60 6e 67 2c 20 24 63 6c 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 ng,.$close.=.false).{.$this->wri
bea80 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 29 3b 0a 0a 24 72 65 61 64 20 3d 20 te($blocking,.$close);..$read.=.
beaa0 61 72 72 61 79 28 29 3b 0a 24 66 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 array();.$fh.=.$this->fileHandle
beac0 73 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 68 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 66 69 6c s;.foreach.($fh.as.$type.=>.$fil
beae0 65 48 61 6e 64 6c 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 66 73 65 65 6b 28 24 66 69 6c 65 eHandle).{.if.(0.!==.fseek($file
beb00 48 61 6e 64 6c 65 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 29 Handle,.$this->readBytes[$type])
beb20 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 64 61 74 61 20 3d 20 27 27 3b 0a 24 64 61 74 ).{.continue;.}.$data.=.'';.$dat
beb40 61 72 65 61 64 20 3d 20 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 21 66 65 6f 66 28 24 66 69 6c 65 aread.=.null;.while.(!feof($file
beb60 48 61 6e 64 6c 65 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 64 61 74 61 72 65 Handle)).{.if.(false.!==.$datare
beb80 61 64 20 3d 20 66 72 65 61 64 28 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 73 65 6c 66 3a 3a 43 48 ad.=.fread($fileHandle,.self::CH
beba0 55 4e 4b 5f 53 49 5a 45 29 29 20 7b 0a 24 64 61 74 61 20 2e 3d 20 24 64 61 74 61 72 65 61 64 3b UNK_SIZE)).{.$data..=.$dataread;
bebc0 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 65 6e 28 24 64 .}.}.if.(0.<.$length.=.strlen($d
bebe0 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 79 70 65 5d 20 ata)).{.$this->readBytes[$type].
bec00 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 24 64 61 74 61 +=.$length;.$read[$type].=.$data
bec20 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 64 20 7c 7c 20 ;.}..if.(false.===.$dataread.||.
bec40 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 69 6c 65 48 61 (true.===.$close.&&.feof($fileHa
bec60 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 63 6c 6f 73 65 ndle).&&.''.===.$data)).{.fclose
bec80 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 3b 0a 75 6e 73 ($this->fileHandles[$type]);.uns
beca0 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 5d 29 3b 0a 7d et($this->fileHandles[$type]);.}
becc0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .}..return.$read;.}.....public.f
bece0 75 6e 63 74 69 6f 6e 20 61 72 65 4f 70 65 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c unction.areOpen().{.return.(bool
bed00 29 20 24 74 68 69 73 2d 3e 70 69 70 65 73 20 26 26 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e ).$this->pipes.&&.(bool).$this->
bed20 66 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 fileHandles;.}.....public.functi
bed40 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 63 6c 6f 73 65 28 29 3b 0a 66 6f on.close().{.parent::close();.fo
bed60 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 68 61 reach.($this->fileHandles.as.$ha
bed80 6e 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 ndle).{.fclose($handle);.}.$this
beda0 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ->fileHandles.=.array();.}......
bedc0 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 ....public.static.function.creat
bede0 65 28 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 2c 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 e(Process.$process,.$input).{.re
bee00 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 24 70 72 6f 63 65 73 73 2d 3e 69 73 4f 75 74 70 turn.new.static($process->isOutp
bee20 75 74 44 69 73 61 62 6c 65 64 28 29 2c 20 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 utDisabled(),.$input);.}.....pri
bee40 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 46 69 6c 65 73 28 29 0a 7b 0a 66 6f vate.function.removeFiles().{.fo
bee60 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 6e 61 6d 65 reach.($this->files.as.$filename
bee80 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 6e 61 6d 65 29 29 20 ).{.if.(file_exists($filename)).
beea0 7b 0a 40 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d {.@unlink($filename);.}.}.$this-
beec0 3e 66 69 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 >files.=.array();.}........priva
beee0 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c te.function.write($blocking,.$cl
bef00 6f 73 65 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 29 20 ose).{.if.(empty($this->pipes)).
bef20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 6e 62 6c 6f 63 6b 28 29 3b 0a 0a {.return;.}..$this->unblock();..
bef40 24 72 20 3d 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3f 20 61 72 72 $r.=.null.!==.$this->input.?.arr
bef60 61 79 28 27 69 6e 70 75 74 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 3a 20 6e 75 ay('input'.=>.$this->input).:.nu
bef80 6c 6c 3b 0a 24 77 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 20 ll;.$w.=.isset($this->pipes[0]).
befa0 3f 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 20 3a 20 6e 75 6c 6c 3b ?.array($this->pipes[0]).:.null;
befc0 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 20 .$e.=.null;....if.(false.===.$n.
befe0 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 30 2c 20 =.@stream_select($r,.$w,.$e,.0,.
bf000 24 62 6c 6f 63 6b 69 6e 67 20 3f 20 50 72 6f 63 65 73 73 3a 3a 54 49 4d 45 4f 55 54 5f 50 52 45 $blocking.?.Process::TIMEOUT_PRE
bf020 43 49 53 49 4f 4e 20 2a 20 31 45 36 20 3a 20 30 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 21 24 74 CISION.*.1E6.:.0)).{.....if.(!$t
bf040 68 69 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 his->hasSystemCallBeenInterrupte
bf060 64 28 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 d()).{.$this->pipes.=.array();.}
bf080 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 6e 29 20 7b 0a 72 ..return;.}....if.(0.===.$n).{.r
bf0a0 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 77 20 26 26 20 30 20 3c eturn;.}..if.(null.!==.$w.&&.0.<
bf0c0 20 63 6f 75 6e 74 28 24 72 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 27 27 3b 0a 77 68 69 6c 65 20 .count($r)).{.$data.=.'';.while.
bf0e0 28 24 64 61 74 61 72 65 61 64 20 3d 20 66 72 65 61 64 28 24 72 5b 27 69 6e 70 75 74 27 5d 2c 20 ($dataread.=.fread($r['input'],.
bf100 73 65 6c 66 3a 3a 43 48 55 4e 4b 5f 53 49 5a 45 29 29 20 7b 0a 24 64 61 74 61 20 2e 3d 20 24 64 self::CHUNK_SIZE)).{.$data..=.$d
bf120 61 74 61 72 65 61 64 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 2e ataread;.}..$this->inputBuffer..
bf140 3d 20 24 64 61 74 61 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c =.$data;..if.(false.===.$data.||
bf160 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 72 5b 27 69 6e .(true.===.$close.&&.feof($r['in
bf180 70 75 74 27 5d 29 20 26 26 20 27 27 20 3d 3d 3d 20 24 64 61 74 61 29 29 20 7b 0a 0a 20 0a 20 24 put']).&&.''.===.$data)).{.....$
bf1a0 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c this->input.=.null;.}.}..if.(nul
bf1c0 6c 20 21 3d 3d 20 24 77 20 26 26 20 30 20 3c 20 63 6f 75 6e 74 28 24 77 29 29 20 7b 0a 77 68 69 l.!==.$w.&&.0.<.count($w)).{.whi
bf1e0 6c 65 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 29 29 20 le.(strlen($this->inputBuffer)).
bf200 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 72 69 74 65 28 24 77 5b 30 5d 2c 20 24 74 68 69 73 {.$written.=.fwrite($w[0],.$this
bf220 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 2c 20 32 20 3c 3c 20 31 38 29 3b 0a 69 66 20 28 24 77 72 ->inputBuffer,.2.<<.18);.if.($wr
bf240 69 74 74 65 6e 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 itten.>.0).{.$this->inputBuffer.
bf260 3d 20 28 73 74 72 69 6e 67 29 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 =.(string).substr($this->inputBu
bf280 66 66 65 72 2c 20 24 77 72 69 74 74 65 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 62 72 65 61 6b 3b ffer,.$written);.}.else.{.break;
bf2a0 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 27 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 .}.}.}....if.(''.===.$this->inpu
bf2c0 74 42 75 66 66 65 72 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 tBuffer.&&.null.===.$this->input
bf2e0 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 29 20 7b 0a 66 63 .&&.isset($this->pipes[0])).{.fc
bf300 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 lose($this->pipes[0]);.unset($th
bf320 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a is->pipes[0]);.}.}.}.<?php......
bf340 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
bf360 5c 50 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \Process\Pipes;..use.Symfony\Com
bf380 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a ponent\Process\Process;.........
bf3a0 63 6c 61 73 73 20 55 6e 69 78 50 69 70 65 73 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 class.UnixPipes.extends.Abstract
bf3c0 50 69 70 65 73 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 74 74 79 4d 6f 64 65 3b 0a 0a 70 72 69 76 Pipes.{..private.$ttyMode;..priv
bf3e0 61 74 65 20 24 70 74 79 4d 6f 64 65 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 69 73 61 62 6c 65 4f ate.$ptyMode;..private.$disableO
bf400 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 74 72 utput;..public.function.__constr
bf420 75 63 74 28 24 74 74 79 4d 6f 64 65 2c 20 24 70 74 79 4d 6f 64 65 2c 20 24 69 6e 70 75 74 2c 20 uct($ttyMode,.$ptyMode,.$input,.
bf440 24 64 69 73 61 62 6c 65 4f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 74 79 4d 6f 64 65 $disableOutput).{.$this->ttyMode
bf460 20 3d 20 28 62 6f 6f 6c 29 20 24 74 74 79 4d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 70 74 79 4d 6f .=.(bool).$ttyMode;.$this->ptyMo
bf480 64 65 20 3d 20 28 62 6f 6f 6c 29 20 24 70 74 79 4d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 69 73 de.=.(bool).$ptyMode;.$this->dis
bf4a0 61 62 6c 65 4f 75 74 70 75 74 20 3d 20 28 62 6f 6f 6c 29 20 24 64 69 73 61 62 6c 65 4f 75 74 70 ableOutput.=.(bool).$disableOutp
bf4c0 75 74 3b 0a 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 69 6e 70 75 74 29 29 20 7b 0a ut;..if.(is_resource($input)).{.
bf4e0 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a $this->input.=.$input;.}.else.{.
bf500 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 3d 20 28 73 74 72 69 6e 67 29 20 24 69 $this->inputBuffer.=.(string).$i
bf520 6e 70 75 74 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 64 65 73 nput;.}.}..public.function.__des
bf540 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 0a 7d 0a 0a 0a 0a 0a truct().{.$this->close();.}.....
bf560 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 73 28 29 public.function.getDescriptors()
bf580 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 29 20 7b 0a 24 .{.if.($this->disableOutput).{.$
bf5a0 6e 75 6c 6c 73 74 72 65 61 6d 20 3d 20 66 6f 70 65 6e 28 27 2f 64 65 76 2f 6e 75 6c 6c 27 2c 20 nullstream.=.fopen('/dev/null',.
bf5c0 27 63 27 29 3b 0a 0a 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 'c');..return.array(.array('pipe
bf5e0 27 2c 20 27 72 27 29 2c 0a 24 6e 75 6c 6c 73 74 72 65 61 6d 2c 0a 24 6e 75 6c 6c 73 74 72 65 61 ',.'r'),.$nullstream,.$nullstrea
bf600 6d 2c 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 74 79 4d 6f 64 65 29 20 7b 0a 72 m,.);.}..if.($this->ttyMode).{.r
bf620 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 2f 64 65 76 eturn.array(.array('file',.'/dev
bf640 2f 74 74 79 27 2c 20 27 72 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 2f 64 65 76 /tty',.'r'),.array('file',.'/dev
bf660 2f 74 74 79 27 2c 20 27 77 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 2f 64 65 76 /tty',.'w'),.array('file',.'/dev
bf680 2f 74 74 79 27 2c 20 27 77 27 29 2c 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 74 /tty',.'w'),.);.}..if.($this->pt
bf6a0 79 4d 6f 64 65 20 26 26 20 50 72 6f 63 65 73 73 3a 3a 69 73 50 74 79 53 75 70 70 6f 72 74 65 64 yMode.&&.Process::isPtySupported
bf6c0 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 74 79 27 29 ()).{.return.array(.array('pty')
bf6e0 2c 0a 61 72 72 61 79 28 27 70 74 79 27 29 2c 0a 61 72 72 61 79 28 27 70 74 79 27 29 2c 0a 29 3b ,.array('pty'),.array('pty'),.);
bf700 0a 7d 0a 0a 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 .}..return.array(.array('pipe',.
bf720 27 72 27 29 2c 0a 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 'r'),.array('pipe',.'w'),...arra
bf740 79 28 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 70 75 62 6c 69 y('pipe',.'w'),...);.}.....publi
bf760 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 c.function.getFiles().{.return.a
bf780 72 72 61 79 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 rray();.}.....public.function.re
bf7a0 61 64 41 6e 64 57 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 20 3d 20 66 adAndWrite($blocking,.$close.=.f
bf7c0 61 6c 73 65 29 0a 7b 0a 0a 20 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 alse).{.....if.(1.===.count($thi
bf7e0 73 2d 3e 70 69 70 65 73 29 20 26 26 20 61 72 72 61 79 28 30 29 20 3d 3d 3d 20 61 72 72 61 79 5f s->pipes).&&.array(0).===.array_
bf800 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 keys($this->pipes)).{.fclose($th
bf820 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 3e 70 69 70 65 is->pipes[0]);.unset($this->pipe
bf840 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 s[0]);.}..if.(empty($this->pipes
bf860 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 )).{.return.array();.}..$this->u
bf880 6e 62 6c 6f 63 6b 28 29 3b 0a 0a 24 72 65 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 nblock();..$read.=.array();..if.
bf8a0 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 0a 20 0a 20 24 72 (null.!==.$this->input).{.....$r
bf8c0 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 2c 20 61 72 72 .=.array_merge($this->pipes,.arr
bf8e0 61 79 28 27 69 6e 70 75 74 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 29 3b 0a 7d 20 ay('input'.=>.$this->input));.}.
bf900 65 6c 73 65 20 7b 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 7d 0a 0a 20 75 6e else.{.$r.=.$this->pipes;.}...un
bf920 73 65 74 28 24 72 5b 30 5d 29 3b 0a 0a 24 77 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 set($r[0]);..$w.=.isset($this->p
bf940 69 70 65 73 5b 30 5d 29 20 3f 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d ipes[0]).?.array($this->pipes[0]
bf960 29 20 3a 20 6e 75 6c 6c 3b 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 ).:.null;.$e.=.null;....if.(fals
bf980 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 24 77 e.===.$n.=.@stream_select($r,.$w
bf9a0 2c 20 24 65 2c 20 30 2c 20 24 62 6c 6f 63 6b 69 6e 67 20 3f 20 50 72 6f 63 65 73 73 3a 3a 54 49 ,.$e,.0,.$blocking.?.Process::TI
bf9c0 4d 45 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 2a 20 31 45 36 20 3a 20 30 29 29 20 7b 0a 0a 20 MEOUT_PRECISION.*.1E6.:.0)).{...
bf9e0 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 79 73 74 65 6d 43 61 6c 6c 42 65 65 6e 49 ..if.(!$this->hasSystemCallBeenI
bfa00 6e 74 65 72 72 75 70 74 65 64 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 nterrupted()).{.$this->pipes.=.a
bfa20 72 72 61 79 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 20 69 66 rray();.}..return.$read;.}....if
bfa40 20 28 30 20 3d 3d 3d 20 24 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 66 .(0.===.$n).{.return.$read;.}..f
bfa60 6f 72 65 61 63 68 20 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b 0a 0a 20 0a 20 24 74 79 70 65 oreach.($r.as.$pipe).{.....$type
bfa80 20 3d 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 66 6f 75 6e 64 20 3d 20 61 72 72 61 79 5f 73 65 61 .=.(false.!==.$found.=.array_sea
bfaa0 72 63 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 29 29 20 3f 20 24 66 6f 75 rch($pipe,.$this->pipes)).?.$fou
bfac0 6e 64 20 3a 20 27 69 6e 70 75 74 27 3b 0a 24 64 61 74 61 20 3d 20 27 27 3b 0a 77 68 69 6c 65 20 nd.:.'input';.$data.=.'';.while.
bfae0 28 27 27 20 21 3d 3d 20 24 64 61 74 61 72 65 61 64 20 3d 20 28 73 74 72 69 6e 67 29 20 66 72 65 (''.!==.$dataread.=.(string).fre
bfb00 61 64 28 24 70 69 70 65 2c 20 73 65 6c 66 3a 3a 43 48 55 4e 4b 5f 53 49 5a 45 29 29 20 7b 0a 24 ad($pipe,.self::CHUNK_SIZE)).{.$
bfb20 64 61 74 61 20 2e 3d 20 24 64 61 74 61 72 65 61 64 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 3d data..=.$dataread;.}..if.(''.!==
bfb40 20 24 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 69 6e 70 75 74 27 29 .$data).{.if.($type.===.'input')
bfb60 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 2e 3d 20 24 64 61 74 61 3b 0a .{.$this->inputBuffer..=.$data;.
bfb80 7d 20 65 6c 73 65 20 7b 0a 24 72 65 61 64 5b 24 74 79 70 65 5d 20 3d 20 24 64 61 74 61 3b 0a 7d }.else.{.$read[$type].=.$data;.}
bfba0 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 75 65 .}..if.(false.===.$data.||.(true
bfbc0 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 27 27 .===.$close.&&.feof($pipe).&&.''
bfbe0 20 3d 3d 3d 20 24 64 61 74 61 29 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 69 6e .===.$data)).{.if.($type.===.'in
bfc00 70 75 74 27 29 20 7b 0a 0a 20 0a 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 3b put').{.....$this->input.=.null;
bfc20 0a 7d 20 65 6c 73 65 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 .}.else.{.fclose($this->pipes[$t
bfc40 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 5b 24 74 79 70 65 5d ype]);.unset($this->pipes[$type]
bfc60 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 77 20 26 26 20 30 20 3c );.}.}.}..if.(null.!==.$w.&&.0.<
bfc80 20 63 6f 75 6e 74 28 24 77 29 29 20 7b 0a 77 68 69 6c 65 20 28 73 74 72 6c 65 6e 28 24 74 68 69 .count($w)).{.while.(strlen($thi
bfca0 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 29 29 20 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 s->inputBuffer)).{.$written.=.fw
bfcc0 72 69 74 65 28 24 77 5b 30 5d 2c 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 2c 20 rite($w[0],.$this->inputBuffer,.
bfce0 32 20 3c 3c 20 31 38 29 3b 20 0a 20 69 66 20 28 24 77 72 69 74 74 65 6e 20 3e 20 30 29 20 7b 0a 2.<<.18);...if.($written.>.0).{.
bfd00 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 3d 20 28 73 74 72 69 6e 67 29 20 73 75 $this->inputBuffer.=.(string).su
bfd20 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 2c 20 24 77 72 69 74 74 65 bstr($this->inputBuffer,.$writte
bfd40 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 n);.}.else.{.break;.}.}.}....if.
bfd60 28 27 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 26 26 20 6e 75 (''.===.$this->inputBuffer.&&.nu
bfd80 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 26 26 20 69 73 73 65 74 28 24 74 68 ll.===.$this->input.&&.isset($th
bfda0 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 is->pipes[0])).{.fclose($this->p
bfdc0 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])
bfde0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ;.}..return.$read;.}.....public.
bfe00 66 75 6e 63 74 69 6f 6e 20 61 72 65 4f 70 65 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f function.areOpen().{.return.(boo
bfe20 6c 29 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c l).$this->pipes;.}..........publ
bfe40 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 50 72 6f 63 65 73 ic.static.function.create(Proces
bfe60 73 20 24 70 72 6f 63 65 73 73 2c 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 s.$process,.$input).{.return.new
bfe80 20 73 74 61 74 69 63 28 24 70 72 6f 63 65 73 73 2d 3e 69 73 54 74 79 28 29 2c 20 24 70 72 6f 63 .static($process->isTty(),.$proc
bfea0 65 73 73 2d 3e 69 73 50 74 79 28 29 2c 20 24 69 6e 70 75 74 2c 20 24 70 72 6f 63 65 73 73 2d 3e ess->isPty(),.$input,.$process->
bfec0 69 73 4f 75 74 70 75 74 44 69 73 61 62 6c 65 64 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a isOutputDisabled());.}.}.<?php..
bfee0 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
bff00 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 6d 66 6f nent\Console\Command;..use.Symfo
bff20 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 73 63 ny\Component\Console\Helper\Desc
bff40 72 69 70 74 6f 72 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 riptorHelper;.use.Symfony\Compon
bff60 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;
bff80 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
bffa0 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f nput\InputOption;.use.Symfony\Co
bffc0 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
bffe0 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
c0000 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;.....
c0020 0a 0a 63 6c 61 73 73 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d ..class.HelpCommand.extends.Comm
c0040 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 70 72 6f 74 and.{.private.$command;.....prot
c0060 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 ected.function.configure().{.$th
c0080 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 3b 0a 0a 24 is->ignoreValidationErrors();..$
c00a0 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 68 65 6c 70 27 29 0a 2d 3e 73 65 74 44 65 66 69 this.->setName('help').->setDefi
c00c0 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 nition(array(.new.InputArgument(
c00e0 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 'command_name',.InputArgument::O
c0100 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 27 2c 20 27 68 65 PTIONAL,.'The.command.name',.'he
c0120 6c 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c lp'),.new.InputOption('xml',.nul
c0140 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 l,.InputOption::VALUE_NONE,.'To.
c0160 6f 75 74 70 75 74 20 68 65 6c 70 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f output.help.as.XML'),.new.InputO
c0180 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f ption('format',.null,.InputOptio
c01a0 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 68 65 n::VALUE_REQUIRED,.'To.output.he
c01c0 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 27 2c 20 27 74 78 74 27 29 2c 0a 6e 65 lp.in.other.formats',.'txt'),.ne
c01e0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 w.InputOption('raw',.null,.Input
c0200 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 Option::VALUE_NONE,.'To.output.r
c0220 61 77 20 63 6f 6d 6d 61 6e 64 20 68 65 6c 70 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 aw.command.help'),.)).->setDescr
c0240 69 70 74 69 6f 6e 28 27 44 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 63 6f 6d 6d iption('Displays.help.for.a.comm
c0260 61 6e 64 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f and').->setHelp(<<<EOF.The.<info
c0280 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 64 >%command.name%</info>.command.d
c02a0 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 67 69 76 65 6e 20 63 6f 6d 6d 61 6e 64 isplays.help.for.a.given.command
c02c0 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d :....<info>php.%command.full_nam
c02e0 65 25 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 e%.list</info>..You.can.also.out
c0300 70 75 74 20 74 68 65 20 68 65 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 79 put.the.help.in.other.formats.by
c0320 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 61 74 3c 2f 63 6f .using.the.<comment>--format</co
c0340 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 70 20 25 63 6f 6d mment>.option:....<info>php.%com
c0360 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 6d 6c 20 6c 69 73 mand.full_name%.--format=xml.lis
c0380 74 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 6c 69 73 74 20 6f 66 t</info>..To.display.the.list.of
c03a0 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2c 20 70 6c 65 61 73 65 20 75 73 65 20 .available.commands,.please.use.
c03c0 74 68 65 20 3c 69 6e 66 6f 3e 6c 69 73 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 2e 0a 45 the.<info>list</info>.command..E
c03e0 4f 46 0a 29 0a 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 OF.).;.}.......public.function.s
c0400 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 etCommand(Command.$command).{.$t
c0420 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 his->command.=.$command;.}.....p
c0440 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
c0460 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
c0480 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e .$output).{.if.(null.===.$this->
c04a0 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 command).{.$this->command.=.$thi
c04c0 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 66 69 6e 64 28 24 69 6e 70 75 74 s->getApplication()->find($input
c04e0 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 29 29 3b 0a ->getArgument('command_name'));.
c0500 7d 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 78 6d 6c 27 29 29 }..if.($input->getOption('xml'))
c0520 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 .{.$input->setOption('format',.'
c0540 78 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 69 70 74 xml');.}..$helper.=.new.Descript
c0560 6f 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f orHelper();.$helper->describe($o
c0580 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 28 0a 27 66 utput,.$this->command,.array(.'f
c05a0 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
c05c0 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
c05e0 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 2c 0a 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 Option('raw'),.));..$this->comma
c0600 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e nd.=.null;.}.}.<?php...........n
c0620 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
c0640 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 le\Command;..use.Symfony\Compone
c0660 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 69 nt\Console\Descriptor\TextDescri
c0680 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 73 ptor;.use.Symfony\Component\Cons
c06a0 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 73 ole\Descriptor\XmlDescriptor;.us
c06c0 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
c06e0 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
c0700 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
c0720 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
c0740 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
c0760 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
c0780 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
c07a0 5c 43 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 \Console\Output\BufferedOutput;.
c07c0 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
c07e0 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
c0800 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 6e 3b y\Component\Console\Application;
c0820 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
c0840 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 elper\HelperSet;.........class.C
c0860 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 ommand.{.private.$application;.p
c0880 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 54 69 rivate.$name;.private.$processTi
c08a0 74 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b tle;.private.$aliases.=.array();
c08c0 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 .private.$definition;.private.$h
c08e0 65 6c 70 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 elp;.private.$description;.priva
c0900 74 65 20 24 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 66 61 6c te.$ignoreValidationErrors.=.fal
c0920 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 6e 69 74 69 se;.private.$applicationDefiniti
c0940 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 onMerged.=.false;.private.$appli
c0960 63 61 74 69 6f 6e 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 cationDefinitionMergedWithArgs.=
c0980 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 .false;.private.$code;.private.$
c09a0 73 79 6e 6f 70 73 69 73 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 0a 0a synopsis;.private.$helperSet;...
c09c0 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
c09e0 75 63 74 28 24 6e 61 6d 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e uct($name.=.null).{.$this->defin
c0a00 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a ition.=.new.InputDefinition();..
c0a20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 if.(null.!==.$name).{.$this->set
c0a40 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 Name($name);.}..$this->configure
c0a60 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e 61 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e ();..if.(!$this->name).{.throw.n
c0a80 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 54 68 65 20 ew.\LogicException(sprintf('The.
c0aa0 63 6f 6d 6d 61 6e 64 20 64 65 66 69 6e 65 64 20 69 6e 20 22 25 73 22 20 63 61 6e 6e 6f 74 20 68 command.defined.in."%s".cannot.h
c0ac0 61 76 65 20 61 6e 20 65 6d 70 74 79 20 6e 61 6d 65 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 ave.an.empty.name.',.get_class($
c0ae0 74 68 69 73 29 29 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 this)));.}.}.......public.functi
c0b00 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 29 0a 7b 0a 24 74 on.ignoreValidationErrors().{.$t
c0b20 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 20 3d 20 74 72 his->ignoreValidationErrors.=.tr
c0b40 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ue;.}.........public.function.se
c0b60 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 61 70 70 6c 69 63 tApplication(Application.$applic
c0b80 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 6c 69 63 61 74 69 ation.=.null).{.$this->applicati
c0ba0 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 70 6c 69 63 61 74 on.=.$application;.if.($applicat
c0bc0 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 28 24 61 70 70 6c ion).{.$this->setHelperSet($appl
c0be0 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 7d 20 65 6c 73 65 ication->getHelperSet());.}.else
c0c00 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 3b 0a 7d 0a 7d 0a .{.$this->helperSet.=.null;.}.}.
c0c20 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 72 53 ......public.function.setHelperS
c0c40 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 68 69 73 et(HelperSet.$helperSet).{.$this
c0c60 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a ->helperSet.=.$helperSet;.}.....
c0c80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 ..public.function.getHelperSet()
c0ca0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a .{.return.$this->helperSet;.}...
c0cc0 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 70 70 6c 69 63 61 ......public.function.getApplica
c0ce0 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 6c 69 63 61 74 69 tion().{.return.$this->applicati
c0d00 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 74 69 6f 6e 20 69 on;.}..........public.function.i
c0d20 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 7d 0a 0a 0a 0a 0a sEnabled().{.return.true;.}.....
c0d40 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().{
c0d60 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 .}...................protected.f
c0d80 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.$
c0da0 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).
c0dc0 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 6f 75 {.throw.new.\LogicException('You
c0de0 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 29 20 6d 65 74 .must.override.the.execute().met
c0e00 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 20 63 6c 61 73 hod.in.the.concrete.command.clas
c0e20 73 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e s.');.}............protected.fun
c0e40 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 69 ction.interact(InputInterface.$i
c0e60 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b nput,.OutputInterface.$output).{
c0e80 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .}...........protected.function.
c0ea0 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 74 initialize(InputInterface.$input
c0ec0 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 0a ,.OutputInterface.$output).{.}..
c0ee0 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
c0f00 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 75 on.run(InputInterface.$input,.Ou
c0f20 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 73 tputInterface.$output).{...$this
c0f40 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 65 ->getSynopsis();....$this->merge
c0f60 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 20 ApplicationDefinition();....try.
c0f80 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 6e {.$input->bind($this->definition
c0fa0 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 20 );.}.catch.(\Exception.$e).{.if.
c0fc0 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 29 (!$this->ignoreValidationErrors)
c0fe0 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 6c .{.throw.$e;.}.}..$this->initial
c1000 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 6e 75 6c 6c 20 ize($input,.$output);..if.(null.
c1020 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 69 74 6c 65 29 20 7b 0a 69 66 20 28 66 !==.$this->processTitle).{.if.(f
c1040 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 63 6c 69 5f 73 65 74 5f 70 72 6f 63 65 73 73 5f unction_exists('cli_set_process_
c1060 74 69 74 6c 65 27 29 29 20 7b 0a 63 6c 69 5f 73 65 74 5f 70 72 6f 63 65 73 73 5f 74 69 74 6c 65 title')).{.cli_set_process_title
c1080 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 69 74 6c 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 ($this->processTitle);.}.elseif.
c10a0 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 73 65 74 70 72 6f 63 74 69 74 6c 65 27 29 (function_exists('setproctitle')
c10c0 29 20 7b 0a 73 65 74 70 72 6f 63 74 69 74 6c 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 ).{.setproctitle($this->processT
c10e0 69 74 6c 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 itle);.}.elseif.(OutputInterface
c1100 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 3d 3d 3d 20 24 6f 75 ::VERBOSITY_VERY_VERBOSE.===.$ou
c1120 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d tput->getVerbosity()).{.$output-
c1140 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 49 6e 73 74 61 6c 6c 20 74 68 65 20 70 >writeln('<comment>Install.the.p
c1160 72 6f 63 74 69 74 6c 65 20 50 45 43 4c 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 63 68 61 6e roctitle.PECL.to.be.able.to.chan
c1180 67 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 74 69 74 6c 65 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 ge.the.process.title.</comment>'
c11a0 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 );.}.}..if.($input->isInteractiv
c11c0 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 28 24 69 6e 70 75 74 2c 20 24 e()).{.$this->interact($input,.$
c11e0 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a output);.}..$input->validate();.
c1200 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 64 65 29 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 .if.($this->code).{.$statusCode.
c1220 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 74 68 69 73 2d 3e 63 6f 64 65 2c 20 24 69 =.call_user_func($this->code,.$i
c1240 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 61 74 75 73 nput,.$output);.}.else.{.$status
c1260 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 69 6e 70 75 74 2c 20 24 6f Code.=.$this->execute($input,.$o
c1280 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 utput);.}..return.is_numeric($st
c12a0 61 74 75 73 43 6f 64 65 29 20 3f 20 28 69 6e 74 29 20 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 atusCode).?.(int).$statusCode.:.
c12c0 30 3b 0a 7d 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 0;.}..................public.fun
c12e0 63 74 69 6f 6e 20 73 65 74 43 6f 64 65 28 24 63 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 63 ction.setCode($code).{.if.(!is_c
c1300 61 6c 6c 61 62 6c 65 28 24 63 6f 64 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 allable($code)).{.throw.new.\Inv
c1320 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 63 alidArgumentException('Invalid.c
c1340 61 6c 6c 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 6f 20 43 6f 6d 6d 61 6e 64 3a 3a 73 65 74 allable.provided.to.Command::set
c1360 43 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d 20 24 63 6f 64 65 3b Code.');.}..$this->code.=.$code;
c1380 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ..return.$this;.}.........public
c13a0 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 .function.mergeApplicationDefini
c13c0 74 69 6f 6e 28 24 6d 65 72 67 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 tion($mergeArgs.=.true).{.if.(nu
c13e0 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 7c 7c 20 28 74 72 ll.===.$this->application.||.(tr
c1400 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 ue.===.$this->applicationDefinit
c1420 69 6f 6e 4d 65 72 67 65 64 20 26 26 20 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e ionMerged.&&.($this->application
c1440 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 7c 7c 20 21 24 6d 65 DefinitionMergedWithArgs.||.!$me
c1460 72 67 65 41 72 67 73 29 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 72 rgeArgs))).{.return;.}..if.($mer
c1480 67 65 41 72 67 73 29 20 7b 0a 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 24 74 geArgs).{.$currentArguments.=.$t
c14a0 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b his->definition->getArguments();
c14c0 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 .$this->definition->setArguments
c14e0 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 ($this->application->getDefiniti
c1500 6f 6e 28 29 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 65 on()->getArguments());.$this->de
c1520 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 63 75 72 72 65 6e 74 41 finition->addArguments($currentA
c1540 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d rguments);.}..$this->definition-
c1560 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e >addOptions($this->application->
c1580 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 3b 0a getDefinition()->getOptions());.
c15a0 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 .$this->applicationDefinitionMer
c15c0 67 65 64 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 6d 65 72 67 65 41 72 67 73 29 20 7b 0a 24 74 ged.=.true;.if.($mergeArgs).{.$t
c15e0 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
c1600 57 69 74 68 41 72 67 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 WithArgs.=.true;.}.}...........p
c1620 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 ublic.function.setDefinition($de
c1640 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 73 74 finition).{.if.($definition.inst
c1660 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d anceof.InputDefinition).{.$this-
c1680 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 20 65 6c 73 >definition.=.$definition;.}.els
c16a0 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 44 65 66 69 6e 69 e.{.$this->definition->setDefini
c16c0 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 70 70 tion($definition);.}..$this->app
c16e0 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 licationDefinitionMerged.=.false
c1700 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
c1720 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 c.function.getDefinition().{.ret
c1740 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a urn.$this->definition;.}........
c1760 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 74 69 76 65 44 65 66 ....public.function.getNativeDef
c1780 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 67 65 74 44 65 66 inition().{.return.$this->getDef
c17a0 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 inition();.}..............public
c17c0 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 6d 6f .function.addArgument($name,.$mo
c17e0 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
c1800 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 efault.=.null).{.$this->definiti
c1820 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e on->addArgument(new.InputArgumen
c1840 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 t($name,.$mode,.$description,.$d
c1860 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a efault));..return.$this;.}......
c1880 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 .........public.function.addOpti
c18a0 6f 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 on($name,.$shortcut.=.null,.$mod
c18c0 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 65 e.=.null,.$description.=.'',.$de
c18e0 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f fault.=.null).{.$this->definitio
c1900 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6e 61 n->addOption(new.InputOption($na
c1920 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 74 69 me,.$shortcut,.$mode,.$descripti
c1940 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d on,.$default));..return.$this;.}
c1960 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
c1980 6e 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 n.setName($name).{.$this->valida
c19a0 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e teName($name);..$this->name.=.$n
c19c0 61 6d 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 ame;..return.$this;.}...........
c19e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 63 65 73 73 54 69 74 ...public.function.setProcessTit
c1a00 6c 65 28 24 74 69 74 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 69 74 6c 65 le($title).{.$this->processTitle
c1a20 20 3d 20 24 74 69 74 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a .=.$title;..return.$this;.}.....
c1a40 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().{.
c1a60 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 0a 0a 0a 0a return.$this->name;.}...........
c1a80 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 6e 28 24 public.function.setDescription($
c1aa0 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 74 69 6f description).{.$this->descriptio
c1ac0 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b n.=.$description;..return.$this;
c1ae0 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
c1b00 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 73 63 scription().{.return.$this->desc
c1b20 72 69 70 74 69 6f 6e 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 ription;.}...........public.func
c1b40 74 69 6f 6e 20 73 65 74 48 65 6c 70 28 24 68 65 6c 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c tion.setHelp($help).{.$this->hel
c1b60 70 20 3d 20 24 68 65 6c 70 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a p.=.$help;..return.$this;.}.....
c1b80 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 28 29 0a 7b 0a ....public.function.getHelp().{.
c1ba0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 return.$this->help;.}........pub
c1bc0 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 48 65 6c 70 28 29 0a lic.function.getProcessedHelp().
c1be0 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 0a 24 70 6c 61 63 65 68 6f {.$name.=.$this->name;..$placeho
c1c00 6c 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 27 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 27 2c lders.=.array(.'%command.name%',
c1c20 0a 27 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 27 2c 0a 29 3b 0a 24 72 65 70 6c .'%command.full_name%',.);.$repl
c1c40 61 63 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 24 6e 61 6d 65 2c 0a 24 5f 53 45 52 56 45 acements.=.array(.$name,.$_SERVE
c1c60 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 2e 27 20 27 2e 24 6e 61 6d 65 2c 0a 29 3b 0a 0a 72 65 74 R['PHP_SELF'].'.'.$name,.);..ret
c1c80 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 2c 20 24 urn.str_replace($placeholders,.$
c1ca0 72 65 70 6c 61 63 65 6d 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 29 3b replacements,.$this->getHelp());
c1cc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 .}.............public.function.s
c1ce0 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 etAliases($aliases).{.if.(!is_ar
c1d00 72 61 79 28 24 61 6c 69 61 73 65 73 29 20 26 26 20 21 24 61 6c 69 61 73 65 73 20 69 6e 73 74 61 ray($aliases).&&.!$aliases.insta
c1d20 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 nceof.\Traversable).{.throw.new.
c1d40 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 24 61 6c 69 61 \InvalidArgumentException('$alia
c1d60 73 65 73 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 72 20 61 6e 20 69 6e 73 74 61 ses.must.be.an.array.or.an.insta
c1d80 6e 63 65 20 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 nce.of.\Traversable');.}..foreac
c1da0 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e h.($aliases.as.$alias).{.$this->
c1dc0 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e validateName($alias);.}..$this->
c1de0 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 aliases.=.$aliases;..return.$thi
c1e00 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 74 s;.}.........public.function.get
c1e20 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 Aliases().{.return.$this->aliase
c1e40 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 53 79 s;.}.......public.function.getSy
c1e60 6e 6f 70 73 69 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 nopsis().{.if.(null.===.$this->s
c1e80 79 6e 6f 70 73 69 73 29 20 7b 0a 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 20 3d 20 74 72 69 ynopsis).{.$this->synopsis.=.tri
c1ea0 6d 28 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 m(sprintf('%s.%s',.$this->name,.
c1ec0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 $this->definition->getSynopsis()
c1ee0 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 3b 0a 7d ));.}..return.$this->synopsis;.}
c1f00 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
c1f20 48 65 6c 70 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 Helper($name).{.return.$this->he
c1f40 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 lperSet->get($name);.}.........p
c1f60 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 65 73 63 72 ublic.function.asText().{.$descr
c1f80 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 3b 0a 24 6f iptor.=.new.TextDescriptor();.$o
c1fa0 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 75 66 66 65 utput.=.new.BufferedOutput(Buffe
c1fc0 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 20 74 72 75 redOutput::VERBOSITY_NORMAL,.tru
c1fe0 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 75 74 70 75 e);.$descriptor->describe($outpu
c2000 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 20 3d 3e 20 t,.$this,.array('raw_output'.=>.
c2020 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 63 68 28 29 true));..return.$output->fetch()
c2040 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 61 73 ;.}...........public.function.as
c2060 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 69 70 74 6f Xml($asDom.=.false).{.$descripto
c2080 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 20 28 24 61 r.=.new.XmlDescriptor();..if.($a
c20a0 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 67 65 74 43 sDom).{.return.$descriptor->getC
c20c0 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 75 74 70 75 ommandDocument($this);.}..$outpu
c20e0 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 65 73 63 72 t.=.new.BufferedOutput();.$descr
c2100 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 69 73 29 3b iptor->describe($output,.$this);
c2120 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 0a 0a 0a 0a ..return.$output->fetch();.}....
c2140 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 64 61 74 65 .......private.function.validate
c2160 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 68 28 27 2f Name($name).{.if.(!preg_match('/
c2180 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 6d 65 29 29 ^[^\:]++(\:[^\:]++)*$/',.$name))
c21a0 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
c21c0 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 20 22 25 73 eption(sprintf('Command.name."%s
c21e0 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 0a 7d 0a 3c ".is.invalid.',.$name));.}.}.}.<
c2200 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
c2220 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 \Component\Console\Command;..use
c2240 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 .Symfony\Component\Console\Helpe
c2260 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 6f 6e 79 5c r\DescriptorHelper;.use.Symfony\
c2280 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 Component\Console\Input\InputArg
c22a0 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ument;.use.Symfony\Component\Con
c22c0 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
c22e0 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
c2300 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
c2320 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
c2340 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\
c2360 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 0a 63 6c 61 Input\InputDefinition;.......cla
c2380 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 6e 64 0a 7b ss.ListCommand.extends.Command.{
c23a0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 ....protected.function.configure
c23c0 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 0a 2d 3e 73 ().{.$this.->setName('list').->s
c23e0 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 66 69 6e 69 etDefinition($this->createDefini
c2400 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 73 74 73 20 tion()).->setDescription('Lists.
c2420 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 54 68 65 20 commands').->setHelp(<<<EOF.The.
c2440 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 63 6f 6d 6d <info>%command.name%</info>.comm
c2460 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 69 6e 66 6f and.lists.all.commands:....<info
c2480 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 66 6f 3e 0a >php.%command.full_name%</info>.
c24a0 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 6d 6d 61 6e .You.can.also.display.the.comman
c24c0 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 0a 0a 20 20 ds.for.a.specific.namespace:....
c24e0 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 25 20 74 65 <info>php.%command.full_name%.te
c2500 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 75 74 20 74 st</info>..You.can.also.output.t
c2520 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 61 74 73 20 he.information.in.other.formats.
c2540 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 61 74 3c 2f by.using.the.<comment>--format</
c2560 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 70 20 25 63 comment>.option:....<info>php.%c
c2580 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 6d 6c 3c 2f ommand.full_name%.--format=xml</
c25a0 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 20 67 65 74 info>..It's.also.possible.to.get
c25c0 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 6c 20 66 6f .raw.list.of.commands.(useful.fo
c25e0 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 0a 0a 20 20 r.embedding.command.runner):....
c2600 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 25 20 2d 2d <info>php.%command.full_name%.--
c2620 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 6c 69 63 20 raw</info>.EOF.).;.}.....public.
c2640 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 28 29 0a 7b function.getNativeDefinition().{
c2660 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 69 6f 6e 28 .return.$this->createDefinition(
c2680 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 65 78 65 63 );.}.....protected.function.exec
c26a0 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
c26c0 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 6e 70 75 74 tInterface.$output).{.if.($input
c26e0 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 2d 3e 73 65 ->getOption('xml')).{.$input->se
c2700 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 0a 24 68 65 tOption('format',.'xml');.}..$he
c2720 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 29 3b 0a 24 lper.=.new.DescriptorHelper();.$
c2740 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 68 69 73 2d helper->describe($output,.$this-
c2760 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 6f 72 6d 61 >getApplication(),.array(.'forma
c2780 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 6d 61 74 27 t'.=>.$input->getOption('format'
c27a0 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 4f 70 74 69 ),.'raw_text'.=>.$input->getOpti
c27c0 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 6e 70 75 74 on('raw'),.'namespace'.=>.$input
c27e0 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 29 29 3b 0a ->getArgument('namespace'),.));.
c2800 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 65 44 65 66 }.....private.function.createDef
c2820 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 69 inition().{.return.new.InputDefi
c2840 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 nition(array(.new.InputArgument(
c2860 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 4f 50 54 49 'namespace',.InputArgument::OPTI
c2880 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 0a 6e 65 77 ONAL,.'The.namespace.name'),.new
c28a0 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 70 75 74 4f .InputOption('xml',.null,.InputO
c28c0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 6c 69 ption::VALUE_NONE,.'To.output.li
c28e0 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 28 27 72 61 st.as.XML'),.new.InputOption('ra
c2900 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 4e 4f 4e w',.null,.InputOption::VALUE_NON
c2920 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 73 74 27 29 E,.'To.output.raw.command.list')
c2940 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 6e 75 6c 6c ,.new.InputOption('format',.null
c2960 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,.'
c2980 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 61 74 73 27 To.output.list.in.other.formats'
c29a0 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 0a 0a 0a 0a ,.'txt'),.));.}.}.<?php.........
c29c0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
c29e0 6e 73 6f 6c 65 5c 54 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nsole\Tester;..use.Symfony\Compo
c2a00 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 nent\Console\Application;.use.Sy
c2a20 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 mfony\Component\Console\Input\Ar
c2a40 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c rayInput;.use.Symfony\Component\
c2a60 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
c2a80 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
c2aa0 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\
c2ac0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f Component\Console\Output\StreamO
c2ae0 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 69 63 61 74 utput;............class.Applicat
c2b00 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 74 69 6f 6e ionTester.{.private.$application
c2b20 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 ;.private.$input;.private.$outpu
c2b40 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 0a 0a 70 75 t;.private.$statusCode;.......pu
c2b60 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 6c 69 63 blic.function.__construct(Applic
c2b80 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 3e 61 70 70 ation.$application).{.$this->app
c2ba0 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 0a 0a 0a 0a lication.=.$application;.}......
c2bc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 61 72 ..........public.function.run(ar
c2be0 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 28 29 29 0a ray.$input,.$options.=.array()).
c2c00 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 70 75 74 28 {.$this->input.=.new.ArrayInput(
c2c20 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 27 69 6e 74 $input);.if.(isset($options['int
c2c40 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 3e 73 65 74 eractive'])).{.$this->input->set
c2c60 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 63 74 69 76 Interactive($options['interactiv
c2c80 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 20 53 74 72 e']);.}..$this->output.=.new.Str
c2ca0 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 79 27 2c 20 eamOutput(fopen('php://memory',.
c2cc0 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 69 6f 6e 73 'w',.false));.if.(isset($options
c2ce0 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 70 75 74 2d ['decorated'])).{.$this->output-
c2d00 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 72 61 74 65 >setDecorated($options['decorate
c2d20 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 76 65 72 62 d']);.}.if.(isset($options['verb
c2d40 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 65 74 56 65 osity'])).{.$this->output->setVe
c2d60 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 5d 29 3b 0a rbosity($options['verbosity']);.
c2d80 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 3d 20 24 74 }..return.$this->statusCode.=.$t
c2da0 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 3e 69 6e 70 his->application->run($this->inp
c2dc0 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 0a 0a 70 75 ut,.$this->output);.}.........pu
c2de0 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 72 6d 61 6c blic.function.getDisplay($normal
c2e00 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 3e 6f 75 74 ize.=.false).{.rewind($this->out
c2e20 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 20 3d 20 73 put->getStream());..$display.=.s
c2e40 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 tream_get_contents($this->output
c2e60 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 69 7a 65 29 ->getStream());..if.($normalize)
c2e80 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 50 5f 45 4f .{.$display.=.str_replace(PHP_EO
c2ea0 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 6e 20 24 64 L,."\n",.$display);.}..return.$d
c2ec0 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 69 6f 6e 20 isplay;.}.......public.function.
c2ee0 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 6e 70 75 74 getInput().{.return.$this->input
c2f00 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 75 74 ;.}.......public.function.getOut
c2f20 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 3b 0a 7d 0a put().{.return.$this->output;.}.
c2f40 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 74 75 73 43 ......public.function.getStatusC
c2f60 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 43 6f 64 65 ode().{.return.$this->statusCode
c2f80 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.
c2fa0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 54 65 73 74 65 72 Symfony\Component\Console\Tester
c2fc0 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
c2fe0 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
c3000 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 mponent\Console\Input\ArrayInput
c3020 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\
c3040 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 66 6f 6e 79 Output\StreamOutput;.use.Symfony
c3060 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 6e \Component\Console\Input\InputIn
c3080 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
c30a0 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 0a onsole\Output\OutputInterface;..
c30c0 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 72 69 76 61 .....class.CommandTester.{.priva
c30e0 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 0a 70 72 69 te.$command;.private.$input;.pri
c3100 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 73 43 6f 64 vate.$output;.private.$statusCod
c3120 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 73 74 e;.......public.function.__const
c3140 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e ruct(Command.$command).{.$this->
c3160 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a command.=.$command;.}...........
c3180 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 61 72 72 .....public.function.execute(arr
c31a0 61 79 20 24 69 6e 70 75 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 ay.$input,.array.$options.=.arra
c31c0 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 5b 27 63 6f y()).{.....if.(!isset($input['co
c31e0 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 63 61 74 69 mmand']).&&.(null.!==.$applicati
c3200 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 69 63 61 74 on.=.$this->command->getApplicat
c3220 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 65 66 69 6e ion()).&&.$application->getDefin
c3240 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 64 27 29 0a ition()->hasArgument('command').
c3260 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 73 2d 3e 63 ).{.$input['command'].=.$this->c
c3280 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 3e 69 6e 70 ommand->getName();.}..$this->inp
c32a0 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 0a 69 66 20 ut.=.new.ArrayInput($input);.if.
c32c0 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 27 5d 29 29 (isset($options['interactive']))
c32e0 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 69 76 65 28 .{.$this->input->setInteractive(
c3300 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 0a 24 74 68 $options['interactive']);.}..$th
c3320 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 74 28 66 6f is->output.=.new.StreamOutput(fo
c3340 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 73 65 29 29 pen('php://memory',.'w',.false))
c3360 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 74 65 64 27 ;.if.(isset($options['decorated'
c3380 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 72 61 74 65 ])).{.$this->output->setDecorate
c33a0 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 69 66 20 28 d($options['decorated']);.}.if.(
c33c0 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 29 20 7b 0a isset($options['verbosity'])).{.
c33e0 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 24 6f 70 74 $this->output->setVerbosity($opt
c3400 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 6e 20 24 74 ions['verbosity']);.}..return.$t
c3420 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 6d 61 6e 64 his->statusCode.=.$this->command
c3440 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 75 74 70 75 ->run($this->input,.$this->outpu
c3460 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 6e 20 67 65 t);.}.........public.function.ge
c3480 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 0a 7b 0a 72 tDisplay($normalize.=.false).{.r
c34a0 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 61 6d 28 29 ewind($this->output->getStream()
c34c0 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 6e 74 65 6e );..$display.=.stream_get_conten
c34e0 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 29 29 3b 0a ts($this->output->getStream());.
c3500 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 3d 20 73 74 .if.($normalize).{.$display.=.st
c3520 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 73 70 6c 61 r_replace(PHP_EOL,."\n",.$displa
c3540 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 0a 0a 0a 0a y);.}..return.$display;.}.......
c3560 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 0a 72 65 74 public.function.getInput().{.ret
c3580 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 62 6c 69 63 urn.$this->input;.}.......public
c35a0 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 20 24 .function.getOutput().{.return.$
c35c0 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 20 66 75 6e this->output;.}.......public.fun
c35e0 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 72 6e 20 24 ction.getStatusCode().{.return.$
c3600 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 0a 0a 0a 0a this->statusCode;.}.}.<?php.....
c3620 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
c3640 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 73 73 20 4f t\Console\Formatter;.....class.O
c3660 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 0a 0a 70 72 utputFormatterStyleStack.{....pr
c3680 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 65 6d 70 74 ivate.$styles;.....private.$empt
c36a0 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 6e 20 5f 5f yStyle;.......public.function.__
c36c0 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 6c 65 49 6e construct(OutputFormatterStyleIn
c36e0 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 7b 0a 24 74 terface.$emptyStyle.=.null).{.$t
c3700 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 65 20 3f 3a his->emptyStyle.=.$emptyStyle.?:
c3720 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 0a 24 74 68 .new.OutputFormatterStyle();.$th
c3740 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 6e 63 74 69 is->reset();.}.....public.functi
c3760 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 20 61 72 72 on.reset().{.$this->styles.=.arr
c3780 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 6e 20 70 75 ay();.}.......public.function.pu
c37a0 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 66 61 63 65 sh(OutputFormatterStyleInterface
c37c0 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 20 24 73 74 .$style).{.$this->styles[].=.$st
c37e0 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e yle;.}...........public.function
c3800 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 65 72 66 61 .pop(OutputFormatterStyleInterfa
c3820 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 79 28 24 74 ce.$style.=.null).{.if.(empty($t
c3840 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 2d 3e 65 6d his->styles)).{.return.$this->em
c3860 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 74 79 6c 65 ptyStyle;.}..if.(null.===.$style
c3880 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 73 74 79 6c ).{.return.array_pop($this->styl
c38a0 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 73 65 28 24 es);.}..foreach.(array_reverse($
c38c0 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 78 20 3d 3e this->styles,.true).as.$index.=>
c38e0 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 2d 3e 61 70 .$stackedStyle).{.if.($style->ap
c3900 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 70 70 6c 79 ply('').===.$stackedStyle->apply
c3920 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 79 5f 73 6c ('')).{.$this->styles.=.array_sl
c3940 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 29 3b 0a 0a ice($this->styles,.0,.$index);..
c3960 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 68 72 6f 77 return.$stackedStyle;.}.}..throw
c3980 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 .new.\InvalidArgumentException('
c39a0 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 20 66 6f 75 Incorrectly.nested.style.tag.fou
c39c0 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 6f 6e 20 67 nd.');.}.......public.function.g
c39e0 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 73 2d 3e 73 etCurrent().{.if.(empty($this->s
c3a00 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 79 53 74 79 tyles)).{.return.$this->emptySty
c3a20 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 63 6f 75 6e le;.}..return.$this->styles[coun
c3a40 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 0a 70 75 62 t($this->styles)-1];.}.......pub
c3a60 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 75 74 70 75 lic.function.setEmptyStyle(Outpu
c3a80 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 tFormatterStyleInterface.$emptyS
c3aa0 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 24 65 6d 70 tyle).{.$this->emptyStyle.=.$emp
c3ac0 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 0a 0a 70 75 tyStyle;..return.$this;.}.....pu
c3ae0 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 29 0a 7b 0a blic.function.getEmptyStyle().{.
c3b00 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 7d 0a 3c 3f return.$this->emptyStyle;.}.}.<?
c3b20 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\
c3b40 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a Component\Console\Formatter;....
c3b60 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 79 6c 65 20 .....class.OutputFormatterStyle.
c3b80 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 79 6c 65 49 implements.OutputFormatterStyleI
c3ba0 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 76 61 69 6c nterface.{.private.static.$avail
c3bc0 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 28 0a 27 62 ableForegroundColors.=.array(.'b
c3be0 6c 61 63 6b 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 30 2c 20 27 75 6e 73 lack'.=>.array('set'.=>.30,.'uns
c3c00 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 72 65 64 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 et'.=>.39),.'red'.=>.array('set'
c3c20 20 3d 3e 20 33 31 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 67 72 65 65 6e 27 20 .=>.31,.'unset'.=>.39),.'green'.
c3c40 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 32 2c 20 27 75 6e 73 65 74 27 20 3d 3e =>.array('set'.=>.32,.'unset'.=>
c3c60 20 33 39 29 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e .39),.'yellow'.=>.array('set'.=>
c3c80 20 33 33 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 61 .33,.'unset'.=>.39),.'blue'.=>.a
c3ca0 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 34 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 rray('set'.=>.34,.'unset'.=>.39)
c3cc0 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 35 ,.'magenta'.=>.array('set'.=>.35
c3ce0 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 61 72 72 61 ,.'unset'.=>.39),.'cyan'.=>.arra
c3d00 79 28 27 73 65 74 27 20 3d 3e 20 33 36 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 y('set'.=>.36,.'unset'.=>.39),.'
c3d20 77 68 69 74 65 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 37 2c 20 27 75 6e white'.=>.array('set'.=>.37,.'un
c3d40 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 set'.=>.39),.);.private.static.$
c3d60 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 20 3d 20 61 72 72 61 availableBackgroundColors.=.arra
c3d80 79 28 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 30 2c y(.'black'.=>.array('set'.=>.40,
c3da0 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 72 65 64 27 20 3d 3e 20 61 72 72 61 79 28 .'unset'.=>.49),.'red'.=>.array(
c3dc0 27 73 65 74 27 20 3d 3e 20 34 31 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 67 72 'set'.=>.41,.'unset'.=>.49),.'gr
c3de0 65 65 6e 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 32 2c 20 27 75 6e 73 65 een'.=>.array('set'.=>.42,.'unse
c3e00 74 27 20 3d 3e 20 34 39 29 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 t'.=>.49),.'yellow'.=>.array('se
c3e20 74 27 20 3d 3e 20 34 33 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 62 6c 75 65 27 t'.=>.43,.'unset'.=>.49),.'blue'
c3e40 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 34 2c 20 27 75 6e 73 65 74 27 20 3d .=>.array('set'.=>.44,.'unset'.=
c3e60 3e 20 34 39 29 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 >.49),.'magenta'.=>.array('set'.
c3e80 3d 3e 20 34 35 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 63 79 61 6e 27 20 3d 3e =>.45,.'unset'.=>.49),.'cyan'.=>
c3ea0 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 36 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 .array('set'.=>.46,.'unset'.=>.4
c3ec0 39 29 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 37 9),.'white'.=>.array('set'.=>.47
c3ee0 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 ,.'unset'.=>.49),.);.private.sta
c3f00 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 tic.$availableOptions.=.array(.'
c3f20 62 6f 6c 64 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 31 2c 20 27 75 6e 73 65 bold'.=>.array('set'.=>.1,.'unse
c3f40 74 27 20 3d 3e 20 32 32 29 2c 0a 27 75 6e 64 65 72 73 63 6f 72 65 27 20 3d 3e 20 61 72 72 61 79 t'.=>.22),.'underscore'.=>.array
c3f60 28 27 73 65 74 27 20 3d 3e 20 34 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 32 34 29 2c 0a 27 62 6c ('set'.=>.4,.'unset'.=>.24),.'bl
c3f80 69 6e 6b 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 35 2c 20 27 75 6e 73 65 74 ink'.=>.array('set'.=>.5,.'unset
c3fa0 27 20 3d 3e 20 32 35 29 2c 0a 27 72 65 76 65 72 73 65 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 '.=>.25),.'reverse'.=>.array('se
c3fc0 74 27 20 3d 3e 20 37 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 32 37 29 2c 0a 27 63 6f 6e 63 65 61 t'.=>.7,.'unset'.=>.27),.'concea
c3fe0 6c 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 38 2c 20 27 75 6e 73 65 74 27 20 l'.=>.array('set'.=>.8,.'unset'.
c4000 3d 3e 20 32 38 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 65 67 72 6f 75 6e 64 3b =>.28),.);..private.$foreground;
c4020 0a 70 72 69 76 61 74 65 20 24 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6f .private.$background;.private.$o
c4040 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ptions.=.array();...........publ
c4060 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 6f 72 65 67 72 6f ic.function.__construct($foregro
c4080 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 24 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 und.=.null,.$background.=.null,.
c40a0 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 array.$options.=.array()).{.if.(
c40c0 6e 75 6c 6c 20 21 3d 3d 20 24 66 6f 72 65 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 null.!==.$foreground).{.$this->s
c40e0 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 66 6f 72 65 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 etForeground($foreground);.}.if.
c4100 28 6e 75 6c 6c 20 21 3d 3d 20 24 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e (null.!==.$background).{.$this->
c4120 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 62 61 63 6b 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 setBackground($background);.}.if
c4140 20 28 63 6f 75 6e 74 28 24 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f .(count($options)).{.$this->setO
c4160 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ptions($options);.}.}...........
c4180 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 public.function.setForeground($c
c41a0 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c olor.=.null).{.if.(null.===.$col
c41c0 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a or).{.$this->foreground.=.null;.
c41e0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 .return;.}..if.(!isset(static::$
c4200 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 availableForegroundColors[$color
c4220 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 74 ])).{.throw.new.\InvalidArgument
c4240 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 66 6f 72 65 Exception(sprintf(.'Invalid.fore
c4260 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 ground.color.specified:."%s"..Ex
c4280 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 pected.one.of.(%s)',.$color,.imp
c42a0 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 lode(',.',.array_keys(static::$a
c42c0 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d vailableForegroundColors)).));.}
c42e0 0a 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 ..$this->foreground.=.static::$a
c4300 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d vailableForegroundColors[$color]
c4320 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ;.}...........public.function.se
c4340 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 tBackground($color.=.null).{.if.
c4360 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 (null.===.$color).{.$this->backg
c4380 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 round.=.null;..return;.}..if.(!i
c43a0 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e sset(static::$availableBackgroun
c43c0 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 dColors[$color])).{.throw.new.\I
c43e0 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(
c4400 0a 27 49 6e 76 61 6c 69 64 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 .'Invalid.background.color.speci
c4420 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 fied:."%s"..Expected.one.of.(%s)
c4440 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b ',.$color,.implode(',.',.array_k
c4460 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 eys(static::$availableBackground
c4480 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e Colors)).));.}..$this->backgroun
c44a0 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 d.=.static::$availableBackground
c44c0 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c Colors[$color];.}...........publ
c44e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b ic.function.setOption($option).{
c4500 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 4f 70 .if.(!isset(static::$availableOp
c4520 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e tions[$option])).{.throw.new.\In
c4540 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 0a validArgumentException(sprintf(.
c4560 27 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 'Invalid.option.specified:."%s".
c4580 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 69 6f 6e 2c .Expected.one.of.(%s)',.$option,
c45a0 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
c45c0 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 29 29 0a 29 29 3b 0a 7d 0a 0a 69 66 20 ::$availableOptions)).));.}..if.
c45e0 28 21 69 6e 5f 61 72 72 61 79 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 (!in_array(static::$availableOpt
c4600 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 ions[$option],.$this->options)).
c4620 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 24 61 76 {.$this->options[].=.static::$av
c4640 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 0a 0a 0a ailableOptions[$option];.}.}....
c4660 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
c4680 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 63 3a 3a 24 ($option).{.if.(!isset(static::$
c46a0 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 7b 0a 74 68 availableOptions[$option])).{.th
c46c0 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
c46e0 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 70 65 63 69 n(sprintf(.'Invalid.option.speci
c4700 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 fied:."%s"..Expected.one.of.(%s)
c4720 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 72 61 79 5f ',.$option,.implode(',.',.array_
c4740 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 6e 73 29 29 keys(static::$availableOptions))
c4760 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 73 74 61 74 .));.}..$pos.=.array_search(stat
c4780 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 ic::$availableOptions[$option],.
c47a0 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 3d 3d 20 24 $this->options);.if.(false.!==.$
c47c0 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 24 70 6f 73 pos).{.unset($this->options[$pos
c47e0 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 6e 20 73 65 ]);.}.}.......public.function.se
c4800 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 74 68 69 73 tOptions(array.$options).{.$this
c4820 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 68 20 28 24 ->options.=.array();..foreach.($
c4840 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 3e 73 65 74 options.as.$option).{.$this->set
c4860 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 0a 70 75 62 Option($option);.}.}.........pub
c4880 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 24 73 65 74 lic.function.apply($text).{.$set
c48a0 43 6f 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 73 65 74 43 6f 64 65 73 20 3d 20 61 Codes.=.array();.$unsetCodes.=.a
c48c0 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 66 6f 72 rray();..if.(null.!==.$this->for
c48e0 65 67 72 6f 75 6e 64 29 20 7b 0a 24 73 65 74 43 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e eground).{.$setCodes[].=.$this->
c4900 66 6f 72 65 67 72 6f 75 6e 64 5b 27 73 65 74 27 5d 3b 0a 24 75 6e 73 65 74 43 6f 64 65 73 5b 5d foreground['set'];.$unsetCodes[]
c4920 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 5b 27 75 6e 73 65 74 27 5d 3b 0a 7d .=.$this->foreground['unset'];.}
c4940 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 29 .if.(null.!==.$this->background)
c4960 20 7b 0a 24 73 65 74 43 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 .{.$setCodes[].=.$this->backgrou
c4980 6e 64 5b 27 73 65 74 27 5d 3b 0a 24 75 6e 73 65 74 43 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 nd['set'];.$unsetCodes[].=.$this
c49a0 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 5b 27 75 6e 73 65 74 27 5d 3b 0a 7d 0a 69 66 20 28 63 6f 75 ->background['unset'];.}.if.(cou
c49c0 6e 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 nt($this->options)).{.foreach.($
c49e0 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 73 65 74 this->options.as.$option).{.$set
c4a00 43 6f 64 65 73 5b 5d 20 3d 20 24 6f 70 74 69 6f 6e 5b 27 73 65 74 27 5d 3b 0a 24 75 6e 73 65 74 Codes[].=.$option['set'];.$unset
c4a20 43 6f 64 65 73 5b 5d 20 3d 20 24 6f 70 74 69 6f 6e 5b 27 75 6e 73 65 74 27 5d 3b 0a 7d 0a 7d 0a Codes[].=.$option['unset'];.}.}.
c4a40 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 73 65 74 43 6f 64 65 73 29 29 20 7b 0a 72 .if.(0.===.count($setCodes)).{.r
c4a60 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 22 eturn.$text;.}..return.sprintf("
c4a80 5c 30 33 33 5b 25 73 6d 25 73 5c 30 33 33 5b 25 73 6d 22 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 \033[%sm%s\033[%sm",.implode(';'
c4aa0 2c 20 24 73 65 74 43 6f 64 65 73 29 2c 20 24 74 65 78 74 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 ,.$setCodes),.$text,.implode(';'
c4ac0 2c 20 24 75 6e 73 65 74 43 6f 64 65 73 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ,.$unsetCodes));.}.}.<?php......
c4ae0 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
c4b00 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 74 65 \Console\Formatter;.........inte
c4b20 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 72 66 rface.OutputFormatterStyleInterf
c4b40 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ace.{........public.function.set
c4b60 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 0a 0a Foreground($color.=.null);......
c4b80 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 64 ...public.function.setBackground
c4ba0 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 63 20 ($color.=.null);.........public.
c4bc0 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 0a 0a function.setOption($option);....
c4be0 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 28 24 ...public.function.unsetOption($
c4c00 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 20 73 option);.......public.function.s
c4c20 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 0a 0a etOptions(array.$options);......
c4c40 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 29 3b ...public.function.apply($text);
c4c60 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
c4c80 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 fony\Component\Console\Formatter
c4ca0 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 72 20 ;.........class.OutputFormatter.
c4cc0 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 72 66 implements.OutputFormatterInterf
c4ce0 61 63 65 0a 7b 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 ace.{.private.$decorated;.privat
c4d00 65 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 e.$styles.=.array();.private.$st
c4d20 79 6c 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 yleStack;.........public.static.
c4d40 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 function.escape($text).{.return.
c4d60 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d 3f 29 3c 2f 69 73 27 2c 20 preg_replace('/([^\\\\]?)</is',.
c4d80 27 24 31 5c 5c 3c 27 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c '$1\\<',.$text);.}..........publ
c4da0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 63 6f 72 61 74 ic.function.__construct($decorat
c4dc0 65 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 ed.=.false,.array.$styles.=.arra
c4de0 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 62 6f 6f 6c 29 y()).{.$this->decorated.=.(bool)
c4e00 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 27 65 .$decorated;..$this->setStyle('e
c4e20 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 65 28 rror',.new.OutputFormatterStyle(
c4e40 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 79 6c 'white',.'red'));.$this->setStyl
c4e60 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 74 79 e('info',.new.OutputFormatterSty
c4e80 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 27 63 le('green'));.$this->setStyle('c
c4ea0 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 79 6c omment',.new.OutputFormatterStyl
c4ec0 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 27 71 e('yellow'));.$this->setStyle('q
c4ee0 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 74 79 uestion',.new.OutputFormatterSty
c4f00 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 20 28 le('black',.'cyan'));..foreach.(
c4f20 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 24 74 $styles.as.$name.=>.$style).{.$t
c4f40 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 7d 0a his->setStyle($name,.$style);.}.
c4f60 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 74 46 .$this->styleStack.=.new.OutputF
c4f80 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 0a 0a ormatterStyleStack();.}.........
c4fa0 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 64 65 public.function.setDecorated($de
c4fc0 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 28 62 corated).{.$this->decorated.=.(b
c4fe0 6f 6f 6c 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ool).$decorated;.}.........publi
c5000 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 72 65 74 75 72 c.function.isDecorated().{.retur
c5020 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 0a 0a 0a 0a 70 n.$this->decorated;.}..........p
c5040 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 6d 65 2c 20 4f ublic.function.setStyle($name,.O
c5060 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 73 74 utputFormatterStyleInterface.$st
c5080 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 6f 77 65 72 28 yle).{.$this->styles[strtolower(
c50a0 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 0a 0a 0a 70 75 $name)].=.$style;.}...........pu
c50c0 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 65 29 0a 7b 0a blic.function.hasStyle($name).{.
c50e0 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 73 74 72 74 6f return.isset($this->styles[strto
c5100 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 0a 0a 0a 70 75 lower($name)]);.}.............pu
c5120 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 65 29 0a 7b 0a blic.function.getStyle($name).{.
c5140 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 29 20 7b 0a 74 if.(!$this->hasStyle($name)).{.t
c5160 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
c5180 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 3a 20 25 73 27 on(sprintf('Undefined.style:.%s'
c51a0 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 3e 73 74 79 6c ,.$name));.}..return.$this->styl
c51c0 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 0a 0a 0a 0a 0a es[strtolower($name)];.}........
c51e0 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 6d 65 73 73 61 ...public.function.format($messa
c5200 67 65 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b ge).{.$offset.=.0;.$output.=.'';
c5220 0a 24 74 61 67 52 65 67 65 78 20 3d 20 27 5b 61 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2a .$tagRegex.=.'[a-z][a-z0-9_=;-]*
c5240 27 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 22 23 3c 28 28 24 74 61 67 52 65 67 65 78 ';.preg_match_all("#<(($tagRegex
c5260 29 20 7c 20 2f 28 24 74 61 67 52 65 67 65 78 29 3f 29 3e 23 69 73 78 22 2c 20 24 6d 65 73 73 61 ).|./($tagRegex)?)>#isx",.$messa
c5280 67 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 52 ge,.$matches,.PREG_OFFSET_CAPTUR
c52a0 45 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 20 61 73 20 24 69 20 3d E);.foreach.($matches[0].as.$i.=
c52c0 3e 20 24 6d 61 74 63 68 29 20 7b 0a 24 70 6f 73 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 >.$match).{.$pos.=.$match[1];.$t
c52e0 65 78 74 20 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 0a 69 66 20 28 30 20 21 3d 20 24 70 6f 73 20 ext.=.$match[0];..if.(0.!=.$pos.
c5300 26 26 20 27 5c 5c 27 20 3d 3d 20 24 6d 65 73 73 61 67 65 5b 24 70 6f 73 20 2d 20 31 5d 29 20 7b &&.'\\'.==.$message[$pos.-.1]).{
c5320 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 20 2e 3d 20 24 74 68 69 73 .continue;.}....$output..=.$this
c5340 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 73 75 62 73 74 72 28 24 6d 65 73 73 ->applyCurrentStyle(substr($mess
c5360 61 67 65 2c 20 24 6f 66 66 73 65 74 2c 20 24 70 6f 73 20 2d 20 24 6f 66 66 73 65 74 29 29 3b 0a age,.$offset,.$pos.-.$offset));.
c5380 24 6f 66 66 73 65 74 20 3d 20 24 70 6f 73 20 2b 20 73 74 72 6c 65 6e 28 24 74 65 78 74 29 3b 0a $offset.=.$pos.+.strlen($text);.
c53a0 0a 0a 20 69 66 20 28 24 6f 70 65 6e 20 3d 20 27 2f 27 20 21 3d 20 24 74 65 78 74 5b 31 5d 29 20 ...if.($open.=.'/'.!=.$text[1]).
c53c0 7b 0a 24 74 61 67 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 5b 24 69 5d 5b 30 5d 3b 0a 7d 20 65 {.$tag.=.$matches[1][$i][0];.}.e
c53e0 6c 73 65 20 7b 0a 24 74 61 67 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 5b 24 lse.{.$tag.=.isset($matches[3][$
c5400 69 5d 5b 30 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 5b 24 69 5d 5b 30 5d 20 3a 20 27 27 i][0]).?.$matches[3][$i][0].:.''
c5420 3b 0a 7d 0a 0a 69 66 20 28 21 24 6f 70 65 6e 20 26 26 20 21 24 74 61 67 29 20 7b 0a 0a 20 24 74 ;.}..if.(!$open.&&.!$tag).{...$t
c5440 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 29 3b 0a 7d 20 65 6c 73 65 69 66 his->styleStack->pop();.}.elseif
c5460 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 .(false.===.$style.=.$this->crea
c5480 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 teStyleFromString(strtolower($ta
c54a0 67 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 g))).{.$output..=.$this->applyCu
c54c0 72 72 65 6e 74 53 74 79 6c 65 28 24 74 65 78 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6f 70 rrentStyle($text);.}.elseif.($op
c54e0 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 75 73 68 28 24 73 en).{.$this->styleStack->push($s
c5500 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 74 61 63 tyle);.}.else.{.$this->styleStac
c5520 6b 2d 3e 70 6f 70 28 24 73 74 79 6c 65 29 3b 0a 7d 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 2e 3d 20 k->pop($style);.}.}..$output..=.
c5540 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 73 75 62 73 74 72 28 $this->applyCurrentStyle(substr(
c5560 24 6d 65 73 73 61 67 65 2c 20 24 6f 66 66 73 65 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 $message,.$offset));..return.str
c5580 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 27 2c 20 27 3c 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d _replace('\\<',.'<',.$output);.}
c55a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 53 74 61 .....public.function.getStyleSta
c55c0 63 6b 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 3b ck().{.return.$this->styleStack;
c55e0 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 65 61 .}.........private.function.crea
c5600 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 66 20 teStyleFromString($string).{.if.
c5620 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 24 73 74 72 69 6e 67 5d 29 29 20 (isset($this->styles[$string])).
c5640 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 24 73 74 72 69 6e 67 5d 3b {.return.$this->styles[$string];
c5660 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b .}..if.(!preg_match_all('/([^=]+
c5680 29 3d 28 5b 5e 3b 5d 2b 29 28 3b 7c 24 29 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 )=([^;]+)(;|$)/',.strtolower($st
c56a0 72 69 6e 67 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 ring),.$matches,.PREG_SET_ORDER)
c56c0 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 6e 65 ).{.return.false;.}..$style.=.ne
c56e0 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 66 6f 72 65 61 63 w.OutputFormatterStyle();.foreac
c5700 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 61 72 72 61 79 5f 73 h.($matches.as.$match).{.array_s
c5720 68 69 66 74 28 24 6d 61 74 63 68 29 3b 0a 0a 69 66 20 28 27 66 67 27 20 3d 3d 20 24 6d 61 74 63 hift($match);..if.('fg'.==.$matc
c5740 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 6d h[0]).{.$style->setForeground($m
c5760 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 62 67 27 20 3d 3d 20 24 6d 61 74 atch[1]);.}.elseif.('bg'.==.$mat
c5780 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 ch[0]).{.$style->setBackground($
c57a0 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 72 79 20 7b 0a 24 73 74 79 6c 65 match[1]);.}.else.{.try.{.$style
c57c0 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 63 61 74 63 68 20 ->setOption($match[1]);.}.catch.
c57e0 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b (\InvalidArgumentException.$e).{
c5800 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 .return.false;.}.}.}..return.$st
c5820 79 6c 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 yle;.}.........private.function.
c5840 61 70 70 6c 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 applyCurrentStyle($text).{.retur
c5860 6e 20 24 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 20 26 26 20 73 74 72 6c 65 6e n.$this->isDecorated().&&.strlen
c5880 28 24 74 65 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 ($text).>.0.?.$this->styleStack-
c58a0 3e 67 65 74 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 >getCurrent()->apply($text).:.$t
c58c0 65 78 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 ext;.}.}.<?php...........namespa
c58e0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 ce.Symfony\Component\Console\For
c5900 6d 61 74 74 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 matter;.........interface.Output
c5920 46 6f 72 6d 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 FormatterInterface.{........publ
c5940 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 ic.function.setDecorated($decora
c5960 74 65 64 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 69 73 ted);.........public.function.is
c5980 44 65 63 6f 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 Decorated();..........public.fun
c59a0 63 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d ction.setStyle($name,.OutputForm
c59c0 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 3b 0a 0a 0a 0a atterStyleInterface.$style);....
c59e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 .......public.function.hasStyle(
c5a00 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 66 75 6e 63 74 69 6f $name);...........public.functio
c5a20 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 n.getStyle($name);...........pub
c5a40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d lic.function.format($message);.}
c5a60 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
c5a80 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f ny\Component\Console;..use.Symfo
c5aa0 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 5c ny\Component\Console\Descriptor\
c5ac0 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 6f 6d 70 TextDescriptor;.use.Symfony\Comp
c5ae0 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 65 73 63 onent\Console\Descriptor\XmlDesc
c5b00 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 5c 43 6f riptor;.use.Symfony\Component\Co
c5b20 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 62 75 67 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 nsole\Helper\DebugFormatterHelpe
c5b40 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
c5b60 5c 48 65 6c 70 65 72 5c 50 72 6f 63 65 73 73 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f \Helper\ProcessHelper;.use.Symfo
c5b80 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 51 75 65 73 ny\Component\Console\Helper\Ques
c5ba0 74 69 6f 6e 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 tionHelper;.use.Symfony\Componen
c5bc0 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;.
c5be0 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
c5c00 70 75 74 5c 41 72 67 76 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f put\ArgvInput;.use.Symfony\Compo
c5c20 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 nent\Console\Input\ArrayInput;.u
c5c40 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
c5c60 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\
c5c80 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
c5ca0 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 6f ion;.use.Symfony\Component\Conso
c5cc0 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 66 le\Input\InputArgument;.use.Symf
c5ce0 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
c5d00 74 41 77 61 72 65 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 tAwareInterface;.use.Symfony\Com
c5d20 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 66 65 72 65 64 4f 75 ponent\Console\Output\BufferedOu
c5d40 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tput;.use.Symfony\Component\Cons
c5d60 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ole\Output\OutputInterface;.use.
c5d80 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
c5da0 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 6f 6d 70 \ConsoleOutput;.use.Symfony\Comp
c5dc0 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 4f 75 74 70 onent\Console\Output\ConsoleOutp
c5de0 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
c5e00 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 75 73 65 20 nt\Console\Command\Command;.use.
c5e20 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
c5e40 64 5c 48 65 6c 70 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 d\HelpCommand;.use.Symfony\Compo
c5e60 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 4c 69 73 74 43 6f 6d 6d 61 6e 64 nent\Console\Command\ListCommand
c5e80 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\
c5ea0 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f Helper\HelperSet;.use.Symfony\Co
c5ec0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 46 6f 72 6d 61 74 74 65 72 mponent\Console\Helper\Formatter
c5ee0 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
c5f00 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 nsole\Helper\DialogHelper;.use.S
c5f20 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 5c ymfony\Component\Console\Helper\
c5f40 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ProgressHelper;.use.Symfony\Comp
c5f60 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 72 onent\Console\Helper\TableHelper
c5f80 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\
c5fa0 45 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 53 Event\ConsoleCommandEvent;.use.S
c5fc0 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 5c 43 ymfony\Component\Console\Event\C
c5fe0 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e onsoleExceptionEvent;.use.Symfon
c6000 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 6e 73 6f 6c y\Component\Console\Event\Consol
c6020 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d eTerminateEvent;.use.Symfony\Com
c6040 70 6f 6e 65 6e 74 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 70 ponent\EventDispatcher\EventDisp
c6060 61 74 63 68 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a atcherInterface;................
c6080 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 ...class.Application.{.private.$
c60a0 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 77 61 6e commands.=.array();.private.$wan
c60c0 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6e 6e 69 6e 67 tHelps.=.false;.private.$running
c60e0 43 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 Command;.private.$name;.private.
c6100 24 76 65 72 73 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 63 61 74 63 68 45 78 63 65 70 74 69 6f $version;.private.$catchExceptio
c6120 6e 73 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 45 78 69 74 20 3d 20 74 ns.=.true;.private.$autoExit.=.t
c6140 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 rue;.private.$definition;.privat
c6160 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 69 76 61 74 65 20 24 64 69 73 70 61 74 63 68 65 e.$helperSet;.private.$dispatche
c6180 72 3b 0a 70 72 69 76 61 74 65 20 24 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 3b 0a r;.private.$terminalDimensions;.
c61a0 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 0a private.$defaultCommand;........
c61c0 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 6e ..public.function.__construct($n
c61e0 61 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 ame.=.'UNKNOWN',.$version.=.'UNK
c6200 4e 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 NOWN').{.$this->name.=.$name;.$t
c6220 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e his->version.=.$version;.$this->
c6240 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 20 3d 20 27 6c 69 73 74 27 3b 0a 24 74 68 69 73 2d 3e defaultCommand.=.'list';.$this->
c6260 68 65 6c 70 65 72 53 65 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 48 65 6c helperSet.=.$this->getDefaultHel
c6280 70 65 72 53 65 74 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 perSet();.$this->definition.=.$t
c62a0 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 his->getDefaultInputDefinition()
c62c0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 43 6f 6d ;..foreach.($this->getDefaultCom
c62e0 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 mands().as.$command).{.$this->ad
c6300 64 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 d($command);.}.}..public.functio
c6320 6e 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 n.setDispatcher(EventDispatcherI
c6340 6e 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 nterface.$dispatcher).{.$this->d
c6360 69 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 ispatcher.=.$dispatcher;.}......
c6380 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 ........public.function.run(Inpu
c63a0 74 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 tInterface.$input.=.null,.Output
c63c0 49 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 Interface.$output.=.null).{.if.(
c63e0 6e 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 null.===.$input).{.$input.=.new.
c6400 41 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 ArgvInput();.}..if.(null.===.$ou
c6420 74 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 tput).{.$output.=.new.ConsoleOut
c6440 70 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 put();.}..$this->configureIO($in
c6460 70 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 put,.$output);..try.{.$exitCode.
c6480 3d 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 =.$this->doRun($input,.$output);
c64a0 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 21 .}.catch.(\Exception.$e).{.if.(!
c64c0 24 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 $this->catchExceptions).{.throw.
c64e0 24 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 $e;.}..if.($output.instanceof.Co
c6500 6e 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 nsoleOutputInterface).{.$this->r
c6520 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 2d 3e 67 65 74 45 enderException($e,.$output->getE
c6540 72 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 rrorOutput());.}.else.{.$this->r
c6560 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 3b 0a 7d 0a 0a enderException($e,.$output);.}..
c6580 24 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 $exitCode.=.$e->getCode();.if.(i
c65a0 73 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 s_numeric($exitCode)).{.$exitCod
c65c0 65 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 e.=.(int).$exitCode;.if.(0.===.$
c65e0 65 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 exitCode).{.$exitCode.=.1;.}.}.e
c6600 6c 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 lse.{.$exitCode.=.1;.}.}..if.($t
c6620 68 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 his->autoExit).{.if.($exitCode.>
c6640 20 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 65 78 69 74 .255).{.$exitCode.=.255;.}..exit
c6660 28 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 43 6f 64 65 ($exitCode);.}..return.$exitCode
c6680 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 6f 52 ;.}..........public.function.doR
c66a0 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 un(InputInterface.$input,.Output
c66c0 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 3d 3d Interface.$output).{.if.(true.==
c66e0 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 =.$input->hasParameterOption(arr
c6700 61 79 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 ay('--version',.'-V'))).{.$outpu
c6720 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e t->writeln($this->getLongVersion
c6740 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 69 73 ());..return.0;.}..$name.=.$this
c6760 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 74 72 ->getCommandName($input);.if.(tr
c6780 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 69 6f ue.===.$input->hasParameterOptio
c67a0 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 20 28 n(array('--help',.'-h'))).{.if.(
c67c0 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 75 74 !$name).{.$name.=.'help';.$input
c67e0 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 6e 64 .=.new.ArrayInput(array('command
c6800 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 3e 77 '.=>.'help'));.}.else.{.$this->w
c6820 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 6d 65 antHelps.=.true;.}.}..if.(!$name
c6840 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e ).{.$name.=.$this->defaultComman
c6860 64 3b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 d;.$input.=.new.ArrayInput(array
c6880 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d ('command'.=>.$this->defaultComm
c68a0 61 6e 64 29 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 66 69 and));.}....$command.=.$this->fi
c68c0 6e 64 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e nd($name);..$this->runningComman
c68e0 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 68 69 73 2d d.=.$command;.$exitCode.=.$this-
c6900 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 75 74 2c 20 >doRunCommand($command,.$input,.
c6920 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 61 6e 64 20 $output);.$this->runningCommand.
c6940 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 0a 0a 0a 0a =.null;..return.$exitCode;.}....
c6960 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 72 53 65 .....public.function.setHelperSe
c6980 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 68 69 73 2d t(HelperSet.$helperSet).{.$this-
c69a0 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a >helperSet.=.$helperSet;.}......
c69c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 ...public.function.getHelperSet(
c69e0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a ).{.return.$this->helperSet;.}..
c6a00 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 69 6e 69 .......public.function.setDefini
c6a20 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 6f 6e tion(InputDefinition.$definition
c6a40 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 69 6e 69 74 ).{.$this->definition.=.$definit
c6a60 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 20 67 65 74 ion;.}.......public.function.get
c6a80 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 3e 64 65 66 Definition().{.return.$this->def
c6aa0 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
c6ac0 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f .getHelp().{.return.$this->getLo
c6ae0 6e 67 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ngVersion();.}.........public.fu
c6b00 6e 63 74 69 6f 6e 20 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 24 62 6f 6f 6c 65 nction.setCatchExceptions($boole
c6b20 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 28 an).{.$this->catchExceptions.=.(
c6b40 62 6f 6f 6c 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 bool).$boolean;.}.........public
c6b60 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 45 78 69 74 28 24 62 6f 6f 6c 65 61 6e 29 0a .function.setAutoExit($boolean).
c6b80 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 28 62 6f 6f 6c 29 20 24 62 6f 6f 6c {.$this->autoExit.=.(bool).$bool
c6ba0 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 69 6f 6e 20 67 ean;.}.........public.function.g
c6bc0 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 7d etName().{.return.$this->name;.}
c6be0 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 4e 61 6d 65 .........public.function.setName
c6c00 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;.}
c6c20 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 56 65 72 73 .........public.function.getVers
c6c40 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d ion().{.return.$this->version;.}
c6c60 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 56 65 72 73 .........public.function.setVers
c6c80 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d ion($version).{.$this->version.=
c6ca0 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$version;.}.........public.func
c6cc0 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 69 66 20 28 27 55 4e 4b tion.getLongVersion().{.if.('UNK
c6ce0 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 27 55 NOWN'.!==.$this->getName().&&.'U
c6d00 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 NKNOWN'.!==.$this->getVersion())
c6d20 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 .{.return.sprintf('<info>%s</inf
c6d40 6f 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e o>.version.<comment>%s</comment>
c6d60 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 56 ',.$this->getName(),.$this->getV
c6d80 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 3c 69 6e 66 6f 3e 43 6f 6e 73 ersion());.}..return.'<info>Cons
c6da0 6f 6c 65 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ole.Tool</info>';.}...........pu
c6dc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a blic.function.register($name).{.
c6de0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 28 24 6e return.$this->add(new.Command($n
c6e00 61 6d 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ame));.}.........public.function
c6e20 20 61 64 64 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a .addCommands(array.$commands).{.
c6e40 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 foreach.($commands.as.$command).
c6e60 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a {.$this->add($command);.}.}.....
c6e80 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 43 6f 6d 6d ........public.function.add(Comm
c6ea0 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 and.$command).{.$command->setApp
c6ec0 6c 69 63 61 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d lication($this);..if.(!$command-
c6ee0 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 >isEnabled()).{.$command->setApp
c6f00 6c 69 63 61 74 69 6f 6e 28 6e 75 6c 6c 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 lication(null);..return;.}..if.(
c6f20 6e 75 6c 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 null.===.$command->getDefinition
c6f40 28 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 28 ()).{.throw.new.\LogicException(
c6f60 73 70 72 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 sprintf('Command.class."%s".is.n
c6f80 6f 74 20 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 ot.correctly.initialized..You.pr
c6fa0 6f 62 61 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 obably.forgot.to.call.the.parent
c6fc0 20 63 6f 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 .constructor.',.get_class($comma
c6fe0 6e 64 29 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 nd)));.}..$this->commands[$comma
c7000 6e 64 2d 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 nd->getName()].=.$command;..fore
c7020 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 ach.($command->getAliases().as.$
c7040 61 6c 69 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 alias).{.$this->commands[$alias]
c7060 20 3d 20 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 .=.$command;.}..return.$command;
c7080 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .}.............public.function.g
c70a0 65 74 28 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 et($name).{.if.(!isset($this->co
c70c0 6d 6d 61 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 mmands[$name])).{.throw.new.\Inv
c70e0 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
c7100 68 65 20 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 he.command."%s".does.not.exist.'
c7120 2c 20 24 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 ,.$name));.}..$command.=.$this->
c7140 63 6f 6d 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 commands[$name];..if.($this->wan
c7160 74 48 65 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 tHelps).{.$this->wantHelps.=.fal
c7180 73 65 3b 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 se;..$helpCommand.=.$this->get('
c71a0 68 65 6c 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 help');.$helpCommand->setCommand
c71c0 28 24 63 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 ($command);..return.$helpCommand
c71e0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ;.}..return.$command;.}.........
c7200 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 ..public.function.has($name).{.r
c7220 65 74 75 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 eturn.isset($this->commands[$nam
c7240 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 e]);.}.........public.function.g
c7260 65 74 4e 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 etNamespaces().{.$namespaces.=.a
c7280 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 rray();.foreach.($this->commands
c72a0 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 .as.$command).{.$namespaces.=.ar
c72c0 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 73 70 61 63 65 73 2c 20 24 74 68 69 73 2d 3e 65 78 ray_merge($namespaces,.$this->ex
c72e0 74 72 61 63 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 tractAllNamespaces($command->get
c7300 4e 61 6d 65 28 29 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 Name()));..foreach.($command->ge
c7320 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d 65 73 70 61 tAliases().as.$alias).{.$namespa
c7340 63 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 73 70 61 63 65 73 2c 20 24 ces.=.array_merge($namespaces,.$
c7360 74 68 69 73 2d 3e 65 78 74 72 61 63 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 28 24 61 6c 69 61 this->extractAllNamespaces($alia
c7380 73 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 s));.}.}..return.array_values(ar
c73a0 72 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 73 70 61 ray_unique(array_filter($namespa
c73c0 63 65 73 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ces)));.}...........public.funct
c73e0 69 6f 6e 20 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 0a 7b 0a ion.findNamespace($namespace).{.
c7400 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 4e 61 6d 65 73 $allNamespaces.=.$this->getNames
c7420 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 63 65 5f 63 61 paces();.$expr.=.preg_replace_ca
c7440 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 6f 6e 20 28 24 llback('{([^:]+|)}',.function.($
c7460 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 65 28 24 6d 61 matches).{.return.preg_quote($ma
c7480 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 73 70 61 63 65 tches[1]).'[^:]*';.},.$namespace
c74a0 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 27 7b 5e 27 2e );.$namespaces.=.preg_grep('{^'.
c74c0 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 0a 0a 69 66 20 $expr.'}',.$allNamespaces);..if.
c74e0 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 73 61 67 65 20 (empty($namespaces)).{.$message.
c7500 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 6d 61 6e 64 73 =.sprintf('There.are.no.commands
c7520 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 61 63 65 2e 27 .defined.in.the."%s".namespace.'
c7540 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 61 74 69 76 65 ,.$namespace);..if.($alternative
c7560 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 28 24 6e 61 6d s.=.$this->findAlternatives($nam
c7580 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 61 79 28 29 29 espace,.$allNamespaces,.array())
c75a0 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 74 69 76 65 73 ).{.if.(1.==.count($alternatives
c75c0 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 6f 75 20 6d 65 )).{.$message..=."\n\nDid.you.me
c75e0 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 6d 65 73 73 61 an.this?\n....";.}.else.{.$messa
c7600 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 ge..=."\n\nDid.you.mean.one.of.t
c7620 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 3d 20 69 6d 70 hese?\n....";.}..$message..=.imp
c7640 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d lode("\n....",.$alternatives);.}
c7660 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 ..throw.new.\InvalidArgumentExce
c7680 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 3d 20 69 6e 5f ption($message);.}..$exact.=.in_
c76a0 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 65 73 2c 20 74 array($namespace,.$namespaces,.t
c76c0 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 29 20 3e 20 31 rue);.if.(count($namespaces).>.1
c76e0 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 6e 76 61 6c 69 .&&.!$exact).{.throw.new.\Invali
c7700 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.
c7720 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 20 28 25 73 29 namespace."%s".is.ambiguous.(%s)
c7740 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 62 62 72 65 76 .',.$namespace,.$this->getAbbrev
c7760 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 73 28 24 iationSuggestions(array_values($
c7780 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 65 78 61 63 74 namespaces))));.}..return.$exact
c77a0 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 73 70 61 63 65 .?.$namespace.:.reset($namespace
c77c0 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 20 66 75 6e 63 s);.}................public.func
c77e0 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 61 6e 64 73 20 tion.find($name).{.$allCommands.
c7800 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 73 29 3b 0a 24 =.array_keys($this->commands);.$
c7820 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 6b 28 27 7b 28 expr.=.preg_replace_callback('{(
c7840 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 65 73 29 20 7b [^:]+|)}',.function.($matches).{
c7860 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 5b 31 5d 29 2e .return.preg_quote($matches[1]).
c7880 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 64 73 20 3d 20 '[^:]*';.},.$name);.$commands.=.
c78a0 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 61 6c 6c 43 6f preg_grep('{^'.$expr.'}',.$allCo
c78c0 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 64 73 29 20 7c mmands);..if.(empty($commands).|
c78e0 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 72 2e 27 24 7d |.count(preg_grep('{^'.$expr.'$}
c7900 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 61 6c 73 65 20 ',.$commands)).<.1).{.if.(false.
c7920 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3a 27 29 29 20 !==.$pos.=.strrpos($name,.':')).
c7940 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 62 73 74 72 28 {...$this->findNamespace(substr(
c7960 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 67 65 20 3d 20 $name,.0,.$pos));.}..$message.=.
c7980 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 sprintf('Command."%s".is.not.def
c79a0 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 ined.',.$name);..if.($alternativ
c79c0 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 28 24 6e 61 es.=.$this->findAlternatives($na
c79e0 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 20 7b 0a 69 66 me,.$allCommands,.array())).{.if
c7a00 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 29 20 7b 0a 24 .(1.==.count($alternatives)).{.$
c7a20 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 74 68 69 message..=."\n\nDid.you.mean.thi
c7a40 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 65 20 2e 3d 20 s?\n....";.}.else.{.$message..=.
c7a60 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 65 73 65 3f 5c "\n\nDid.you.mean.one.of.these?\
c7a80 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 64 65 28 22 5c n....";.}.$message..=.implode("\
c7aa0 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 74 68 72 6f 77 n....",.$alternatives);.}..throw
c7ac0 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 24 .new.\InvalidArgumentException($
c7ae0 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 63 6f 6d 6d 61 6e message);.}....if.(count($comman
c7b00 64 73 29 20 3e 20 31 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4c 69 73 74 20 3d 20 24 74 68 69 73 2d ds).>.1).{.$commandList.=.$this-
c7b20 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 5f 66 69 6c >commands;.$commands.=.array_fil
c7b40 74 65 72 28 24 63 6f 6d 6d 61 6e 64 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6e 61 6d 65 4f 72 ter($commands,.function.($nameOr
c7b60 41 6c 69 61 73 29 20 75 73 65 20 28 24 63 6f 6d 6d 61 6e 64 4c 69 73 74 2c 20 24 63 6f 6d 6d 61 Alias).use.($commandList,.$comma
c7b80 6e 64 73 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 4c 69 nds).{.$commandName.=.$commandLi
c7ba0 73 74 5b 24 6e 61 6d 65 4f 72 41 6c 69 61 73 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 72 65 st[$nameOrAlias]->getName();..re
c7bc0 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 4f 72 41 6c 69 turn.$commandName.===.$nameOrAli
c7be0 61 73 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 2c 20 24 63 as.||.!in_array($commandName,.$c
c7c00 6f 6d 6d 61 6e 64 73 29 3b 0a 7d 29 3b 0a 7d 0a 0a 24 65 78 61 63 74 20 3d 20 69 6e 5f 61 72 72 ommands);.});.}..$exact.=.in_arr
c7c20 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 28 ay($name,.$commands,.true);.if.(
c7c40 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 29 count($commands).>.1.&&.!$exact)
c7c60 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 72 .{.$suggestions.=.$this->getAbbr
c7c80 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 73 eviationSuggestions(array_values
c7ca0 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 69 ($commands));..throw.new.\Invali
c7cc0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d dArgumentException(sprintf('Comm
c7ce0 61 6e 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e and."%s".is.ambiguous.(%s).',.$n
c7d00 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 24 ame,.$suggestions));.}..return.$
c7d20 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 74 this->get($exact.?.$name.:.reset
c7d40 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 6c ($commands));.}.............publ
c7d60 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 6c ic.function.all($namespace.=.nul
c7d80 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 0a l).{.if.(null.===.$namespace).{.
c7da0 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 6d return.$this->commands;.}..$comm
c7dc0 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 3e ands.=.array();.foreach.($this->
c7de0 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b commands.as.$name.=>.$command).{
c7e00 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 61 .if.($namespace.===.$this->extra
c7e20 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 28 ctNamespace($name,.substr_count(
c7e40 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 6e $namespace,.':').+.1)).{.$comman
c7e60 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 72 ds[$name].=.$command;.}.}..retur
c7e80 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 74 n.$commands;.}.........public.st
c7ea0 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 24 atic.function.getAbbreviations($
c7ec0 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 72 names).{.$abbrevs.=.array();.for
c7ee0 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 6c each.($names.as.$name).{.for.($l
c7f00 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 2d en.=.strlen($name);.$len.>.0;.--
c7f20 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 20 $len).{.$abbrev.=.substr($name,.
c7f40 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 20 0,.$len);.$abbrevs[$abbrev][].=.
c7f60 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 0a $name;.}.}..return.$abbrevs;.}..
c7f80 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 74 ..........public.function.asText
c7fa0 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 65 ($namespace.=.null,.$raw.=.false
c7fc0 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 69 ).{.$descriptor.=.new.TextDescri
c7fe0 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 75 ptor();.$output.=.new.BufferedOu
c8000 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 4e tput(BufferedOutput::VERBOSITY_N
c8020 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 63 ORMAL,.!$raw);.$descriptor->desc
c8040 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 65 ribe($output,.$this,.array('name
c8060 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 75 space'.=>.$namespace,.'raw_outpu
c8080 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 66 t'.=>.true));..return.$output->f
c80a0 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 63 etch();.}............public.func
c80c0 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 61 tion.asXml($namespace.=.null,.$a
c80e0 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 65 sDom.=.false).{.$descriptor.=.ne
c8100 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 20 w.XmlDescriptor();..if.($asDom).
c8120 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 61 {.return.$descriptor->getApplica
c8140 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 3b tionDocument($this,.$namespace);
c8160 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 74 .}..$output.=.new.BufferedOutput
c8180 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 75 ();.$descriptor->describe($outpu
c81a0 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 24 t,.$this,.array('namespace'.=>.$
c81c0 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 65 namespace));..return.$output->fe
c81e0 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 20 tch();.}........public.function.
c8200 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 64 renderException($e,.$output).{.d
c8220 6f 20 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c o.{.$title.=.sprintf('..[%s]..',
c8240 20 67 65 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a 0a 24 6c 65 6e 20 3d 20 24 74 68 69 73 2d 3e .get_class($e));..$len.=.$this->
c8260 73 74 72 69 6e 67 57 69 64 74 68 28 24 74 69 74 6c 65 29 3b 0a 0a 24 77 69 64 74 68 20 3d 20 24 stringWidth($title);..$width.=.$
c8280 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 69 73 this->getTerminalWidth().?.$this
c82a0 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 5f 49 ->getTerminalWidth().-.1.:.PHP_I
c82c0 4e 54 5f 4d 41 58 3b 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 NT_MAX;...if.(defined('HHVM_VERS
c82e0 49 4f 4e 27 29 20 26 26 20 24 77 69 64 74 68 20 3e 20 31 20 3c 3c 20 33 31 29 20 7b 0a 24 77 69 ION').&&.$width.>.1.<<.31).{.$wi
c8300 64 74 68 20 3d 20 31 20 3c 3c 20 33 31 3b 0a 7d 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 6f dth.=.1.<<.31;.}.$formatter.=.$o
c8320 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 utput->getFormatter();.$lines.=.
c8340 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 5c array();.foreach.(preg_split('/\
c8360 72 3f 5c 6e 2f 27 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 20 61 73 20 24 6c 69 r?\n/',.$e->getMessage()).as.$li
c8380 6e 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 70 6c 69 74 53 74 72 69 6e ne).{.foreach.($this->splitStrin
c83a0 67 42 79 57 69 64 74 68 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 20 2d 20 34 29 20 61 73 20 24 gByWidth($line,.$width.-.4).as.$
c83c0 6c 69 6e 65 29 20 7b 0a 0a 20 24 6c 69 6e 65 4c 65 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 line).{...$lineLength.=.$this->s
c83e0 74 72 69 6e 67 57 69 64 74 68 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 1b 5c 5b 5b 5e 6d tringWidth(preg_replace('/.\[[^m
c8400 5d 2a 6d 2f 27 2c 20 27 27 2c 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6c ]*m/',.'',.$formatter->format($l
c8420 69 6e 65 29 29 29 20 2b 20 34 3b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 24 6c 69 ine))).+.4;.$lines[].=.array($li
c8440 6e 65 2c 20 24 6c 69 6e 65 4c 65 6e 67 74 68 29 3b 0a 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 6c ne,.$lineLength);..$len.=.max($l
c8460 69 6e 65 4c 65 6e 67 74 68 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 ineLength,.$len);.}.}..$messages
c8480 20 3d 20 61 72 72 61 79 28 27 27 2c 20 27 27 29 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 .=.array('',.'');.$messages[].=.
c84a0 24 65 6d 70 74 79 4c 69 6e 65 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 $emptyLine.=.$formatter->format(
c84c0 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 73 74 72 sprintf('<error>%s</error>',.str
c84e0 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 29 3b 0a 24 6d 65 73 73 61 67 65 73 5b _repeat('.',.$len)));.$messages[
c8500 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 74 66 28 27 ].=.$formatter->format(sprintf('
c8520 3c 65 72 72 6f 72 3e 25 73 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 74 69 74 6c 65 2c 20 73 74 <error>%s%s</error>',.$title,.st
c8540 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 r_repeat('.',.max(0,.$len.-.$thi
c8560 73 2d 3e 73 74 72 69 6e 67 57 69 64 74 68 28 24 74 69 74 6c 65 29 29 29 29 29 3b 0a 66 6f 72 65 s->stringWidth($title)))));.fore
c8580 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 67 65 ach.($lines.as.$line).{.$message
c85a0 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 74 66 s[].=.$formatter->format(sprintf
c85c0 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 69 6e ('<error>..%s..%s</error>',.$lin
c85e0 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 6c 69 e[0],.str_repeat('.',.$len.-.$li
c8600 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 74 79 ne[1])));.}.$messages[].=.$empty
c8620 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 67 65 Line;.$messages[].=.'';.$message
c8640 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 65 73 s[].=.'';..$output->writeln($mes
c8660 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 5f 52 sages,.OutputInterface::OUTPUT_R
c8680 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 42 4f AW);..if.(OutputInterface::VERBO
c86a0 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 72 62 SITY_VERBOSE.<=.$output->getVerb
c86c0 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 63 6f osity()).{.$output->writeln('<co
c86e0 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 74 3e mment>Exception.trace:</comment>
c8700 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 3b 0a ');....$trace.=.$e->getTrace();.
c8720 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 66 75 array_unshift($trace,.array(.'fu
c8740 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 65 74 nction'.=>.'',.'file'.=>.$e->get
c8760 46 69 6c 65 28 29 20 21 3d 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 File().!==.null.?.$e->getFile().
c8780 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 29 :.'n/a',.'line'.=>.$e->getLine()
c87a0 20 21 3d 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
c87c0 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.(
c87e0 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);.
c8800 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
c8820 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
c8840 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
c8860 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[
c8880 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
c88a0 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
c88c0 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
c88e0 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
c8900 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
c8920 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->
c8940 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
c8960 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
c8980 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));.}..
c89a0 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
c89c0 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->
c89e0 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
c8a00 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->
c8a20 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>
c8a40 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
c8a60 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(
c8a80 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
c8aa0 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
c8ac0 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(
c8ae0 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
c8b00 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
c8b20 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
c8b40 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
c8b60 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
c8b80 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];
c8ba0 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
c8bc0 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
c8be0 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
c8c00 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 27 5c 5c ->terminalDimensions;.}..if.('\\
c8c20 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 0a 20 69 '.===.DIRECTORY_SEPARATOR).{...i
c8c40 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 5c 64 2b 29 78 5c 64 2b 20 5c 28 5c 64 2b f.(preg_match('/^(\d+)x\d+.\(\d+
c8c60 78 28 5c 64 2b 29 5c 29 24 2f 27 2c 20 74 72 69 6d 28 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f x(\d+)\)$/',.trim(getenv('ANSICO
c8c80 4e 27 29 29 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 N')),.$matches)).{.return.array(
c8ca0 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 (int).$matches[1],.(int).$matche
c8cc0 73 5b 32 5d 29 3b 0a 7d 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 5c 64 s[2]);.}...if.(preg_match('/^(\d
c8ce0 2b 29 78 28 5c 64 2b 29 24 2f 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f +)x(\d+)$/',.$this->getConsoleMo
c8d00 64 65 28 29 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 de(),.$matches)).{.return.array(
c8d20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 (int).$matches[1],.(int).$matche
c8d40 73 5b 32 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 73 74 74 79 53 74 72 69 6e 67 20 3d 20 24 74 s[2]);.}.}..if.($sttyString.=.$t
c8d60 68 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 29 20 7b 0a 0a 20 69 66 20 28 70 his->getSttyColumns()).{...if.(p
c8d80 72 65 67 5f 6d 61 74 63 68 28 27 2f 72 6f 77 73 2e 28 5c 64 2b 29 3b 2e 63 6f 6c 75 6d 6e 73 2e reg_match('/rows.(\d+);.columns.
c8da0 28 5c 64 2b 29 3b 2f 69 27 2c 20 24 73 74 74 79 53 74 72 69 6e 67 2c 20 24 6d 61 74 63 68 65 73 (\d+);/i',.$sttyString,.$matches
c8dc0 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 )).{.return.array((int).$matches
c8de0 5b 32 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a 20 69 66 20 [2],.(int).$matches[1]);.}...if.
c8e00 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 3b 2e 28 5c 64 2b 29 2e 72 6f 77 73 3b 2e 28 5c 64 2b (preg_match('/;.(\d+).rows;.(\d+
c8e20 29 2e 63 6f 6c 75 6d 6e 73 2f 69 27 2c 20 24 73 74 74 79 53 74 72 69 6e 67 2c 20 24 6d 61 74 63 ).columns/i',.$sttyString,.$matc
c8e40 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 24 6d 61 74 63 hes)).{.return.array((int).$matc
c8e60 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 0a 7d 0a 7d 0a hes[2],.(int).$matches[1]);.}.}.
c8e80 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 75 6c 6c 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a .return.array(null,.null);.}....
c8ea0 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 54 65 72 6d 69 ........public.function.setTermi
c8ec0 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 24 77 69 64 74 68 2c 20 24 68 65 69 67 68 74 29 0a 7b nalDimensions($width,.$height).{
c8ee0 0a 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 20 3d 20 61 72 72 .$this->terminalDimensions.=.arr
c8f00 61 79 28 24 77 69 64 74 68 2c 20 24 68 65 69 67 68 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ay($width,.$height);..return.$th
c8f20 69 73 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 is;.}........protected.function.
c8f40 63 6f 6e 66 69 67 75 72 65 49 4f 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 configureIO(InputInterface.$inpu
c8f60 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
c8f80 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f .(true.===.$input->hasParameterO
c8fa0 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 61 6e 73 69 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 ption(array('--ansi'))).{.$outpu
c8fc0 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 t->setDecorated(true);.}.elseif.
c8fe0 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 (true.===.$input->hasParameterOp
c9000 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 29 29 29 20 7b 0a 24 6f 75 74 tion(array('--no-ansi'))).{.$out
c9020 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 put->setDecorated(false);.}..if.
c9040 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 (true.===.$input->hasParameterOp
c9060 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 tion(array('--no-interaction',.'
c9080 2d 6e 27 29 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 -n'))).{.$input->setInteractive(
c90a0 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 false);.}.elseif.(function_exist
c90c0 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 48 s('posix_isatty').&&.$this->getH
c90e0 65 6c 70 65 72 53 65 74 28 29 2d 3e 68 61 73 28 27 71 75 65 73 74 69 6f 6e 27 29 29 20 7b 0a 24 elperSet()->has('question')).{.$
c9100 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 inputStream.=.$this->getHelperSe
c9120 74 28 29 2d 3e 67 65 74 28 27 71 75 65 73 74 69 6f 6e 27 29 2d 3e 67 65 74 49 6e 70 75 74 53 74 t()->get('question')->getInputSt
c9140 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 69 6e 70 75 ream();.if.(!@posix_isatty($inpu
c9160 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 tStream)).{.$input->setInteracti
c9180 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e ve(false);.}.}..if.(true.===.$in
c91a0 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d put->hasParameterOption(array('-
c91c0 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 -quiet',.'-q'))).{.$output->setV
c91e0 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 erbosity(OutputInterface::VERBOS
c9200 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 70 75 74 2d ITY_QUIET);.}.else.{.if.($input-
c9220 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 7c 7c 20 24 >hasParameterOption('-vvv').||.$
c9240 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 76 65 72 input->hasParameterOption('--ver
c9260 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 65 74 65 72 bose=3').||.$input->getParameter
c9280 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 0a 24 6f 75 Option('--verbose').===.3).{.$ou
c92a0 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 65 72 66 61 tput->setVerbosity(OutputInterfa
c92c0 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 69 66 20 28 ce::VERBOSITY_DEBUG);.}.elseif.(
c92e0 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 76 76 27 $input->hasParameterOption('-vv'
c9300 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 69 6f 6e 28 ).||.$input->hasParameterOption(
c9320 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 74 50 61 72 '--verbose=2').||.$input->getPar
c9340 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 3d 20 32 29 ameterOption('--verbose').===.2)
c9360 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 70 75 74 49 .{.$output->setVerbosity(OutputI
c9380 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 42 4f 53 45 nterface::VERBOSITY_VERY_VERBOSE
c93a0 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 6d 65 74 65 );.}.elseif.($input->hasParamete
c93c0 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 50 61 72 61 rOption('-v').||.$input->hasPara
c93e0 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 7c 20 24 69 meterOption('--verbose=1').||.$i
c9400 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 76 65 72 62 nput->hasParameterOption('--verb
c9420 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 72 4f 70 74 ose').||.$input->getParameterOpt
c9440 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 3e 73 65 74 ion('--verbose')).{.$output->set
c9460 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f Verbosity(OutputInterface::VERBO
c9480 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 0a 0a 0a 0a SITY_VERBOSE);.}.}.}............
c94a0 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 6d 6d ....protected.function.doRunComm
c94c0 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 65 72 and(Command.$command,.InputInter
c94e0 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 75 face.$input,.OutputInterface.$ou
c9500 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 48 65 tput).{.foreach.($command->getHe
c9520 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 65 6c lperSet().as.$helper).{.if.($hel
c9540 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 66 61 per.instanceof.InputAwareInterfa
c9560 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 29 3b ce).{.$helper->setInput($input);
c9580 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 61 74 .}.}..if.(null.===.$this->dispat
c95a0 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 69 6e cher).{.return.$command->run($in
c95c0 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 20 43 put,.$output);.}..$event.=.new.C
c95e0 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 69 6e onsoleCommandEvent($command,.$in
c9600 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 65 72 put,.$output);.$this->dispatcher
c9620 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 41 4e ->dispatch(ConsoleEvents::COMMAN
c9640 44 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 69 66 20 28 24 65 76 65 6e 74 2d 3e 63 6f 6d 6d 61 6e 64 D,.$event);..if.($event->command
c9660 53 68 6f 75 6c 64 52 75 6e 28 29 29 20 7b 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d ShouldRun()).{.try.{.$exitCode.=
c9680 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);
c96a0 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
c96c0 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
c96e0 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
c9700 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
c9720 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,.$
c9740 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
c9760 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
c9780 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()
c97a0 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
c97c0 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)
c97e0 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();
c9800 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 43 6f 6e 73 6f 6c 65 43 .}.}.else.{.$exitCode.=.ConsoleC
c9820 6f 6d 6d 61 6e 64 45 76 65 6e 74 3a 3a 52 45 54 55 52 4e 5f 43 4f 44 45 5f 44 49 53 41 42 4c 45 ommandEvent::RETURN_CODE_DISABLE
c9840 44 3b 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 D;.}..$event.=.new.ConsoleTermin
c9860 61 74 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 ateEvent($command,.$input,.$outp
c9880 75 74 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 ut,.$exitCode);.$this->dispatche
c98a0 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 54 45 52 4d 49 r->dispatch(ConsoleEvents::TERMI
c98c0 4e 41 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 NATE,.$event);..return.$event->g
c98e0 65 74 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 etExitCode();.}.........protecte
c9900 64 20 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 d.function.getCommandName(InputI
c9920 6e 74 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 nterface.$input).{.return.$input
c9940 2d 3e 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 ->getFirstArgument();.}.......pr
c9960 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 otected.function.getDefaultInput
c9980 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 44 Definition().{.return.new.InputD
c99a0 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 65 efinition(array(.new.InputArgume
c99c0 6e 74 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 nt('command',.InputArgument::REQ
c99e0 55 49 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 UIRED,.'The.command.to.execute')
c9a00 2c 0a 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 ,..new.InputOption('--help',.'-h
c9a20 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 44 69 73 ',.InputOption::VALUE_NONE,.'Dis
c9a40 70 6c 61 79 20 74 68 69 73 20 68 65 6c 70 20 6d 65 73 73 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e play.this.help.message'),.new.In
c9a60 70 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 putOption('--quiet',.'-q',.Input
c9a80 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 6f 75 74 70 Option::VALUE_NONE,.'Do.not.outp
c9aa0 75 74 20 61 6e 79 20 6d 65 73 73 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f ut.any.message'),.new.InputOptio
c9ac0 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
c9ae0 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
c9b00 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.
c9b20 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
c9b40 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.
c9b60 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
c9b80 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
c9ba0 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 27 29 2c 0a 6e 65 77 .this.application.version'),.new
c9bc0 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 74 .InputOption('--ansi',.'',.Input
c9be0 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 20 Option::VALUE_NONE,.'Force.ANSI.
c9c00 6f 75 74 70 75 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d output'),.new.InputOption('--no-
c9c20 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 4e 4f ansi',.'',.InputOption::VALUE_NO
c9c40 4e 45 2c 20 27 44 69 73 61 62 6c 65 20 41 4e 53 49 20 6f 75 74 70 75 74 27 29 2c 0a 6e 65 77 20 NE,.'Disable.ANSI.output'),.new.
c9c60 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 27 2c 20 InputOption('--no-interaction',.
c9c80 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 2c 20 27 '-n',.InputOption::VALUE_NONE,.'
c9ca0 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 65 73 74 Do.not.ask.any.interactive.quest
c9cc0 69 6f 6e 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 20 66 75 6e ion'),.));.}.......protected.fun
c9ce0 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 72 65 74 ction.getDefaultCommands().{.ret
c9d00 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 20 6e 65 77 urn.array(new.HelpCommand(),.new
c9d20 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 74 65 63 74 .ListCommand());.}.......protect
c9d40 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 ed.function.getDefaultHelperSet(
c9d60 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 61 79 28 0a ).{.return.new.HelperSet(array(.
c9d80 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 69 61 6c 6f new.FormatterHelper(),.new.Dialo
c9da0 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 72 28 29 2c gHelper(),.new.ProgressHelper(),
c9dc0 0a 6e 65 77 20 54 61 62 6c 65 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 44 65 62 75 67 46 6f 72 .new.TableHelper(),.new.DebugFor
c9de0 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 50 72 6f 63 65 73 73 48 65 6c 70 65 matterHelper(),.new.ProcessHelpe
c9e00 72 28 29 2c 0a 6e 65 77 20 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d r(),.new.QuestionHelper(),.));.}
c9e20 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 53 74 74 79 43 .......private.function.getSttyC
c9e40 6f 6c 75 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 olumns().{.if.(!function_exists(
c9e60 27 70 72 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 'proc_open')).{.return;.}..$desc
c9e80 72 69 70 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 riptorspec.=.array(1.=>.array('p
c9ea0 69 70 65 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 ipe',.'w'),.2.=>.array('pipe',.'
c9ec0 77 27 29 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 w'));.$process.=.proc_open('stty
c9ee0 20 2d 61 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 .-a.|.grep.columns',.$descriptor
c9f00 73 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 spec,.$pipes,.null,.null,.array(
c9f20 27 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 'suppress_errors'.=>.true));.if.
c9f40 28 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 (is_resource($process)).{.$info.
c9f60 3d 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 =.stream_get_contents($pipes[1])
c9f80 3b 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 ;.fclose($pipes[1]);.fclose($pip
c9fa0 65 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 72 es[2]);.proc_close($process);..r
c9fc0 65 74 75 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 eturn.$info;.}.}.......private.f
c9fe0 75 6e 63 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 unction.getConsoleMode().{.if.(!
ca000 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')).{.
ca020 72 65 74 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 return;.}..$descriptorspec.=.arr
ca040 61 79 28 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 ay(1.=>.array('pipe',.'w'),.2.=>
ca060 20 61 72 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 .array('pipe',.'w'));.$process.=
ca080 20 70 72 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 .proc_open('mode.CON',.$descript
ca0a0 6f 72 73 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 orspec,.$pipes,.null,.null,.arra
ca0c0 79 28 27 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 y('suppress_errors'.=>.true));.i
ca0e0 66 20 28 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 f.(is_resource($process)).{.$inf
ca100 6f 20 3d 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 o.=.stream_get_contents($pipes[1
ca120 5d 29 3b 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 ]);.fclose($pipes[1]);.fclose($p
ca140 69 70 65 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 ipes[2]);.proc_close($process);.
ca160 0a 69 66 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 .if.(preg_match('/--------+\r?\n
ca180 2e 2b 3f 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 .+?(\d+)\r?\n.+?(\d+)\r?\n/',.$i
ca1a0 6e 66 6f 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 nfo,.$matches)).{.return.$matche
ca1c0 73 5b 32 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 s[2].'x'.$matches[1];.}.}.}.....
ca1e0 0a 0a 0a 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 ....private.function.getAbbrevia
ca200 74 69 6f 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 tionSuggestions($abbrevs).{.retu
ca220 72 6e 20 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 rn.sprintf('%s,.%s%s',.$abbrevs[
ca240 30 5d 2c 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 0],.$abbrevs[1],.count($abbrevs)
ca260 20 3e 20 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 .>.2.?.sprintf('.and.%d.more',.c
ca280 6f 75 6e 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 ount($abbrevs).-.2).:.'');.}....
ca2a0 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 74 72 61 63 74 4e ........public.function.extractN
ca2c0 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 0a 7b amespace($name,.$limit.=.null).{
ca2e0 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b 0a 61 .$parts.=.explode(':',.$name);.a
ca300 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 rray_pop($parts);..return.implod
ca320 65 28 27 3a 27 2c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 73 20 e(':',.null.===.$limit.?.$parts.
ca340 3a 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 74 29 :.array_slice($parts,.0,.$limit)
ca360 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 );.}...........private.function.
ca380 66 69 6e 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 findAlternatives($name,.$collect
ca3a0 69 6f 6e 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 ion).{.$threshold.=.1e3;.$altern
ca3c0 61 74 69 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 atives.=.array();..$collectionPa
ca3e0 72 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 rts.=.array();.foreach.($collect
ca400 69 6f 6e 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 ion.as.$item).{.$collectionParts
ca420 5b 24 69 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 [$item].=.explode(':',.$item);.}
ca440 0a 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 20 61 ..foreach.(explode(':',.$name).a
ca460 73 20 24 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 s.$i.=>.$subname).{.foreach.($co
ca480 6c 6c 65 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 llectionParts.as.$collectionName
ca4a0 20 3d 3e 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 .=>.$parts).{.$exists.=.isset($a
ca4c0 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 29 3b 0a 69 lternatives[$collectionName]);.i
ca4e0 66 20 28 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 f.(!isset($parts[$i]).&&.$exists
ca500 29 20 7b 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 ).{.$alternatives[$collectionNam
ca520 65 5d 20 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 e].+=.$threshold;.continue;.}.el
ca540 73 65 69 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 seif.(!isset($parts[$i])).{.cont
ca560 69 6e 75 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 inue;.}..$lev.=.levenshtein($sub
ca580 6e 61 6d 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 name,.$parts[$i]);.if.($lev.<=.s
ca5a0 74 72 6c 65 6e 28 24 73 75 62 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 27 27 20 21 3d 3d 20 24 73 trlen($subname)./.3.||.''.!==.$s
ca5c0 75 62 6e 61 6d 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 72 74 ubname.&&.false.!==.strpos($part
ca5e0 73 5b 24 69 5d 2c 20 24 73 75 62 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 s[$i],.$subname)).{.$alternative
ca600 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 20 3d 20 24 65 78 69 73 74 73 20 3f 20 24 s[$collectionName].=.$exists.?.$
ca620 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 2b 20 alternatives[$collectionName].+.
ca640 24 6c 65 76 20 3a 20 24 6c 65 76 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 65 78 69 73 74 73 29 20 $lev.:.$lev;.}.elseif.($exists).
ca660 7b 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 {.$alternatives[$collectionName]
ca680 20 2b 3d 20 24 74 68 72 65 73 68 6f 6c 64 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 .+=.$threshold;.}.}.}..foreach.(
ca6a0 24 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 24 6c 65 76 20 3d 20 6c $collection.as.$item).{.$lev.=.l
ca6c0 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 69 74 65 6d 29 3b 0a 69 66 20 28 24 6c evenshtein($name,.$item);.if.($l
ca6e0 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 ev.<=.strlen($name)./.3.||.false
ca700 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 69 74 65 6d 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 61 6c .!==.strpos($item,.$name)).{.$al
ca720 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 20 3d 20 69 73 73 65 74 28 24 61 6c 74 65 72 ternatives[$item].=.isset($alter
ca740 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 29 20 3f 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b natives[$item]).?.$alternatives[
ca760 24 69 74 65 6d 5d 20 2d 20 24 6c 65 76 20 3a 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 0a 24 61 6c 74 65 $item].-.$lev.:.$lev;.}.}..$alte
ca780 72 6e 61 74 69 76 65 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 61 6c 74 65 72 6e 61 rnatives.=.array_filter($alterna
ca7a0 74 69 76 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6c 65 76 29 20 75 73 65 20 28 24 74 68 72 tives,.function.($lev).use.($thr
ca7c0 65 73 68 6f 6c 64 29 20 7b 20 72 65 74 75 72 6e 20 24 6c 65 76 20 3c 20 32 2a 24 74 68 72 65 73 eshold).{.return.$lev.<.2*$thres
ca7e0 68 6f 6c 64 3b 20 7d 29 3b 0a 61 73 6f 72 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a hold;.});.asort($alternatives);.
ca800 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 .return.array_keys($alternatives
ca820 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 73 65 74 44 65 );.}.......public.function.setDe
ca840 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 29 0a 7b 0a 24 74 68 faultCommand($commandName).{.$th
ca860 69 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d is->defaultCommand.=.$commandNam
ca880 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 57 69 64 e;.}..private.function.stringWid
ca8a0 74 68 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 th($string).{.if.(!function_exis
ca8c0 74 73 28 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c ts('mb_strwidth')).{.return.strl
ca8e0 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 en($string);.}..if.(false.===.$e
ca900 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 ncoding.=.mb_detect_encoding($st
ca920 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b ring)).{.return.strlen($string);
ca940 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 77 69 64 74 68 28 24 73 74 72 69 6e 67 2c 20 .}..return.mb_strwidth($string,.
ca960 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 $encoding);.}..private.function.
ca980 73 70 6c 69 74 53 74 72 69 6e 67 42 79 57 69 64 74 68 28 24 73 74 72 69 6e 67 2c 20 24 77 69 64 splitStringByWidth($string,.$wid
ca9a0 74 68 29 0a 7b 0a 0a 20 0a 20 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 th).{.......if.(!function_exists
ca9c0 28 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 73 70 ('mb_strwidth')).{.return.str_sp
ca9e0 6c 69 74 28 24 73 74 72 69 6e 67 2c 20 24 77 69 64 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c lit($string,.$width);.}..if.(fal
caa00 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 63 74 5f 65 6e 63 se.===.$encoding.=.mb_detect_enc
caa20 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 74 72 5f 73 70 6c oding($string)).{.return.str_spl
caa40 69 74 28 24 73 74 72 69 6e 67 2c 20 24 77 69 64 74 68 29 3b 0a 7d 0a 0a 24 75 74 66 38 53 74 72 it($string,.$width);.}..$utf8Str
caa60 69 6e 67 20 3d 20 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e ing.=.mb_convert_encoding($strin
caa80 67 2c 20 27 75 74 66 38 27 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 g,.'utf8',.$encoding);.$lines.=.
caaa0 61 72 72 61 79 28 29 3b 0a 24 6c 69 6e 65 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 array();.$line.=.'';.foreach.(pr
caac0 65 67 5f 73 70 6c 69 74 28 27 2f 2f 75 27 2c 20 24 75 74 66 38 53 74 72 69 6e 67 29 20 61 73 20 eg_split('//u',.$utf8String).as.
caae0 24 63 68 61 72 29 20 7b 0a 0a 20 69 66 20 28 6d 62 5f 73 74 72 77 69 64 74 68 28 24 6c 69 6e 65 $char).{...if.(mb_strwidth($line
cab00 2e 24 63 68 61 72 2c 20 27 75 74 66 38 27 29 20 3c 3d 20 24 77 69 64 74 68 29 20 7b 0a 24 6c 69 .$char,.'utf8').<=.$width).{.$li
cab20 6e 65 20 2e 3d 20 24 63 68 61 72 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 20 24 6c 69 6e 65 ne..=.$char;.continue;.}...$line
cab40 73 5b 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 29 3b 0a 24 6c s[].=.str_pad($line,.$width);.$l
cab60 69 6e 65 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 ine.=.$char;.}.if.(strlen($line)
cab80 29 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 20 3f 20 73 ).{.$lines[].=.count($lines).?.s
caba0 74 72 5f 70 61 64 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 29 20 3a 20 24 6c 69 6e 65 3b 0a 7d tr_pad($line,.$width).:.$line;.}
cabc0 0a 0a 6d 62 5f 63 6f 6e 76 65 72 74 5f 76 61 72 69 61 62 6c 65 73 28 24 65 6e 63 6f 64 69 6e 67 ..mb_convert_variables($encoding
cabe0 2c 20 27 75 74 66 38 27 2c 20 24 6c 69 6e 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 69 6e 65 ,.'utf8',.$lines);..return.$line
cac00 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 65 78 s;.}.........private.function.ex
cac20 74 72 61 63 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 28 24 6e 61 6d 65 29 0a 7b 0a 0a 20 24 70 tractAllNamespaces($name).{...$p
cac40 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 2c 20 2d 31 29 3b 0a arts.=.explode(':',.$name,.-1);.
cac60 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 $namespaces.=.array();..foreach.
cac80 28 24 70 61 72 74 73 20 61 73 20 24 70 61 72 74 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 6e ($parts.as.$part).{.if.(count($n
caca0 61 6d 65 73 70 61 63 65 73 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 65 6e amespaces)).{.$namespaces[].=.en
cacc0 64 28 24 6e 61 6d 65 73 70 61 63 65 73 29 2e 27 3a 27 2e 24 70 61 72 74 3b 0a 7d 20 65 6c 73 65 d($namespaces).':'.$part;.}.else
cace0 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 24 70 61 72 74 3b 0a 7d 0a 7d 0a 0a 72 .{.$namespaces[].=.$part;.}.}..r
cad00 65 74 75 72 6e 20 24 6e 61 6d 65 73 70 61 63 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a eturn.$namespaces;.}.}.<?php....
cad20 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
cad40 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 nt\Console\Input;.........class.
cad60 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 51 55 49 52 45 44 20 3d InputArgument.{.const.REQUIRED.=
cad80 20 31 3b 0a 63 6f 6e 73 74 20 4f 50 54 49 4f 4e 41 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 49 53 .1;.const.OPTIONAL.=.2;.const.IS
cada0 5f 41 52 52 41 59 20 3d 20 34 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 _ARRAY.=.4;..private.$name;.priv
cadc0 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 ate.$mode;.private.$default;.pri
cade0 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a vate.$description;..............
cae00 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 6d public.function.__construct($nam
cae20 65 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 e,.$mode.=.null,.$description.=.
cae40 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 '',.$default.=.null).{.if.(null.
cae60 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 4f 50 54 49 4f ===.$mode).{.$mode.=.self::OPTIO
cae80 4e 41 4c 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c 7c NAL;.}.elseif.(!is_int($mode).||
caea0 20 24 6d 6f 64 65 20 3e 20 37 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a 74 68 72 6f 77 .$mode.>.7.||.$mode.<.1).{.throw
caec0 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
caee0 70 72 69 6e 74 66 28 27 41 72 67 75 6d 65 6e 74 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f printf('Argument.mode."%s".is.no
caf00 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 t.valid.',.$mode));.}..$this->na
caf20 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b me.=.$name;.$this->mode.=.$mode;
caf40 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 .$this->description.=.$descripti
caf60 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 on;..$this->setDefault($default)
caf80 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d ;.}.......public.function.getNam
cafa0 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a e().{.return.$this->name;.}.....
cafc0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 71 75 69 72 65 64 28 29 0a 7b ..public.function.isRequired().{
cafe0 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c 66 .return.self::REQUIRED.===.(self
cb000 3a 3a 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a ::REQUIRED.&.$this->mode);.}....
cb020 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 ...public.function.isArray().{.r
cb040 65 74 75 72 6e 20 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a eturn.self::IS_ARRAY.===.(self::
cb060 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a IS_ARRAY.&.$this->mode);.}......
cb080 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 ...public.function.setDefault($d
cb0a0 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 52 45 51 55 49 efault.=.null).{.if.(self::REQUI
cb0c0 52 45 44 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 RED.===.$this->mode.&&.null.!==.
cb0e0 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 $default).{.throw.new.\LogicExce
cb100 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 ption('Cannot.set.a.default.valu
cb120 65 20 65 78 63 65 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 e.except.for.InputArgument::OPTI
cb140 4f 4e 41 4c 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 ONAL.mode.');.}..if.($this->isAr
cb160 72 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 ray()).{.if.(null.===.$default).
cb180 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 {.$default.=.array();.}.elseif.(
cb1a0 21 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 !is_array($default)).{.throw.new
cb1c0 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 .\LogicException('A.default.valu
cb1e0 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 e.for.an.array.argument.must.be.
cb200 61 6e 20 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 an.array.');.}.}..$this->default
cb220 20 3d 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .=.$default;.}.......public.func
cb240 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getDefault().{.return.$this
cb260 2d 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->default;.}.......public.functi
cb280 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 on.getDescription().{.return.$th
cb2a0 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a is->description;.}.}.<?php......
cb2c0 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
cb2e0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 \Console\Input;.............abst
cb300 72 61 63 74 20 63 6c 61 73 73 20 49 6e 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 ract.class.Input.implements.Inpu
cb320 74 49 6e 74 65 72 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 tInterface.{....protected.$defin
cb340 69 74 69 6f 6e 3b 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 ition;.protected.$options.=.arra
cb360 79 28 29 3b 0a 70 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 y();.protected.$arguments.=.arra
cb380 79 28 29 3b 0a 70 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 y();.protected.$interactive.=.tr
cb3a0 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ue;.......public.function.__cons
cb3c0 74 72 75 63 74 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f truct(InputDefinition.$definitio
cb3e0 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 69 6e 69 n.=.null).{.if.(null.===.$defini
cb400 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 6e 65 77 20 tion).{.$this->definition.=.new.
cb420 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 InputDefinition();.}.else.{.$thi
cb440 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c s->bind($definition);.$this->val
cb460 69 64 61 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 idate();.}.}.......public.functi
cb480 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 on.bind(InputDefinition.$definit
cb4a0 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 ion).{.$this->arguments.=.array(
cb4c0 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 );.$this->options.=.array();.$th
cb4e0 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 24 is->definition.=.$definition;..$
cb500 74 68 69 73 2d 3e 70 61 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 this->parse();.}.....abstract.pr
cb520 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a otected.function.parse();.......
cb540 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 0a 7b 0a 69 66 20 public.function.validate().{.if.
cb560 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3c 20 24 74 68 69 73 (count($this->arguments).<.$this
cb580 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 ->definition->getArgumentRequire
cb5a0 64 43 6f 75 6e 74 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 dCount()).{.throw.new.\RuntimeEx
cb5c0 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 65 6e 6f 75 67 68 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 ception('Not.enough.arguments.')
cb5e0 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 69 73 49 6e ;.}.}.......public.function.isIn
cb600 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 74 65 teractive().{.return.$this->inte
cb620 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ractive;.}.......public.function
cb640 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 0a 7b 0a .setInteractive($interactive).{.
cb660 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 28 62 6f 6f 6c 29 20 24 69 6e 74 $this->interactive.=.(bool).$int
cb680 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f eractive;.}.......public.functio
cb6a0 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f n.getArguments().{.return.array_
cb6c0 6d 65 72 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 merge($this->definition->getArgu
cb6e0 6d 65 6e 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 mentDefaults(),.$this->arguments
cb700 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 6e 20 67 );.}...........public.function.g
cb720 65 74 41 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 etArgument($name).{.if.(!$this->
cb740 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 definition->hasArgument($name)).
cb760 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
cb780 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 ption(sprintf('The."%s".argument
cb7a0 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 72 .does.not.exist.',.$name));.}..r
cb7c0 65 74 75 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 eturn.isset($this->arguments[$na
cb7e0 6d 65 5d 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 me]).?.$this->arguments[$name].:
cb800 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 .$this->definition->getArgument(
cb820 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a $name)->getDefault();.}.........
cb840 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 61 .public.function.setArgument($na
cb860 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 me,.$value).{.if.(!$this->defini
cb880 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 68 72 6f tion->hasArgument($name)).{.thro
cb8a0 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(
cb8c0 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 sprintf('The."%s".argument.does.
cb8e0 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e not.exist.',.$name));.}..$this->
cb900 61 72 67 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 arguments[$name].=.$value;.}....
cb920 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 72 67 75 6d 65 6e 74 .....public.function.hasArgument
cb940 28 24 6e 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 ($name).{.return.$this->definiti
cb960 6f 6e 2d 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 on->hasArgument($name);.}.......
cb980 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 72 public.function.getOptions().{.r
cb9a0 65 74 75 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 eturn.array_merge($this->definit
cb9c0 69 6f 6e 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 ion->getOptionDefaults(),.$this-
cb9e0 3e 6f 70 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 >options);.}...........public.fu
cba00 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 nction.getOption($name).{.if.(!$
cba20 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 6d this->definition->hasOption($nam
cba40 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 74 e)).{.throw.new.\InvalidArgument
cba60 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 6f 70 74 69 Exception(sprintf('The."%s".opti
cba80 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 3b 0a 7d 0a on.does.not.exist.',.$name));.}.
cbaa0 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 .return.isset($this->options[$na
cbac0 6d 65 5d 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 me]).?.$this->options[$name].:.$
cbae0 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
cbb00 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 62 e)->getDefault();.}..........pub
cbb20 6c 69 63 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 lic.function.setOption($name,.$v
cbb40 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->
cbb60 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 hasOption($name)).{.throw.new.\I
cbb80 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(
cbba0 27 54 68 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 'The."%s".option.does.not.exist.
cbbc0 27 2c 20 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 ',.$name));.}..$this->options[$n
cbbe0 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 70 75 62 6c 69 63 20 ame].=.$value;.}.........public.
cbc00 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 function.hasOption($name).{.retu
cbc20 72 6e 20 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 rn.$this->definition->hasOption(
cbc40 24 6e 61 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 $name);.}.........public.functio
cbc60 6e 20 65 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 n.escapeToken($token).{.return.p
cbc80 72 65 67 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 reg_match('{^[\w-]+$}',.$token).
cbca0 3f 20 24 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 ?.$token.:.escapeshellarg($token
cbcc0 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 );.}.}.<?php...........namespace
cbce0 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
cbd00 3b 0a 0a 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 ;.............class.StringInput.
cbd20 65 78 74 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 extends.ArgvInput.{.const.REGEX_
cbd40 53 54 52 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 STRING.=.'([^\s]+?)(?:\s|(?<!\\\
cbd60 5c 29 22 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 \)"|(?<!\\\\)\'|$)';.const.REGEX
cbd80 5f 51 55 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 _QUOTED_STRING.=.'(?:"([^"\\\\]*
cbda0 28 3f 3a 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 (?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\
cbdc0 5c 5d 2a 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 \]*(?:\\\\.[^\'\\\\]*)*)\')';...
cbde0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .........public.function.__const
cbe00 72 75 63 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 ruct($input,.InputDefinition.$de
cbe20 66 69 6e 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 finition.=.null).{.parent::__con
cbe40 73 74 72 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 struct(array(),.null);..$this->s
cbe60 65 74 54 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 etTokens($this->tokenize($input)
cbe80 29 3b 0a 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 );..if.(null.!==.$definition).{.
cbea0 24 74 68 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a $this->bind($definition);.}.}...
cbec0 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 74 6f 6b 65 6e 69 7a ........private.function.tokeniz
cbee0 65 28 24 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 e($input).{.$tokens.=.array();.$
cbf00 6c 65 6e 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 length.=.strlen($input);.$cursor
cbf20 20 3d 20 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 .=.0;.while.($cursor.<.$length).
cbf40 7b 0a 69 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 {.if.(preg_match('/\s+/A',.$inpu
cbf60 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 7d 20 65 t,.$match,.null,.$cursor)).{.}.e
cbf80 6c 73 65 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 lseif.(preg_match('/([^="\'\s]+?
cbfa0 29 28 3d 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 )(=?)('.self::REGEX_QUOTED_STRIN
cbfc0 47 2e 27 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 G.'+)/A',.$input,.$match,.null,.
cbfe0 24 63 75 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 $cursor)).{.$tokens[].=.$match[1
cc000 5d 2e 24 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 ].$match[2].stripcslashes(str_re
cc020 70 6c 61 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 place(array('"\'',.'\'"',.'\'\''
cc040 2c 20 27 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 ,.'""'),.'',.substr($match[3],.1
cc060 2c 20 73 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 ,.strlen($match[3]).-.2)));.}.el
cc080 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
cc0a0 5f 51 55 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 _QUOTED_STRING.'/A',.$input,.$ma
cc0c0 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d tch,.null,.$cursor)).{.$tokens[]
cc0e0 20 3d 20 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 .=.stripcslashes(substr($match[0
cc100 5d 2c 20 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 ],.1,.strlen($match[0]).-.2));.}
cc120 20 65 6c 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 .elseif.(preg_match('/'.self::RE
cc140 47 45 58 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 GEX_STRING.'/A',.$input,.$match,
cc160 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 73 .null,.$cursor)).{.$tokens[].=.s
cc180 74 72 69 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 tripcslashes($match[1]);.}.else.
cc1a0 7b 0a 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 {...throw.new.\InvalidArgumentEx
cc1c0 63 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 ception(sprintf('Unable.to.parse
cc1e0 20 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 .input.near."....%s...."',.subst
cc200 72 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 7d 0a 0a 24 63 75 r($input,.$cursor,.10)));.}..$cu
cc220 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 65 rsor.+=.strlen($match[0]);.}..re
cc240 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 0a turn.$tokens;.}.}.<?php.........
cc260 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
cc280 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 74 nsole\Input;.........class.Input
cc2a0 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 63 Option.{.const.VALUE_NONE.=.1;.c
cc2c0 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 56 onst.VALUE_REQUIRED.=.2;.const.V
cc2e0 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 49 ALUE_OPTIONAL.=.4;.const.VALUE_I
cc300 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 69 S_ARRAY.=.8;..private.$name;.pri
cc320 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 70 vate.$shortcut;.private.$mode;.p
cc340 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 69 rivate.$default;.private.$descri
cc360 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 63 ption;...............public.func
cc380 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 75 tion.__construct($name,.$shortcu
cc3a0 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 70 t.=.null,.$mode.=.null,.$descrip
cc3c0 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 66 tion.=.'',.$default.=.null).{.if
cc3e0 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 24 .(0.===.strpos($name,.'--')).{.$
cc400 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 28 name.=.substr($name,.2);.}..if.(
cc420 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 6c empty($name)).{.throw.new.\Inval
cc440 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 6e idArgumentException('An.option.n
cc460 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 65 ame.cannot.be.empty.');.}..if.(e
cc480 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 6e mpty($shortcut)).{.$shortcut.=.n
cc4a0 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 20 ull;.}..if.(null.!==.$shortcut).
cc4c0 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 68 {.if.(is_array($shortcut)).{.$sh
cc4e0 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 29 ortcut.=.implode('|',.$shortcut)
cc500 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 5c ;.}.$shortcuts.=.preg_split('{(\
cc520 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 0a |)-?}',.ltrim($shortcut,.'-'));.
cc540 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 74 $shortcuts.=.array_filter($short
cc560 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 20 cuts);.$shortcut.=.implode('|',.
cc580 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 75 $shortcuts);..if.(empty($shortcu
cc5a0 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 74 t)).{.throw.new.\InvalidArgument
cc5c0 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 61 Exception('An.option.shortcut.ca
cc5e0 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 20 nnot.be.empty.');.}.}..if.(null.
cc600 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 45 ===.$mode).{.$mode.=.self::VALUE
cc620 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 20 _NONE;.}.elseif.(!is_int($mode).
cc640 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 68 ||.$mode.>.15.||.$mode.<.1).{.th
cc660 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
cc680 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 6e n(sprintf('Option.mode."%s".is.n
cc6a0 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e ot.valid.',.$mode));.}..$this->n
cc6c0 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 24 ame.=.$name;.$this->shortcut.=.$
cc6e0 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 24 shortcut;.$this->mode.=.$mode;.$
cc700 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 6e this->description.=.$description
cc720 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 69 ;..if.($this->isArray().&&.!$thi
cc740 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 49 s->acceptValue()).{.throw.new.\I
cc760 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 69 nvalidArgumentException('Impossi
cc780 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 45 ble.to.have.an.option.mode.VALUE
cc7a0 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 74 _IS_ARRAY.if.the.option.does.not
cc7c0 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 65 .accept.a.value.');.}..$this->se
cc7e0 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 6c tDefault($default);.}.......publ
cc800 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 75 ic.function.getShortcut().{.retu
cc820 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 6c rn.$this->shortcut;.}.......publ
cc840 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 24 ic.function.getName().{.return.$
cc860 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 74 this->name;.}.......public.funct
cc880 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 73 ion.acceptValue().{.return.$this
cc8a0 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 73 ->isValueRequired().||.$this->is
cc8c0 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 20 ValueOptional();.}.......public.
cc8e0 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 74 function.isValueRequired().{.ret
cc900 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 65 urn.self::VALUE_REQUIRED.===.(se
cc920 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 65 lf::VALUE_REQUIRED.&.$this->mode
cc940 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 6c );.}.......public.function.isVal
cc960 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 55 ueOptional().{.return.self::VALU
cc980 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 49 E_OPTIONAL.===.(self::VALUE_OPTI
cc9a0 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 62 ONAL.&.$this->mode);.}.......pub
cc9c0 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.
cc9e0 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 3a self::VALUE_IS_ARRAY.===.(self::
cca00 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 7d VALUE_IS_ARRAY.&.$this->mode);.}
cca20 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 61 .........public.function.setDefa
cca40 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 3a ult($default.=.null).{.if.(self:
cca60 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 4e :VALUE_NONE.===.(self::VALUE_NON
cca80 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 65 E.&.$this->mode).&&.null.!==.$de
ccaa0 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 69 fault).{.throw.new.\LogicExcepti
ccac0 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 77 on('Cannot.set.a.default.value.w
ccae0 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 4e hen.using.InputOption::VALUE_NON
ccb00 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 79 E.mode.');.}..if.($this->isArray
ccb20 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 ()).{.if.(null.===.$default).{.$
ccb40 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 default.=.array();.}.elseif.(!is
ccb60 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c _array($default)).{.throw.new.\L
ccb80 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 ogicException('A.default.value.f
ccba0 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 72 or.an.array.option.must.be.an.ar
ccbc0 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 74 ray.');.}.}..$this->default.=.$t
ccbe0 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 20 his->acceptValue().?.$default.:.
ccc00 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 67 false;.}.......public.function.g
ccc20 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
ccc40 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
ccc60 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
ccc80 73 63 72 69 70 74 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 scription;.}.........public.func
ccca0 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)
cccc0 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().===
ccce0 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
ccd00 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
ccd20 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().==
ccd40 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
ccd60 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()
ccd80 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().=
ccda0 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().&&.$
ccdc0 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
ccde0 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
cce00 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
cce20 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;.........
cce40 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
cce60 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
cce80 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
ccea0 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
ccec0 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.$
ccee0 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.==
ccf00 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
ccf20 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);..$
ccf40 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::_
ccf60 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
ccf80 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.$
ccfa0 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
ccfc0 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
ccfe0 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
cd000 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
cd020 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(
cd040 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
cd060 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
cd080 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.($
cd0a0 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).
cd0c0 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
cd0e0 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
cd100 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
cd120 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
cd140 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].&
cd160 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
cd180 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
cd1a0 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);.}.}.
cd1c0 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
cd1e0 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
cd200 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
cd220 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->
cd240 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->
cd260 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
cd280 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()).{...$
cd2a0 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
cd2c0 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
cd2e0 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);.}.
cd300 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($
cd320 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
cd340 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
cd360 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
cd380 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.
cd3a0 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
cd3c0 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
cd3e0 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
cd400 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]
cd420 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
cd440 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[$
cd460 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())
cd480 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-
cd4a0 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
cd4c0 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
cd4e0 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
cd500 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);.}.
cd520 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
cd540 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
cd560 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.!==.$
cd580 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
cd5a0 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
cd5c0 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)
cd5e0 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
cd600 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
cd620 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
cd640 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)
cd660 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
cd680 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
cd6a0 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-
cd6c0 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
cd6e0 72 67 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 29 20 3a 20 rg->isArray().?.array($token).:.
cd700 24 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 $token;....}.elseif.($this->defi
cd720 6e 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 nition->hasArgument($c.-.1).&&.$
cd740 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 this->definition->getArgument($c
cd760 20 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 .-.1)->isArray()).{.$arg.=.$this
cd780 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 2d 20 31 ->definition->getArgument($c.-.1
cd7a0 29 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 );.$this->arguments[$arg->getNam
cd7c0 65 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 e()][].=.$token;....}.else.{.thr
cd7e0 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 6f 6f 20 6d 61 ow.new.\RuntimeException('Too.ma
cd800 6e 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 ny.arguments.');.}.}..........pr
cd820 69 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 ivate.function.addShortOption($s
cd840 68 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 hortcut,.$value).{.if.(!$this->d
cd860 65 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 efinition->hasShortcut($shortcut
cd880 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
cd8a0 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 20 (sprintf('The."-%s".option.does.
cd8c0 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 68 not.exist.',.$shortcut));.}..$th
cd8e0 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 74 is->addLongOption($this->definit
cd900 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 74 ion->getOptionForShortcut($short
cd920 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 0a cut)->getName(),.$value);.}.....
cd940 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 70 74 .....private.function.addLongOpt
cd960 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 73 2d ion($name,.$value).{.if.(!$this-
cd980 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 20 7b >definition->hasOption($name)).{
cd9a0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 .throw.new.\RuntimeException(spr
cd9c0 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 6f 74 intf('The."--%s".option.does.not
cd9e0 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 .exist.',.$name));.}..$option.=.
cda00 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 $this->definition->getOption($na
cda20 6d 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 me);....if.(false.===.$value).{.
cda40 24 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 $value.=.null;.}..if.(null.!==.$
cda60 76 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 value.&&.!$option->acceptValue()
cda80 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(
cdaa0 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 sprintf('The."--%s".option.does.
cdac0 6e 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 not.accept.a.value.',.$name,.$va
cdae0 6c 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 lue));.}..if.(null.===.$value.&&
cdb00 20 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 .$option->acceptValue().&&.count
cdb20 28 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 ($this->parsed)).{.....$next.=.a
cdb40 72 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 rray_shift($this->parsed);.if.(i
cdb60 73 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 sset($next[0]).&&.'-'.!==.$next[
cdb80 30 5d 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 6e 65 78 74 3b 0a 7d 20 65 6c 73 65 69 66 20 28 0]).{.$value.=.$next;.}.elseif.(
cdba0 65 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 empty($next)).{.$value.=.'';.}.e
cdbc0 6c 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 lse.{.array_unshift($this->parse
cdbe0 64 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 d,.$next);.}.}..if.(null.===.$va
cdc00 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
cdc20 72 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 red()).{.throw.new.\RuntimeExcep
cdc40 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 tion(sprintf('The."--%s".option.
cdc60 72 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a requires.a.value.',.$name));.}..
cdc80 69 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 if.(!$option->isArray()).{.$valu
cdca0 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f e.=.$option->isValueOptional().?
cdcc0 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 75 65 3b 0a 7d .$option->getDefault().:.true;.}
cdce0 0a 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 .}..if.($option->isArray()).{.$t
cdd00 68 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 his->options[$name][].=.$value;.
cdd20 7d 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 }.else.{.$this->options[$name].=
cdd40 20 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 .$value;.}.}.......public.functi
cdd60 6f 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 on.getFirstArgument().{.foreach.
cdd80 28 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 ($this->tokens.as.$token).{.if.(
cdda0 24 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 $token.&&.'-'.===.$token[0]).{.c
cddc0 6f 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 ontinue;.}..return.$token;.}.}..
cdde0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 ..........public.function.hasPar
cde00 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 ameterOption($values).{.$values.
cde20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 =.(array).$values;..foreach.($th
cde40 69 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 is->tokens.as.$token).{.foreach.
cde60 28 24 76 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e ($values.as.$value).{.if.($token
cde80 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 6f 73 28 24 74 6f 6b .===.$value.||.0.===.strpos($tok
cdea0 65 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 en,.$value.'=')).{.return.true;.
cdec0 7d 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 }.}.}..return.false;.}..........
cdee0 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 65 72 4f ...public.function.getParameterO
cdf00 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 73 65 29 ption($values,.$default.=.false)
cdf20 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 0a 24 74 .{.$values.=.(array).$values;.$t
cdf40 6f 6b 65 6e 73 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 0a 77 68 69 6c 65 20 28 30 okens.=.$this->tokens;..while.(0
cdf60 20 3c 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 61 72 .<.count($tokens)).{.$token.=.ar
cdf80 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 76 ray_shift($tokens);..foreach.($v
cdfa0 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 3d 3d alues.as.$value).{.if.($token.==
cdfc0 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 6e 2c =.$value.||.0.===.strpos($token,
cdfe0 20 24 76 61 6c 75 65 2e 27 3d 27 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 .$value.'=')).{.if.(false.!==.$p
ce000 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 3d 27 29 29 20 7b 0a 72 65 74 75 os.=.strpos($token,.'=')).{.retu
ce020 72 6e 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 7d 0a 0a rn.substr($token,.$pos.+.1);.}..
ce040 72 65 74 75 72 6e 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d return.array_shift($tokens);.}.}
ce060 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .}..return.$default;.}.......pub
ce080 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 24 73 65 6c lic.function.__toString().{.$sel
ce0a0 66 20 3d 20 24 74 68 69 73 3b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 f.=.$this;.$tokens.=.array_map(f
ce0c0 75 6e 63 74 69 6f 6e 20 28 24 74 6f 6b 65 6e 29 20 75 73 65 20 28 24 73 65 6c 66 29 20 7b 0a 69 unction.($token).use.($self).{.i
ce0e0 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2d 5b 5e 3d 5d 2b 3d 29 28 2e 2b 29 7d 27 f.(preg_match('{^(-[^=]+=)(.+)}'
ce100 2c 20 24 74 6f 6b 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 ,.$token,.$match)).{.return.$mat
ce120 63 68 5b 31 5d 2e 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 6d 61 74 63 68 5b ch[1].$self->escapeToken($match[
ce140 32 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 2]);.}..if.($token.&&.$token[0].
ce160 21 3d 3d 20 27 2d 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 !==.'-').{.return.$self->escapeT
ce180 6f 6b 65 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a oken($token);.}..return.$token;.
ce1a0 7d 2c 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f },.$this->tokens);..return.implo
ce1c0 64 65 28 27 20 27 2c 20 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a de('.',.$tokens);.}.}.<?php.....
ce1e0 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
ce200 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 t\Console\Input;.......interface
ce220 20 49 6e 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 .InputInterface.{......public.fu
ce240 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 0a 0a 0a 0a 0a nction.getFirstArgument();......
ce260 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 65 74 ......public.function.hasParamet
ce280 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 erOption($values);.............p
ce2a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f ublic.function.getParameterOptio
ce2c0 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 3b 0a 0a 0a n($values,.$default.=.false);...
ce2e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 ....public.function.bind(InputDe
ce300 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 finition.$definition);.........p
ce320 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a ublic.function.validate();......
ce340 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b .public.function.getArguments();
ce360 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 72 67 75 .........public.function.getArgu
ce380 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ment($name);..........public.fun
ce3a0 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 ction.setArgument($name,.$value)
ce3c0 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 68 61 73 41 72 67 ;.........public.function.hasArg
ce3e0 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ument($name);.......public.funct
ce400 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion.getOptions();.........public
ce420 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a .function.getOption($name);.....
ce440 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 .....public.function.setOption($
ce460 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 name,.$value);.........public.fu
ce480 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 nction.hasOption($name);.......p
ce4a0 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 3b 0a ublic.function.isInteractive();.
ce4c0 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 74 65 72 61 63 ......public.function.setInterac
ce4e0 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a tive($interactive);.}.<?php.....
ce500 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
ce520 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 t\Console\Input;.............cla
ce540 73 73 20 41 72 72 61 79 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 ss.ArrayInput.extends.Input.{.pr
ce560 69 76 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ivate.$parameters;..........publ
ce580 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 70 ic.function.__construct(array.$p
ce5a0 61 72 61 6d 65 74 65 72 73 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 arameters,.InputDefinition.$defi
ce5c0 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 nition.=.null).{.$this->paramete
ce5e0 72 73 20 3d 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e rs.=.$parameters;..parent::__con
ce600 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 struct($definition);.}.......pub
ce620 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 65 6e 74 28 29 0a lic.function.getFirstArgument().
ce640 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 {.foreach.($this->parameters.as.
ce660 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 26 26 20 27 2d $key.=>.$value).{.if.($key.&&.'-
ce680 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 '.===.$key[0]).{.continue;.}..re
ce6a0 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c turn.$value;.}.}............publ
ce6c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 ic.function.hasParameterOption($
ce6e0 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c values).{.$values.=.(array).$val
ce700 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 ues;..foreach.($this->parameters
ce720 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6b 29 29 .as.$k.=>.$v).{.if.(!is_int($k))
ce740 20 7b 0a 24 76 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 .{.$v.=.$k;.}..if.(in_array($v,.
ce760 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 $values)).{.return.true;.}.}..re
ce780 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 turn.false;.}.............public
ce7a0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 .function.getParameterOption($va
ce7c0 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 6c 75 65 lues,.$default.=.false).{.$value
ce7e0 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 s.=.(array).$values;..foreach.($
ce800 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a this->parameters.as.$k.=>.$v).{.
ce820 69 66 20 28 69 73 5f 69 6e 74 28 24 6b 29 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 if.(is_int($k)).{.if.(in_array($
ce840 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 20 v,.$values)).{.return.true;.}.}.
ce860 65 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 2c 20 24 76 61 6c 75 65 73 29 29 20 7b elseif.(in_array($k,.$values)).{
ce880 0a 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 .return.$v;.}.}..return.$default
ce8a0 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 5f 74 6f 53 74 ;.}.......public.function.__toSt
ce8c0 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 3b 0a 66 6f 72 65 ring().{.$params.=.array();.fore
ce8e0 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 70 61 72 61 6d ach.($this->parameters.as.$param
ce900 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 27 2d 27 20 3d 3d .=>.$val).{.if.($param.&&.'-'.==
ce920 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 20 24 70 61 72 61 =.$param[0]).{.$params[].=.$para
ce940 6d 2e 28 27 27 20 21 3d 20 24 76 61 6c 20 3f 20 27 3d 27 2e 24 74 68 69 73 2d 3e 65 73 63 61 70 m.(''.!=.$val.?.'='.$this->escap
ce960 65 54 6f 6b 65 6e 28 24 76 61 6c 29 20 3a 20 27 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 eToken($val).:.'');.}.else.{.$pa
ce980 72 61 6d 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 76 61 6c rams[].=.$this->escapeToken($val
ce9a0 29 3b 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 70 61 72 );.}.}..return.implode('.',.$par
ce9c0 61 6d 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 6f 6e 20 70 ams);.}.....protected.function.p
ce9e0 61 72 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 arse().{.foreach.($this->paramet
cea00 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 20 28 30 20 3d ers.as.$key.=>.$value).{.if.(0.=
cea20 3d 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e ==.strpos($key,.'--')).{.$this->
cea40 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 32 29 2c 20 24 addLongOption(substr($key,.2),.$
cea60 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 value);.}.elseif.('-'.===.$key[0
cea80 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 73 75 62 73 74 ]).{.$this->addShortOption(subst
ceaa0 72 28 24 6b 65 79 2c 20 31 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 r($key,.1),.$value);.}.else.{.$t
ceac0 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a his->addArgument($key,.$value);.
ceae0 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 }.}.}..........private.function.
ceb00 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 addShortOption($shortcut,.$value
ceb20 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 ).{.if.(!$this->definition->hasS
ceb40 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 hortcut($shortcut)).{.throw.new.
ceb60 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
ceb80 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 69 f('The."-%s".option.does.not.exi
ceba0 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 st.',.$shortcut));.}..$this->add
cebc0 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 LongOption($this->definition->ge
cebe0 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 tOptionForShortcut($shortcut)->g
cec00 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 etName(),.$value);.}...........p
cec20 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 6f 6e 28 24 6e rivate.function.addLongOption($n
cec40 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e ame,.$value).{.if.(!$this->defin
cec60 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 ition->hasOption($name)).{.throw
cec80 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
ceca0 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
cecc0 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 ot.exist.',.$name));.}..$option.
cece0 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 =.$this->definition->getOption($
ced00 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 name);..if.(null.===.$value).{.i
ced20 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b f.($option->isValueRequired()).{
ced40 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
ced60 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 tion(sprintf('The."--%s".option.
ced80 72 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a requires.a.value.',.$name));.}..
ceda0 24 76 61 6c 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 $value.=.$option->isValueOptiona
cedc0 6c 28 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 l().?.$option->getDefault().:.tr
cede0 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 ue;.}..$this->options[$name].=.$
cee00 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 value;.}..........private.functi
cee20 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a on.addArgument($name,.$value).{.
cee40 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 41 72 67 75 6d if.(!$this->definition->hasArgum
cee60 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ent($name)).{.throw.new.\Invalid
cee80 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 22 ArgumentException(sprintf('The."
ceea0 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 %s".argument.does.not.exist.',.$
ceec0 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d name));.}..$this->arguments[$nam
ceee0 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e].=.$value;.}.}.<?php..........
cef00 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
cef20 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 sole\Input;........interface.Inp
cef40 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 utAwareInterface.{......public.f
cef60 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 63 65 20 unction.setInput(InputInterface.
cef80 24 69 6e 70 75 74 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 $input);.}.<?php...........names
cefa0 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 49 pace.Symfony\Component\Console\I
cefc0 6e 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 nput;..use.Symfony\Component\Con
cefe0 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 3b 0a sole\Descriptor\TextDescriptor;.
cf000 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 44 65 use.Symfony\Component\Console\De
cf020 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 6d 66 scriptor\XmlDescriptor;.use.Symf
cf040 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
cf060 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 61 73 feredOutput;................clas
cf080 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 72 67 s.InputDefinition.{.private.$arg
cf0a0 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 3b 0a uments;.private.$requiredCount;.
cf0c0 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 66 61 private.$hasAnArrayArgument.=.fa
cf0e0 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 76 61 lse;.private.$hasOptional;.priva
cf100 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 73 3b te.$options;.private.$shortcuts;
cf120 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .........public.function.__const
cf140 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 28 29 ruct(array.$definition.=.array()
cf160 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 6e 69 ).{.$this->setDefinition($defini
cf180 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 6f 6e tion);.}.........public.function
cf1a0 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 6f 6e .setDefinition(array.$definition
cf1c0 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 69 6f ).{.$arguments.=.array();.$optio
cf1e0 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 74 69 ns.=.array();.foreach.($definiti
cf200 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 6e 63 on.as.$item).{.if.($item.instanc
cf220 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 3d 20 eof.InputOption).{.$options[].=.
cf240 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 20 24 $item;.}.else.{.$arguments[].=.$
cf260 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 28 24 item;.}.}..$this->setArguments($
cf280 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 24 6f arguments);.$this->setOptions($o
cf2a0 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
cf2c0 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 72 72 on.setArguments($arguments.=.arr
cf2e0 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 61 79 ay()).{.$this->arguments.=.array
cf300 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 24 74 ();.$this->requiredCount.=.0;.$t
cf320 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 73 2d his->hasOptional.=.false;.$this-
cf340 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 74 68 >hasAnArrayArgument.=.false;.$th
cf360 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 7d 0a is->addArguments($arguments);.}.
cf380 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 75 6d ........public.function.addArgum
cf3a0 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 66 20 ents($arguments.=.array()).{.if.
cf3c0 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 68 20 (null.!==.$arguments).{.foreach.
cf3e0 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 68 69 ($arguments.as.$argument).{.$thi
cf400 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 0a 7d s->addArgument($argument);.}.}.}
cf420 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 41 72 ...........public.function.addAr
cf440 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 29 0a gument(InputArgument.$argument).
cf460 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 61 72 {.if.(isset($this->arguments[$ar
cf480 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 65 77 gument->getName()])).{.throw.new
cf4a0 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 72 67 .\LogicException(sprintf('An.arg
cf4c0 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 78 69 ument.with.name."%s".already.exi
cf4e0 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 0a 7d sts.',.$argument->getName()));.}
cf500 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 74 29 ..if.($this->hasAnArrayArgument)
cf520 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 .{.throw.new.\LogicException('Ca
cf540 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 61 72 nnot.add.an.argument.after.an.ar
cf560 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 65 6e ray.argument.');.}..if.($argumen
cf580 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 70 74 t->isRequired().&&.$this->hasOpt
cf5a0 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 74 69 ional).{.throw.new.\LogicExcepti
cf5c0 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 6d 65 on('Cannot.add.a.required.argume
cf5e0 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 0a 0a nt.after.an.optional.one.');.}..
cf600 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 68 69 if.($argument->isArray()).{.$thi
cf620 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 7d 0a s->hasAnArrayArgument.=.true;.}.
cf640 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 7b 0a .if.($argument->isRequired()).{.
cf660 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 20 7b ++$this->requiredCount;.}.else.{
cf680 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 0a 24 .$this->hasOptional.=.true;.}..$
cf6a0 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 4e 61 this->arguments[$argument->getNa
cf6c0 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 0a 0a me()].=.$argument;.}............
cf6e0 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 6e 61 .public.function.getArgument($na
cf700 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 24 6e me).{.if.(!$this->hasArgument($n
cf720 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
cf740 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 61 72 ntException(sprintf('The."%s".ar
cf760 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 29 29 gument.does.not.exist.',.$name))
cf780 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 29 20 ;.}..$arguments.=.is_int($name).
cf7a0 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 ?.array_values($this->arguments)
cf7c0 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 61 72 .:.$this->arguments;..return.$ar
cf7e0 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 62 6c guments[$name];.}...........publ
cf800 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 0a 7b ic.function.hasArgument($name).{
cf820 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 61 72 .$arguments.=.is_int($name).?.ar
cf840 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a 20 24 ray_values($this->arguments).:.$
cf860 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 28 24 this->arguments;..return.isset($
cf880 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 75 62 arguments[$name]);.}.........pub
cf8a0 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 72 65 lic.function.getArguments().{.re
cf8c0 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 0a 70 turn.$this->arguments;.}.......p
cf8e0 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 74 28 ublic.function.getArgumentCount(
cf900 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 67 75 ).{.return.$this->hasAnArrayArgu
cf920 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 69 73 ment.?.PHP_INT_MAX.:.count($this
cf940 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 75 6e ->arguments);.}.......public.fun
cf960 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 28 29 ction.getArgumentRequiredCount()
cf980 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 3b 0a .{.return.$this->requiredCount;.
cf9a0 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 75 6d }.......public.function.getArgum
cf9c0 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 79 28 entDefaults().{.$values.=.array(
cf9e0 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 73 20 );.foreach.($this->arguments.as.
cfa00 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 2d 3e $argument).{.$values[$argument->
cfa20 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 61 75 getName()].=.$argument->getDefau
cfa40 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 0a 0a lt();.}..return.$values;.}......
cfa60 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 24 6f ...public.function.setOptions($o
cfa80 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 69 6f ptions.=.array()).{.$this->optio
cfaa0 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 20 3d ns.=.array();.$this->shortcuts.=
cfac0 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 70 74 .array();.$this->addOptions($opt
cfae0 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 6f 6e ions);.}.........public.function
cfb00 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 29 0a .addOptions($options.=.array()).
cfb20 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 29 20 {.foreach.($options.as.$option).
cfb40 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 0a 7d {.$this->addOption($option);.}.}
cfb60 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 4f 70 ...........public.function.addOp
cfb80 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 20 28 tion(InputOption.$option).{.if.(
cfba0 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 67 65 isset($this->options[$option->ge
cfbc0 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 24 74 tName()]).&&.!$option->equals($t
cfbe0 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 29 5d his->options[$option->getName()]
cfc00 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 28 73 )).{.throw.new.\LogicException(s
cfc20 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 6c 72 printf('An.option.named."%s".alr
cfc40 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 65 28 eady.exists.',.$option->getName(
cfc60 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 75 74 )));.}..if.($option->getShortcut
cfc80 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 70 74 ()).{.foreach.(explode('|',.$opt
cfca0 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 75 74 ion->getShortcut()).as.$shortcut
cfcc0 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 5b 24 ).{.if.(isset($this->shortcuts[$
cfce0 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 28 24 shortcut]).&&.!$option->equals($
cfd00 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 5b 24 this->options[$this->shortcuts[$
cfd20 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 63 45 shortcut]])).{.throw.new.\LogicE
cfd40 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 74 68 xception(sprintf('An.option.with
cfd60 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 27 2c .shortcut."%s".already.exists.',
cfd80 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 74 69 .$shortcut));.}.}.}..$this->opti
cfda0 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 69 6f ons[$option->getName()].=.$optio
cfdc0 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 20 7b n;.if.($option->getShortcut()).{
cfde0 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 2d 3e .foreach.(explode('|',.$option->
cfe00 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 0a 24 getShortcut()).as.$shortcut).{.$
cfe20 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 6f 70 this->shortcuts[$shortcut].=.$op
cfe40 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 0a 0a tion->getName();.}.}.}..........
cfe60 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 6e 61 ...public.function.getOption($na
cfe80 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 61 6d me).{.if.(!$this->hasOption($nam
cfea0 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 74 e)).{.throw.new.\InvalidArgument
cfec0 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 Exception(sprintf('The."--%s".op
cfee0 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 3b 0a tion.does.not.exist.',.$name));.
cff00 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 5d 3b }..return.$this->options[$name];
cff20 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 61 73 .}...........public.function.has
cff40 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 74 68 Option($name).{.return.isset($th
cff60 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 0a 70 is->options[$name]);.}.........p
cff80 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 72 65 ublic.function.getOptions().{.re
cffa0 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 0a 70 turn.$this->options;.}.........p
cffc0 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 6d 65 ublic.function.hasShortcut($name
cffe0 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 75 74 ).{.return.isset($this->shortcut
d0000 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 6e 63 s[$name]);.}.........public.func
d0020 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 72 74 tion.getOptionForShortcut($short
d0040 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 28 24 cut).{.return.$this->getOption($
d0060 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 29 29 this->shortcutToName($shortcut))
d0080 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 70 74 ;.}.......public.function.getOpt
d00a0 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 79 28 ionDefaults().{.$values.=.array(
d00c0 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 24 6f );.foreach.($this->options.as.$o
d00e0 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 61 6d ption).{.$values[$option->getNam
d0100 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 7d 0a e()].=.$option->getDefault();.}.
d0120 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 72 69 .return.$values;.}...........pri
d0140 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 73 68 vate.function.shortcutToName($sh
d0160 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 6f 72 ortcut).{.if.(!isset($this->shor
d0180 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 20 5c tcuts[$shortcut])).{.throw.new.\
d01a0 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
d01c0 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 69 73 ('The."-%s".option.does.not.exis
d01e0 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 68 69 t.',.$shortcut));.}..return.$thi
d0200 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 0a 0a s->shortcuts[$shortcut];.}......
d0220 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 0a 7b .public.function.getSynopsis().{
d0240 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 28 24 .$elements.=.array();.foreach.($
d0260 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b this->getOptions().as.$option).{
d0280 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 63 75 .$shortcut.=.$option->getShortcu
d02a0 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 3e 67 t().?.sprintf('-%s|',.$option->g
d02c0 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 5d 20 etShortcut()).:.'';.$elements[].
d02e0 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 65 52 =.sprintf('['.($option->isValueR
d0300 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 24 6f equired().?.'%s--%s="..."'.:.($o
d0320 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 2d 2d ption->isValueOptional().?.'%s--
d0340 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 24 73 %s[="..."]'.:.'%s--%s')).']',.$s
d0360 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 7d 0a hortcut,.$option->getName());.}.
d0380 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 29 20 .foreach.($this->getArguments().
d03a0 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 73 70 as.$argument).{.$elements[].=.sp
d03c0 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 3f 20 rintf($argument->isRequired().?.
d03e0 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 61 6d '%s'.:.'[%s]',.$argument->getNam
d0400 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 27 20 e().($argument->isArray().?.'1'.
d0420 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 79 28 :.''));..if.($argument->isArray(
d0440 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 2e 20 )).{.$elements[].=.sprintf('....
d0460 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 0a 7d [%sN]',.$argument->getName());.}
d0480 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 6e 74 .}..return.implode('.',.$element
d04a0 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 61 73 s);.}.........public.function.as
d04c0 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 74 44 Text().{.$descriptor.=.new.TextD
d04e0 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 66 65 escriptor();.$output.=.new.Buffe
d0500 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 4f 53 redOutput(BufferedOutput::VERBOS
d0520 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 2d 3e ITY_NORMAL,.true);.$descriptor->
d0540 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 28 27 describe($output,.$this,.array('
d0560 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 20 24 raw_output'.=>.true));..return.$
d0580 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 75 62 output->fetch();.}...........pub
d05a0 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 6c 73 lic.function.asXml($asDom.=.fals
d05c0 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 72 69 e).{.$descriptor.=.new.XmlDescri
d05e0 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 24 64 ptor();..if.($asDom).{.return.$d
d0600 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 6f 63 escriptor->getInputDefinitionDoc
d0620 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 20 42 ument($this);.}..$output.=.new.B
d0640 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 64 65 ufferedOutput();.$descriptor->de
d0660 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 6e 20 scribe($output,.$this);..return.
d0680 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 0a 0a $output->fetch();.}.}.<?php.....
d06a0 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
d06c0 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 65 6e t\Console;..use.Symfony\Componen
d06e0 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 73 65 t\Console\Input\StringInput;.use
d0700 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
d0720 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 6f 6d t\ConsoleOutput;.use.Symfony\Com
d0740 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 0a 75 ponent\Process\ProcessBuilder;.u
d0760 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 68 70 se.Symfony\Component\Process\Php
d0780 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 61 73 ExecutableFinder;...........clas
d07a0 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 3b 0a s.Shell.{.private.$application;.
d07c0 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 70 75 private.$history;.private.$outpu
d07e0 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 74 65 t;.private.$hasReadline;.private
d0800 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 0a 0a .$processIsolation.=.false;.....
d0820 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
d0840 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 (Application.$application).{.$th
d0860 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 20 3d 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 is->hasReadline.=.function_exist
d0880 73 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f s('readline');.$this->applicatio
d08a0 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 n.=.$application;.$this->history
d08c0 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2e 27 2f 2e 68 69 73 74 6f 72 79 5f 27 2e 24 .=.getenv('HOME').'/.history_'.$
d08e0 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 6f application->getName();.$this->o
d0900 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 0a 0a utput.=.new.ConsoleOutput();.}..
d0920 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 69 73 ...public.function.run().{.$this
d0940 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 73 65 ->application->setAutoExit(false
d0960 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 68 45 );.$this->application->setCatchE
d0980 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 61 73 xceptions(true);..if.($this->has
d09a0 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 6f 72 Readline).{.readline_read_histor
d09c0 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 6d 70 y($this->history);.readline_comp
d09e0 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 61 75 letion_function(array($this,.'au
d0a00 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 75 74 tocompleter'));.}..$this->output
d0a20 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 0a 24 ->writeln($this->getHeader());.$
d0a40 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 49 73 php.=.null;.if.($this->processIs
d0a60 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 65 63 olation).{.$finder.=.new.PhpExec
d0a80 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 2d 3e utableFinder();.$php.=.$finder->
d0aa0 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 28 3c find();.$this->output->writeln(<
d0ac0 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 73 73 <<EOF.<info>Running.with.process
d0ae0 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 72 20 .isolation,.you.should.consider.
d0b00 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 69 73 this:</info>...*.each.command.is
d0b20 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 0a 20 .executed.as.separate.process,..
d0b40 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 72 61 .*.commands.don't.support.intera
d0b60 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 73 73 ctivity,.all.params.must.be.pass
d0b80 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 74 70 ed.explicitly,...*.commands.outp
d0ba0 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 0a 0a ut.is.not.colorized...EOF.);.}..
d0bc0 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 73 2d while.(true).{.$command.=.$this-
d0be0 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 6f 6d >readline();..if.(false.===.$com
d0c00 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 28 22 mand).{.$this->output->writeln("
d0c20 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 73 52 \n");..break;.}..if.($this->hasR
d0c40 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 79 28 eadline).{.readline_add_history(
d0c60 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 6f 72 $command);.readline_write_histor
d0c80 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 73 2d y($this->history);.}..if.($this-
d0ca0 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 20 50 >processIsolation).{.$pb.=.new.P
d0cc0 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 70 62 rocessBuilder();..$process.=.$pb
d0ce0 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 72 67 .->add($php).->add($_SERVER['arg
d0d00 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 72 69 v'][0]).->add($command).->inheri
d0d20 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 67 65 tEnvironmentVariables(true).->ge
d0d40 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 3e 6f tProcess().;..$output.=.$this->o
d0d60 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 28 24 utput;.$process->run(function.($
d0d80 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 6f 75 type,.$data).use.($output).{.$ou
d0da0 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 74 20 tput->writeln($data);.});..$ret.
d0dc0 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 6c 73 =.$process->getExitCode();.}.els
d0de0 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 3e 72 e.{.$ret.=.$this->application->r
d0e00 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 24 74 un(new.StringInput($command),.$t
d0e20 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 74 29 his->output);.}..if.(0.!==.$ret)
d0e40 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 6e 74 .{.$this->output->writeln(sprint
d0e60 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 65 64 f('<error>The.command.terminated
d0e80 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 72 6f .with.an.error.status.(%s)</erro
d0ea0 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 63 74 r>',.$ret));.}.}.}.......protect
d0ec0 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 72 6e ed.function.getHeader().{.return
d0ee0 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 7b 24 .<<<EOF..Welcome.to.the.<info>{$
d0f00 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 2f 69 this->application->getName()}</i
d0f20 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 70 70 nfo>.shell.(<comment>{$this->app
d0f40 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 6e 74 lication->getVersion()}</comment
d0f60 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 65 6e >)...At.the.prompt,.type.<commen
d0f80 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 2c 0a t>help</comment>.for.some.help,.
d0fa0 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 67 65 or.<comment>list</comment>.to.ge
d0fc0 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 2e 0a t.a.list.of.available.commands..
d0fe0 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 65 6e .To.exit.the.shell,.type.<commen
d1000 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 70 72 t>^D</comment>...EOF;.}.......pr
d1020 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 0a 0a otected.function.getPrompt().{..
d1040 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 61 74 .return.$this->output->getFormat
d1060 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 6f 6e ter()->format($this->application
d1080 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 65 64 ->getName().'.>.');.}..protected
d10a0 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 20 24 .function.getOutput().{.return.$
d10c0 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 63 74 this->output;.}..protected.funct
d10e0 69 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ion.getApplication().{.return.$t
d1100 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 69 76 his->application;.}.........priv
d1120 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 78 74 ate.function.autocompleter($text
d1140 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 74 65 ).{.$info.=.readline_info();.$te
d1160 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 27 5d xt.=.substr($info['line_buffer']
d1180 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 5b 27 ,.0,.$info['end']);..if.($info['
d11a0 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 74 75 point'].!==.$info['end']).{.retu
d11c0 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 72 70 rn.true;.}....if.(false.===.strp
d11e0 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 74 75 os($text,.'.').||.!$text).{.retu
d1200 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 6f 6e rn.array_keys($this->application
d1220 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 3d 20 ->all());.}....try.{.$command.=.
d1240 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 72 28 $this->application->find(substr(
d1260 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 3b 0a $text,.0,.strpos($text,.'.')));.
d1280 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 72 6e }.catch.(\Exception.$e).{.return
d12a0 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 70 27 .true;.}..$list.=.array('--help'
d12c0 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 69 74 );.foreach.($command->getDefinit
d12e0 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 29 20 ion()->getOptions().as.$option).
d1300 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 61 6d {.$list[].=.'--'.$option->getNam
d1320 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 70 72 e();.}..return.$list;.}.......pr
d1340 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 20 28 ivate.function.readline().{.if.(
d1360 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 72 65 $this->hasReadline).{.$line.=.re
d1380 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 65 6c adline($this->getPrompt());.}.el
d13a0 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 73 2d se.{.$this->output->write($this-
d13c0 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 54 44 >getPrompt());.$line.=.fgets(STD
d13e0 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 73 74 IN,.1024);.$line.=.(!$line.&&.st
d1400 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 72 69 rlen($line).==.0).?.false.:.rtri
d1420 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 70 75 m($line);.}..return.$line;.}..pu
d1440 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 69 6f blic.function.getProcessIsolatio
d1460 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 6c 61 n().{.return.$this->processIsola
d1480 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 6f 63 tion;.}..public.function.setProc
d14a0 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 29 0a essIsolation($processIsolation).
d14c0 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 62 6f 6f {.$this->processIsolation.=.(boo
d14e0 6c 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 24 74 68 69 73 l).$processIsolation;..if.($this
d1500 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 73 5f 65 78 69 ->processIsolation.&&.!class_exi
d1520 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 6f 63 65 73 73 sts('Symfony\\Component\\Process
d1540 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 75 6e 74 69 6d \\Process')).{.throw.new.\Runtim
d1560 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 74 65 20 70 72 eException('Unable.to.isolate.pr
d1580 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 65 73 73 20 43 ocesses.as.the.Symfony.Process.C
d15a0 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 29 3b 0a 7d 0a omponent.is.not.installed.');.}.
d15c0 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
d15e0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e mfony\Component\Console\Question
d1600 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 20 65 78 74 ;.......class.ChoiceQuestion.ext
d1620 65 6e 64 73 20 51 75 65 73 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 68 6f 69 63 65 73 ends.Question.{.private.$choices
d1640 3b 0a 70 72 69 76 61 74 65 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 66 61 6c 73 65 3b 0a ;.private.$multiselect.=.false;.
d1660 70 72 69 76 61 74 65 20 24 70 72 6f 6d 70 74 20 3d 20 27 20 3e 20 27 3b 0a 70 72 69 76 61 74 65 private.$prompt.=.'.>.';.private
d1680 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 69 73 20 .$errorMessage.=.'Value."%s".is.
d16a0 69 6e 76 61 6c 69 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f invalid';.........public.functio
d16c0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 n.__construct($question,.array.$
d16e0 63 68 6f 69 63 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 choices,.$default.=.null).{.pare
d1700 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 nt::__construct($question,.$defa
d1720 75 6c 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 68 6f 69 63 65 73 20 3d 20 24 63 68 6f 69 63 65 73 ult);..$this->choices.=.$choices
d1740 3b 0a 24 74 68 69 73 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 ;.$this->setValidator($this->get
d1760 44 65 66 61 75 6c 74 56 61 6c 69 64 61 74 6f 72 28 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 41 DefaultValidator());.$this->setA
d1780 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 61 72 72 61 79 5f 6b 65 79 73 28 24 63 utocompleterValues(array_keys($c
d17a0 68 6f 69 63 65 73 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 hoices));.}.......public.functio
d17c0 6e 20 67 65 74 43 68 6f 69 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 n.getChoices().{.return.$this->c
d17e0 68 6f 69 63 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 hoices;.}...........public.funct
d1800 69 6f 6e 20 73 65 74 4d 75 6c 74 69 73 65 6c 65 63 74 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 ion.setMultiselect($multiselect)
d1820 0a 7b 0a 24 74 68 69 73 2d 3e 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 24 6d 75 6c 74 69 73 65 .{.$this->multiselect.=.$multise
d1840 6c 65 63 74 3b 0a 24 74 68 69 73 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d lect;.$this->setValidator($this-
d1860 3e 67 65 74 44 65 66 61 75 6c 74 56 61 6c 69 64 61 74 6f 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e >getDefaultValidator());..return
d1880 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.
d18a0 67 65 74 50 72 6f 6d 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 6d getPrompt().{.return.$this->prom
d18c0 70 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 pt;.}.........public.function.se
d18e0 74 50 72 6f 6d 70 74 28 24 70 72 6f 6d 70 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 tPrompt($prompt).{.$this->prompt
d1900 20 3d 20 24 70 72 6f 6d 70 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a .=.$prompt;..return.$this;.}....
d1920 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 72 72 6f 72 4d .......public.function.setErrorM
d1940 65 73 73 61 67 65 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 essage($errorMessage).{.$this->e
d1960 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 3b 0a 24 74 68 rrorMessage.=.$errorMessage;.$th
d1980 69 73 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 is->setValidator($this->getDefau
d19a0 6c 74 56 61 6c 69 64 61 74 6f 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ltValidator());..return.$this;.}
d19c0 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 44 65 66 61 75 .......private.function.getDefau
d19e0 6c 74 56 61 6c 69 64 61 74 6f 72 28 29 0a 7b 0a 24 63 68 6f 69 63 65 73 20 3d 20 24 74 68 69 73 ltValidator().{.$choices.=.$this
d1a00 2d 3e 63 68 6f 69 63 65 73 3b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 ->choices;.$errorMessage.=.$this
d1a20 2d 3e 65 72 72 6f 72 4d 65 73 73 61 67 65 3b 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 24 ->errorMessage;.$multiselect.=.$
d1a40 74 68 69 73 2d 3e 6d 75 6c 74 69 73 65 6c 65 63 74 3b 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 this->multiselect;..return.funct
d1a60 69 6f 6e 20 28 24 73 65 6c 65 63 74 65 64 29 20 75 73 65 20 28 24 63 68 6f 69 63 65 73 2c 20 24 ion.($selected).use.($choices,.$
d1a80 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).{...
d1aa0 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 27 $selectedChoices.=.str_replace('
d1ac0 20 27 2c 20 27 27 2c 20 24 73 65 6c 65 63 74 65 64 29 3b 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 .',.'',.$selected);..if.($multis
d1ae0 65 6c 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 elect).{...if.(!preg_match('/^[a
d1b00 2d 7a 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 -zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*
d1b20 24 2f 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 $/',.$selectedChoices,.$matches)
d1b40 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
d1b60 63 65 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 ception(sprintf($errorMessage,.$
d1b80 73 65 6c 65 63 74 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 selected));.}.$selectedChoices.=
d1ba0 20 65 78 70 6c 6f 64 65 28 27 2c 27 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 29 3b .explode(',',.$selectedChoices);
d1bc0 0a 7d 20 65 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 .}.else.{.$selectedChoices.=.arr
d1be0 61 79 28 24 73 65 6c 65 63 74 65 64 29 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 ay($selected);.}..$multiselectCh
d1c00 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 65 6c 65 63 oices.=.array();.foreach.($selec
d1c20 74 65 64 43 68 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 tedChoices.as.$value).{.if.(empt
d1c40 79 28 24 63 68 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 y($choices[$value])).{.throw.new
d1c60 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
d1c80 74 66 28 24 65 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 tf($errorMessage,.$value));.}.ar
d1ca0 72 61 79 5f 70 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 63 ray_push($multiselectChoices,.$c
d1cc0 68 6f 69 63 65 73 5b 24 76 61 6c 75 65 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 hoices[$value]);.}..if.($multise
d1ce0 6c 65 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 lect).{.return.$multiselectChoic
d1d00 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 68 6f 69 63 65 73 5b 24 73 65 6c 65 63 74 65 64 es;.}..return.$choices[$selected
d1d20 5d 3b 0a 7d 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ];.};.}.}.<?php...........namesp
d1d40 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 51 75 ace.Symfony\Component\Console\Qu
d1d60 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 72 6d 61 74 69 6f 6e estion;.......class.Confirmation
d1d80 51 75 65 73 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 51 75 65 73 74 69 6f 6e 0a 7b 0a 0a 0a 0a 0a Question.extends.Question.{.....
d1da0 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 71 ..public.function.__construct($q
d1dc0 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 70 61 72 65 uestion,.$default.=.true).{.pare
d1de0 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 28 62 6f 6f 6c nt::__construct($question,.(bool
d1e00 29 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 4e 6f 72 6d 61 6c 69 7a ).$default);..$this->setNormaliz
d1e20 65 72 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 er($this->getDefaultNormalizer()
d1e40 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 67 65 74 44 );.}.......private.function.getD
d1e60 65 66 61 75 6c 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 0a 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 efaultNormalizer().{.$default.=.
d1e80 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 66 75 6e $this->getDefault();..return.fun
d1ea0 63 74 69 6f 6e 20 28 24 61 6e 73 77 65 72 29 20 75 73 65 20 28 24 64 65 66 61 75 6c 74 29 20 7b ction.($answer).use.($default).{
d1ec0 0a 69 66 20 28 69 73 5f 62 6f 6f 6c 28 24 61 6e 73 77 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 .if.(is_bool($answer)).{.return.
d1ee0 24 61 6e 73 77 65 72 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 $answer;.}..if.(false.===.$defau
d1f00 6c 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 27 79 27 20 3d 3d 3d 20 lt).{.return.$answer.&&.'y'.===.
d1f20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 strtolower($answer[0]);.}..retur
d1f40 6e 20 21 24 61 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 n.!$answer.||.'y'.===.strtolower
d1f60 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ($answer[0]);.};.}.}.<?php......
d1f80 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
d1fa0 5c 43 6f 6e 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 51 \Console\Question;.......class.Q
d1fc0 75 65 73 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 71 75 65 73 74 69 6f 6e 3b 0a 70 72 69 uestion.{.private.$question;.pri
d1fe0 76 61 74 65 20 24 61 74 74 65 6d 70 74 73 3b 0a 70 72 69 76 61 74 65 20 24 68 69 64 64 65 6e 20 vate.$attempts;.private.$hidden.
d2000 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b =.false;.private.$hiddenFallback
d2020 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 .=.true;.private.$autocompleterV
d2040 61 6c 75 65 73 3b 0a 70 72 69 76 61 74 65 20 24 76 61 6c 69 64 61 74 6f 72 3b 0a 70 72 69 76 61 alues;.private.$validator;.priva
d2060 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 te.$default;.private.$normalizer
d2080 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
d20a0 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 ruct($question,.$default.=.null)
d20c0 0a 7b 0a 24 74 68 69 73 2d 3e 71 75 65 73 74 69 6f 6e 20 3d 20 24 71 75 65 73 74 69 6f 6e 3b 0a .{.$this->question.=.$question;.
d20e0 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a $this->default.=.$default;.}....
d2100 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 51 75 65 73 74 69 6f 6e 28 29 ...public.function.getQuestion()
d2120 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 73 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a .{.return.$this->question;.}....
d2140 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a ...public.function.getDefault().
d2160 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a {.return.$this->default;.}......
d2180 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 48 69 64 64 65 6e 28 29 0a 7b 0a 72 65 .public.function.isHidden().{.re
d21a0 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 69 64 64 65 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$this->hidden;.}...........
d21c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 69 64 64 65 6e 28 24 68 69 64 64 65 public.function.setHidden($hidde
d21e0 6e 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c n).{.if.($this->autocompleterVal
d2200 75 65 73 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 ues).{.throw.new.\LogicException
d2220 28 27 41 20 68 69 64 64 65 6e 20 71 75 65 73 74 69 6f 6e 20 63 61 6e 6e 6f 74 20 75 73 65 20 74 ('A.hidden.question.cannot.use.t
d2240 68 65 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 he.autocompleter.');.}..$this->h
d2260 69 64 64 65 6e 20 3d 20 28 62 6f 6f 6c 29 20 24 68 69 64 64 65 6e 3b 0a 0a 72 65 74 75 72 6e 20 idden.=.(bool).$hidden;..return.
d2280 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 69 $this;.}.......public.function.i
d22a0 73 48 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 sHiddenFallback().{.return.$this
d22c0 2d 3e 68 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ->hiddenFallback;.}.........publ
d22e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 28 24 66 ic.function.setHiddenFallback($f
d2300 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b allback).{.$this->hiddenFallback
d2320 20 3d 20 28 62 6f 6f 6c 29 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 .=.(bool).$fallback;..return.$th
d2340 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 67 65 74 41 is;.}.......public.function.getA
d2360 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 utocompleterValues().{.return.$t
d2380 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a his->autocompleterValues;.}.....
d23a0 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 63 6f .......public.function.setAutoco
d23c0 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 24 76 61 6c 75 65 73 29 0a 7b 0a 69 66 20 28 6e 75 6c mpleterValues($values).{.if.(nul
d23e0 6c 20 21 3d 3d 20 24 76 61 6c 75 65 73 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 l.!==.$values.&&.!is_array($valu
d2400 65 73 29 29 20 7b 0a 69 66 20 28 21 24 76 61 6c 75 65 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c es)).{.if.(!$values.instanceof.\
d2420 54 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 24 76 61 6c 75 65 73 20 69 6e 73 74 61 6e 63 65 6f Traversable.||.$values.instanceo
d2440 66 20 5c 43 6f 75 6e 74 61 62 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c f.\Countable).{.throw.new.\Inval
d2460 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 75 74 6f 63 6f 6d 70 6c 65 74 idArgumentException('Autocomplet
d2480 65 72 20 76 61 6c 75 65 73 20 63 61 6e 20 62 65 20 65 69 74 68 65 72 20 61 6e 20 61 72 72 61 79 er.values.can.be.either.an.array
d24a0 2c 20 60 6e 75 6c 6c 60 20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 69 6d 70 6c 65 6d 65 6e 74 69 ,.`null`.or.an.object.implementi
d24c0 6e 67 20 62 6f 74 68 20 60 43 6f 75 6e 74 61 62 6c 65 60 20 61 6e 64 20 60 54 72 61 76 65 72 73 ng.both.`Countable`.and.`Travers
d24e0 61 62 6c 65 60 20 69 6e 74 65 72 66 61 63 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 able`.interfaces.');.}.}..if.($t
d2500 68 69 73 2d 3e 68 69 64 64 65 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 his->hidden).{.throw.new.\LogicE
d2520 78 63 65 70 74 69 6f 6e 28 27 41 20 68 69 64 64 65 6e 20 71 75 65 73 74 69 6f 6e 20 63 61 6e 6e xception('A.hidden.question.cann
d2540 6f 74 20 75 73 65 20 74 68 65 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 2e 27 29 3b 0a 7d 0a 0a ot.use.the.autocompleter.');.}..
d2560 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 20 3d 20 24 76 61 $this->autocompleterValues.=.$va
d2580 6c 75 65 73 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 lues;..return.$this;.}.........p
d25a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 76 61 6c ublic.function.setValidator($val
d25c0 69 64 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 6f 72 20 3d 20 24 76 61 idator).{.$this->validator.=.$va
d25e0 6c 69 64 61 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 0a 0a 0a lidator;..return.$this;.}.......
d2600 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 61 6c 69 64 61 74 6f 72 28 29 0a 7b public.function.getValidator().{
d2620 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a .return.$this->validator;.}.....
d2640 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 4d 61 78 41 74 ........public.function.setMaxAt
d2660 74 65 6d 70 74 73 28 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d tempts($attempts).{.if.(null.!==
d2680 20 24 61 74 74 65 6d 70 74 73 20 26 26 20 24 61 74 74 65 6d 70 74 73 20 3c 20 31 29 20 7b 0a 74 .$attempts.&&.$attempts.<.1).{.t
d26a0 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
d26c0 6f 6e 28 27 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 61 74 74 65 6d 70 74 73 20 6d on('Maximum.number.of.attempts.m
d26e0 75 73 74 20 62 65 20 61 20 70 6f 73 69 74 69 76 65 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 ust.be.a.positive.value.');.}..$
d2700 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 73 20 3d 20 24 61 74 74 65 6d 70 74 73 3b 0a 0a 72 65 74 this->attempts.=.$attempts;..ret
d2720 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
d2740 74 69 6f 6e 20 67 65 74 4d 61 78 41 74 74 65 6d 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getMaxAttempts().{.return.$
d2760 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c this->attempts;.}...........publ
d2780 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 24 6e 6f 72 6d 61 ic.function.setNormalizer($norma
d27a0 6c 69 7a 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 24 6e 6f lizer).{.$this->normalizer.=.$no
d27c0 72 6d 61 6c 69 7a 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 rmalizer;..return.$this;.}......
d27e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 ...public.function.getNormalizer
d2800 28 29 0a 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 72 3b 0a 7d ().{.return.$this->normalizer;.}
d2820 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 34 2d 32 30 31 35 20 46 61 62 69 65 .}.Copyright.(c).2004-2015.Fabie
d2840 6e 20 50 6f 74 65 6e 63 69 65 72 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 n.Potencier..Permission.is.hereb
d2860 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e y.granted,.free.of.charge,.to.an
d2880 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 y.person.obtaining.a.copy.of.thi
d28a0 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 s.software.and.associated.docume
d28c0 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 ntation.files.(the."Software"),.
d28e0 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 to.deal.in.the.Software.without.
d2900 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c restriction,.including.without.l
d2920 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 imitation.the.rights.to.use,.cop
d2940 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 y,.modify,.merge,.publish,.distr
d2960 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 ibute,.sublicense,.and/or.sell.c
d2980 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 opies.of.the.Software,.and.to.pe
d29a0 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 rmit.persons.to.whom.the.Softwar
d29c0 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 e.is.furnished.to.do.so,.subject
d29e0 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 .to.the.following.conditions:..T
d2a00 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 he.above.copyright.notice.and.th
d2a20 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e is.permission.notice.shall.be.in
d2a40 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 cluded.in.all.copies.or.substant
d2a60 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 ial.portions.of.the.Software...T
d2a80 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c HE.SOFTWARE.IS.PROVIDED."AS.IS",
d2aa0 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 .WITHOUT.WARRANTY.OF.ANY.KIND,.E
d2ac0 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 XPRESS.OR.IMPLIED,.INCLUDING.BUT
d2ae0 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f .NOT.LIMITED.TO.THE.WARRANTIES.O
d2b00 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 F.MERCHANTABILITY,.FITNESS.FOR.A
d2b20 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 .PARTICULAR.PURPOSE.AND.NONINFRI
d2b40 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 NGEMENT..IN.NO.EVENT.SHALL.THE.A
d2b60 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c UTHORS.OR.COPYRIGHT.HOLDERS.BE.L
d2b80 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 IABLE.FOR.ANY.CLAIM,.DAMAGES.OR.
d2ba0 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 OTHER.LIABILITY,.WHETHER.IN.AN.A
d2bc0 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 CTION.OF.CONTRACT,.TORT.OR.OTHER
d2be0 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e WISE,.ARISING.FROM,.OUT.OF.OR.IN
d2c00 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 .CONNECTION.WITH.THE.SOFTWARE.OR
d2c20 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 .THE.USE.OR.OTHER.DEALINGS.IN.TH
d2c40 45 20 53 4f 46 54 57 41 52 45 2e 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 E.SOFTWARE..<?php...........name
d2c60 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 5c space.Symfony\Component\Console\
d2c80 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 Output;..use.Symfony\Component\C
d2ca0 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 onsole\Formatter\OutputFormatter
d2cc0 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
d2ce0 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 74 \Console\Formatter\OutputFormatt
d2d00 65 72 3b 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 er;.................abstract.cla
d2d20 73 73 20 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 ss.Output.implements.OutputInter
d2d40 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 76 61 face.{.private.$verbosity;.priva
d2d60 74 65 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 te.$formatter;...........public.
d2d80 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 function.__construct($verbosity.
d2da0 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 =.self::VERBOSITY_NORMAL,.$decor
d2dc0 61 74 65 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 ated.=.false,.OutputFormatterInt
d2de0 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 erface.$formatter.=.null).{.$thi
d2e00 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 69 s->verbosity.=.null.===.$verbosi
d2e20 74 79 20 3f 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 ty.?.self::VERBOSITY_NORMAL.:.$v
d2e40 65 72 62 6f 73 69 74 79 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 66 6f erbosity;.$this->formatter.=.$fo
d2e60 72 6d 61 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 rmatter.?:.new.OutputFormatter()
d2e80 3b 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 74 65 64 ;.$this->formatter->setDecorated
d2ea0 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 6e 63 74 ($decorated);.}.....public.funct
d2ec0 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 ion.setFormatter(OutputFormatter
d2ee0 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 Interface.$formatter).{.$this->f
d2f00 6f 72 6d 61 74 74 65 72 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ormatter.=.$formatter;.}.....pub
d2f20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 0a 7b 0a 72 65 lic.function.getFormatter().{.re
d2f40 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 turn.$this->formatter;.}.....pub
d2f60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 lic.function.setDecorated($decor
d2f80 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 ated).{.$this->formatter->setDec
d2fa0 6f 72 61 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 orated($decorated);.}.....public
d2fc0 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 72 65 74 75 72 6e .function.isDecorated().{.return
d2fe0 20 24 74 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 .$this->formatter->isDecorated()
d3000 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 56 65 72 62 6f ;.}.....public.function.setVerbo
d3020 73 69 74 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 sity($level).{.$this->verbosity.
d3040 3d 20 28 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 =.(int).$level;.}.....public.fun
d3060 63 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ction.getVerbosity().{.return.$t
d3080 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 74 69 his->verbosity;.}..public.functi
d30a0 6f 6e 20 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 on.isQuiet().{.return.self::VERB
d30c0 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 OSITY_QUIET.===.$this->verbosity
d30e0 3b 0a 7d 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 ;.}..public.function.isVerbose()
d3100 0a 7b 0a 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 .{.return.self::VERBOSITY_VERBOS
d3120 45 20 3c 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 E.<=.$this->verbosity;.}..public
d3140 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 0a 7b 0a 72 65 74 75 .function.isVeryVerbose().{.retu
d3160 72 6e 20 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 rn.self::VERBOSITY_VERY_VERBOSE.
d3180 3c 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 <=.$this->verbosity;.}..public.f
d31a0 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 20 73 65 6c 66 3a unction.isDebug().{.return.self:
d31c0 3a 56 45 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 :VERBOSITY_DEBUG.<=.$this->verbo
d31e0 73 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 sity;.}.....public.function.writ
d3200 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 66 3a 3a 4f 55 54 eln($messages,.$type.=.self::OUT
d3220 50 55 54 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 PUT_NORMAL).{.$this->write($mess
d3240 61 67 65 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 ages,.true,.$type);.}.....public
d3260 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 77 6c .function.write($messages,.$newl
d3280 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 50 55 ine.=.false,.$type.=.self::OUTPU
d32a0 54 5f 4e 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 T_NORMAL).{.if.(self::VERBOSITY_
d32c0 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 29 20 7b 0a 72 65 QUIET.===.$this->verbosity).{.re
d32e0 74 75 72 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 turn;.}..$messages.=.(array).$me
d3300 73 73 61 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 ssages;..foreach.($messages.as.$
d3320 6d 65 73 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 message).{.switch.($type).{.case
d3340 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 4e 4f 52 4d 41 4c 3a .OutputInterface::OUTPUT_NORMAL:
d3360 0a 24 6d 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 .$message.=.$this->formatter->fo
d3380 72 6d 61 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 rmat($message);.break;.case.Outp
d33a0 75 74 49 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 utInterface::OUTPUT_RAW:.break;.
d33c0 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 50 4c 41 case.OutputInterface::OUTPUT_PLA
d33e0 49 4e 3a 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 IN:.$message.=.strip_tags($this-
d3400 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 29 3b 0a 62 >formatter->format($message));.b
d3420 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 6e 76 61 6c 69 reak;.default:.throw.new.\Invali
d3440 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 55 6e 6b 6e dArgumentException(sprintf('Unkn
d3460 6f 77 6e 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 own.output.type.given.(%s)',.$ty
d3480 70 65 29 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 pe));.}..$this->doWrite($message
d34a0 2c 20 24 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 ,.$newline);.}.}........abstract
d34c0 20 70 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 .protected.function.doWrite($mes
d34e0 73 61 67 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 sage,.$newline);.}.<?php........
d3500 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
d3520 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 onsole\Output;..use.Symfony\Comp
d3540 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f onent\Console\Formatter\OutputFo
d3560 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 rmatter;.use.Symfony\Component\C
d3580 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 onsole\Formatter\OutputFormatter
d35a0 49 6e 74 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 Interface;............class.Null
d35c0 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
d35e0 65 0a 7b 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 e.{....public.function.setFormat
d3600 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f ter(OutputFormatterInterface.$fo
d3620 72 6d 61 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 rmatter).{...}.....public.functi
d3640 6f 6e 20 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 on.getFormatter().{...return.new
d3660 20 4f 75 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 .OutputFormatter();.}.....public
d3680 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
d36a0 64 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 69 73 44 d).{...}.....public.function.isD
d36c0 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 0a ecorated().{.return.false;.}....
d36e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c .public.function.setVerbosity($l
d3700 65 76 65 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 evel).{...}.....public.function.
d3720 67 65 74 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 getVerbosity().{.return.self::VE
d3740 52 42 4f 53 49 54 59 5f 51 55 49 45 54 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f RBOSITY_QUIET;.}..public.functio
d3760 6e 20 69 73 51 75 69 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 n.isQuiet().{.return.true;.}..pu
d3780 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 blic.function.isVerbose().{.retu
d37a0 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 69 73 56 rn.false;.}..public.function.isV
d37c0 65 72 79 56 65 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 eryVerbose().{.return.false;.}..
d37e0 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 74 75 public.function.isDebug().{.retu
d3800 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rn.false;.}.....public.function.
d3820 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 66 3a writeln($messages,.$type.=.self:
d3840 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 69 63 :OUTPUT_NORMAL).{...}.....public
d3860 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 77 6c .function.write($messages,.$newl
d3880 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 50 55 ine.=.false,.$type.=.self::OUTPU
d38a0 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 0a 0a T_NORMAL).{...}.}.<?php.........
d38c0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
d38e0 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 20 43 nsole\Output;........interface.C
d3900 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 4f 75 onsoleOutputInterface.extends.Ou
d3920 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 6e 63 tputInterface.{......public.func
d3940 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 75 62 tion.getErrorOutput();.......pub
d3960 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 74 70 lic.function.setErrorOutput(Outp
d3980 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 0a 0a utInterface.$error);.}.<?php....
d39a0 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
d39c0 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 79 5c nt\Console\Output;..use.Symfony\
d39e0 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 74 70 Component\Console\Formatter\Outp
d3a00 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 0a 0a utFormatterInterface;...........
d3a20 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 64 73 ......class.StreamOutput.extends
d3a40 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 0a 0a .Output.{.private.$stream;......
d3a60 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
d3a80 75 63 74 28 24 73 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a uct($stream,.$verbosity.=.self::
d3aa0 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e VERBOSITY_NORMAL,.$decorated.=.n
d3ac0 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 ull,.OutputFormatterInterface.$f
d3ae0 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 ormatter.=.null).{.if.(!is_resou
d3b00 72 63 65 28 24 73 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 6d 27 20 21 3d 3d 20 67 65 74 rce($stream).||.'stream'.!==.get
d3b20 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d 29 29 20 7b 0a 74 68 72 6f 77 _resource_type($stream)).{.throw
d3b40 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 .new.\InvalidArgumentException('
d3b60 54 68 65 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 20 6e 65 65 64 73 20 61 20 73 The.StreamOutput.class.needs.a.s
d3b80 74 72 65 61 6d 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a tream.as.its.first.argument.');.
d3ba0 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 0a 69 66 20 }..$this->stream.=.$stream;..if.
d3bc0 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 64 65 63 6f 72 61 74 (null.===.$decorated).{.$decorat
d3be0 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 0a 7d ed.=.$this->hasColorSupport();.}
d3c00 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 74 79 ..parent::__construct($verbosity
d3c20 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 0a 0a ,.$decorated,.$formatter);.}....
d3c40 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 0a 7b ...public.function.getStream().{
d3c60 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 72 6f .return.$this->stream;.}.....pro
d3c80 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 65 tected.function.doWrite($message
d3ca0 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 77 72 ,.$newline).{.if.(false.===.@fwr
d3cc0 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 6e 65 ite($this->stream,.$message.($ne
d3ce0 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 74 68 72 6f wline.?.PHP_EOL.:.''))).{...thro
d3d00 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 w.new.\RuntimeException('Unable.
d3d20 74 6f 20 77 72 69 74 65 20 6f 75 74 70 75 74 2e 27 29 3b 0a 7d 0a 0a 66 66 6c 75 73 68 28 24 74 to.write.output.');.}..fflush($t
d3d40 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 0a 70 72 6f 74 65 his->stream);.}............prote
d3d60 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 6f 72 74 28 29 0a cted.function.hasColorSupport().
d3d80 7b 0a 69 66 20 28 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 20 27 5c 5c {.if.(DIRECTORY_SEPARATOR.==.'\\
d3da0 27 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 67 65 74 65 6e 76 28 27 41 4e ').{.return.false.!==.getenv('AN
d3dc0 53 49 43 4f 4e 27 29 20 7c 7c 20 27 4f 4e 27 20 3d 3d 3d 20 67 65 74 65 6e 76 28 27 43 6f 6e 45 SICON').||.'ON'.===.getenv('ConE
d3de0 6d 75 41 4e 53 49 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 muANSI');.}..return.function_exi
d3e00 73 74 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 40 70 6f 73 69 78 5f 69 73 sts('posix_isatty').&&.@posix_is
d3e20 61 74 74 79 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a atty($this->stream);.}.}.<?php..
d3e40 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
d3e60 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 42 nent\Console\Output;.....class.B
d3e80 75 66 66 65 72 65 64 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 0a ufferedOutput.extends.Output.{..
d3ea0 0a 0a 70 72 69 76 61 74 65 20 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ..private.$buffer.=.'';.......pu
d3ec0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 28 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 blic.function.fetch().{.$content
d3ee0 20 3d 20 24 74 68 69 73 2d 3e 62 75 66 66 65 72 3b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 20 .=.$this->buffer;.$this->buffer.
d3f00 3d 20 27 27 3b 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 70 72 =.'';..return.$content;.}.....pr
d3f20 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
d3f40 65 2c 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 20 2e 3d 20 e,.$newline).{.$this->buffer..=.
d3f60 24 6d 65 73 73 61 67 65 3b 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 $message;..if.($newline).{.$this
d3f80 2d 3e 62 75 66 66 65 72 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a ->buffer..=."\n";.}.}.}.<?php...
d3fa0 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
d3fc0 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 79 ent\Console\Output;..use.Symfony
d3fe0 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 74 \Component\Console\Formatter\Out
d4000 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 69 putFormatterInterface;.........i
d4020 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 nterface.OutputInterface.{.const
d4040 20 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 56 45 52 42 .VERBOSITY_QUIET.=.0;.const.VERB
d4060 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 OSITY_NORMAL.=.1;.const.VERBOSIT
d4080 59 5f 56 45 52 42 4f 53 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 56 Y_VERBOSE.=.2;.const.VERBOSITY_V
d40a0 45 52 59 5f 56 45 52 42 4f 53 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 ERY_VERBOSE.=.3;.const.VERBOSITY
d40c0 5f 44 45 42 55 47 20 3d 20 34 3b 0a 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c _DEBUG.=.4;..const.OUTPUT_NORMAL
d40e0 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 52 41 57 20 3d 20 31 3b 0a 63 6f 6e 73 .=.0;.const.OUTPUT_RAW.=.1;.cons
d4100 74 20 4f 55 54 50 55 54 5f 50 4c 41 49 4e 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a t.OUTPUT_PLAIN.=.2;.............
d4120 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c public.function.write($messages,
d4140 20 24 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a .$newline.=.false,.$type.=.self:
d4160 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c :OUTPUT_NORMAL);............publ
d4180 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 ic.function.writeln($messages,.$
d41a0 74 79 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 type.=.self::OUTPUT_NORMAL);....
d41c0 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
d41e0 79 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 y($level);.........public.functi
d4200 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 on.getVerbosity();.........publi
d4220 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 c.function.setDecorated($decorat
d4240 65 64 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 69 73 44 ed);.........public.function.isD
d4260 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ecorated();.........public.funct
d4280 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 ion.setFormatter(OutputFormatter
d42a0 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 Interface.$formatter);.........p
d42c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d ublic.function.getFormatter();.}
d42e0 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
d4300 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 ny\Component\Console\Output;..us
d4320 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 6d e.Symfony\Component\Console\Form
d4340 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 0a atter\OutputFormatterInterface;.
d4360 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 ................class.ConsoleOut
d4380 70 75 74 20 65 78 74 65 6e 64 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 put.extends.StreamOutput.impleme
d43a0 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 nts.ConsoleOutputInterface.{.pri
d43c0 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 vate.$stderr;...........public.f
d43e0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d unction.__construct($verbosity.=
d4400 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 .self::VERBOSITY_NORMAL,.$decora
d4420 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 ted.=.null,.OutputFormatterInter
d4440 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 face.$formatter.=.null).{.$outpu
d4460 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 73 74 64 6f 75 74 27 3b 0a 69 66 20 28 21 24 tStream.=.'php://stdout';.if.(!$
d4480 74 68 69 73 2d 3e 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 6f 75 74 this->hasStdoutSupport()).{.$out
d44a0 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 3b 0a 7d 0a 0a 70 putStream.=.'php://output';.}..p
d44c0 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 66 6f 70 65 6e 28 24 6f 75 74 70 75 74 arent::__construct(fopen($output
d44e0 53 74 72 65 61 6d 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 Stream,.'w'),.$verbosity,.$decor
d4500 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 ated,.$formatter);..$this->stder
d4520 72 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a r.=.new.StreamOutput(fopen('php:
d4540 2f 2f 73 74 64 65 72 72 27 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 //stderr',.'w'),.$verbosity,.$de
d4560 63 6f 72 61 74 65 64 2c 20 24 74 68 69 73 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 29 3b corated,.$this->getFormatter());
d4580 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 65 63 6f 72 61 .}.....public.function.setDecora
d45a0 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 44 65 63 ted($decorated).{.parent::setDec
d45c0 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 orated($decorated);.$this->stder
d45e0 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a r->setDecorated($decorated);.}..
d4600 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 28 ...public.function.setFormatter(
d4620 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 74 OutputFormatterInterface.$format
d4640 74 65 72 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 ter).{.parent::setFormatter($for
d4660 6d 61 74 74 65 72 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 6f 72 6d 61 matter);.$this->stderr->setForma
d4680 74 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 tter($formatter);.}.....public.f
d46a0 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 70 unction.setVerbosity($level).{.p
d46c0 61 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 arent::setVerbosity($level);.$th
d46e0 69 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 is->stderr->setVerbosity($level)
d4700 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 72 72 6f 72 ;.}.....public.function.getError
d4720 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 73 74 64 65 72 72 3b Output().{.return.$this->stderr;
d4740 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f .}.....public.function.setErrorO
d4760 75 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 utput(OutputInterface.$error).{.
d4780 24 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 $this->stderr.=.$error;.}.......
d47a0 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 53 74 64 6f 75 .....protected.function.hasStdou
d47c0 74 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 tSupport().{.return.('OS400'.!=.
d47e0 70 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 php_uname('s'));.}.}.<?php......
d4800 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
d4820 5c 43 6f 6e 73 6f 6c 65 5c 4c 6f 67 67 65 72 3b 0a 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c 41 62 \Console\Logger;..use.Psr\Log\Ab
d4840 73 74 72 61 63 74 4c 6f 67 67 65 72 3b 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c 49 6e 76 61 6c 69 stractLogger;.use.Psr\Log\Invali
d4860 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c dArgumentException;.use.Psr\Log\
d4880 4c 6f 67 4c 65 76 65 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c LogLevel;.use.Symfony\Component\
d48a0 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;.
d48c0 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
d48e0 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a tput\ConsoleOutputInterface;....
d4900 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 4c 6f 67 67 65 72 20 65 78 74 65 6e 64 73 20 ....class.ConsoleLogger.extends.
d4920 41 62 73 74 72 61 63 74 4c 6f 67 67 65 72 0a 7b 0a 63 6f 6e 73 74 20 49 4e 46 4f 20 3d 20 27 69 AbstractLogger.{.const.INFO.=.'i
d4940 6e 66 6f 27 3b 0a 63 6f 6e 73 74 20 45 52 52 4f 52 20 3d 20 27 65 72 72 6f 72 27 3b 0a 0a 0a 0a nfo';.const.ERROR.=.'error';....
d4960 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 .private.$output;....private.$ve
d4980 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 4c 6f 67 4c 65 76 65 rbosityLevelMap.=.array(.LogLeve
d49a0 6c 3a 3a 45 4d 45 52 47 45 4e 43 59 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a l::EMERGENCY.=>.OutputInterface:
d49c0 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 41 4c 45 :VERBOSITY_NORMAL,.LogLevel::ALE
d49e0 52 54 20 3d 3e 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 RT.=>.OutputInterface::VERBOSITY
d4a00 5f 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 43 52 49 54 49 43 41 4c 20 3d 3e 20 4f _NORMAL,.LogLevel::CRITICAL.=>.O
d4a20 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 4e 4f 52 4d 41 4c utputInterface::VERBOSITY_NORMAL
d4a40 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 45 52 52 4f 52 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 ,.LogLevel::ERROR.=>.OutputInter
d4a60 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c face::VERBOSITY_NORMAL,.LogLevel
d4a80 3a 3a 57 41 52 4e 49 4e 47 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 ::WARNING.=>.OutputInterface::VE
d4aa0 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 4e 4f 54 49 43 45 RBOSITY_NORMAL,.LogLevel::NOTICE
d4ac0 20 3d 3e 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 .=>.OutputInterface::VERBOSITY_V
d4ae0 45 52 42 4f 53 45 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 49 4e 46 4f 20 3d 3e 20 4f 75 74 70 75 74 ERBOSE,.LogLevel::INFO.=>.Output
d4b00 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 42 4f 53 Interface::VERBOSITY_VERY_VERBOS
d4b20 45 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 44 45 42 55 47 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 E,.LogLevel::DEBUG.=>.OutputInte
d4b40 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 2c 0a 29 3b 0a 0a 0a 0a 70 72 rface::VERBOSITY_DEBUG,.);....pr
d4b60 69 76 61 74 65 20 24 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 4c ivate.$formatLevelMap.=.array(.L
d4b80 6f 67 4c 65 76 65 6c 3a 3a 45 4d 45 52 47 45 4e 43 59 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f ogLevel::EMERGENCY.=>.self::ERRO
d4ba0 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 41 4c 45 52 54 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f R,.LogLevel::ALERT.=>.self::ERRO
d4bc0 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 43 52 49 54 49 43 41 4c 20 3d 3e 20 73 65 6c 66 3a 3a 45 R,.LogLevel::CRITICAL.=>.self::E
d4be0 52 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 45 52 52 4f 52 20 3d 3e 20 73 65 6c 66 3a 3a 45 RROR,.LogLevel::ERROR.=>.self::E
d4c00 52 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 57 41 52 4e 49 4e 47 20 3d 3e 20 73 65 6c 66 3a RROR,.LogLevel::WARNING.=>.self:
d4c20 3a 49 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 4e 4f 54 49 43 45 20 3d 3e 20 73 65 6c 66 3a :INFO,.LogLevel::NOTICE.=>.self:
d4c40 3a 49 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 49 4e 46 4f 20 3d 3e 20 73 65 6c 66 3a 3a 49 :INFO,.LogLevel::INFO.=>.self::I
d4c60 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 44 45 42 55 47 20 3d 3e 20 73 65 6c 66 3a 3a 49 4e NFO,.LogLevel::DEBUG.=>.self::IN
d4c80 46 4f 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 FO,.);.......public.function.__c
d4ca0 6f 6e 73 74 72 75 63 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 onstruct(OutputInterface.$output
d4cc0 2c 20 61 72 72 61 79 20 24 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 ,.array.$verbosityLevelMap.=.arr
d4ce0 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 ay(),.array.$formatLevelMap.=.ar
d4d00 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 6f 75 74 70 75 74 ray()).{.$this->output.=.$output
d4d20 3b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 24 76 65 ;.$this->verbosityLevelMap.=.$ve
d4d40 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 2b 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 rbosityLevelMap.+.$this->verbosi
d4d60 74 79 4c 65 76 65 6c 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 tyLevelMap;.$this->formatLevelMa
d4d80 70 20 3d 20 24 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 20 2b 20 24 74 68 69 73 2d 3e 66 6f 72 p.=.$formatLevelMap.+.$this->for
d4da0 6d 61 74 4c 65 76 65 6c 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 matLevelMap;.}.....public.functi
d4dc0 6f 6e 20 6c 6f 67 28 24 6c 65 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 61 72 72 61 79 20 24 on.log($level,.$message,.array.$
d4de0 63 6f 6e 74 65 78 74 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 context.=.array()).{.if.(!isset(
d4e00 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d $this->verbosityLevelMap[$level]
d4e20 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 )).{.throw.new.InvalidArgumentEx
d4e40 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 6c 6f 67 20 6c 65 76 65 6c 20 22 ception(sprintf('The.log.level."
d4e60 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6c 65 76 65 6c 29 29 3b 0a %s".does.not.exist.',.$level));.
d4e80 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 5b 24 }....if.($this->formatLevelMap[$
d4ea0 6c 65 76 65 6c 5d 20 3d 3d 3d 20 73 65 6c 66 3a 3a 45 52 52 4f 52 20 26 26 20 24 74 68 69 73 2d level].===.self::ERROR.&&.$this-
d4ec0 3e 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 >output.instanceof.ConsoleOutput
d4ee0 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 Interface).{.$output.=.$this->ou
d4f00 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 20 65 6c 73 65 20 7b tput->getErrorOutput();.}.else.{
d4f20 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 69 66 20 .$output.=.$this->output;.}..if.
d4f40 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 24 74 68 69 ($output->getVerbosity().>=.$thi
d4f60 73 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 29 20 7b 0a s->verbosityLevelMap[$level]).{.
d4f80 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 25 31 24 73 3e $output->writeln(sprintf('<%1$s>
d4fa0 5b 25 32 24 73 5d 20 25 33 24 73 3c 2f 25 31 24 73 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d [%2$s].%3$s</%1$s>',.$this->form
d4fc0 61 74 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 2c 20 24 6c 65 76 65 6c 2c 20 24 74 68 69 atLevelMap[$level],.$level,.$thi
d4fe0 73 2d 3e 69 6e 74 65 72 70 6f 6c 61 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 6e 74 65 78 s->interpolate($message,.$contex
d5000 74 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e t)));.}.}............private.fun
d5020 63 74 69 6f 6e 20 69 6e 74 65 72 70 6f 6c 61 74 65 28 24 6d 65 73 73 61 67 65 2c 20 61 72 72 61 ction.interpolate($message,.arra
d5040 79 20 24 63 6f 6e 74 65 78 74 29 0a 7b 0a 0a 20 24 72 65 70 6c 61 63 65 20 3d 20 61 72 72 61 79 y.$context).{...$replace.=.array
d5060 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 78 74 20 61 73 20 24 6b 65 79 20 3d 3e ();.foreach.($context.as.$key.=>
d5080 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 29 20 26 26 20 .$val).{.if.(!is_array($val).&&.
d50a0 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 29 20 7c 7c 20 6d 65 74 68 6f 64 5f 65 78 69 73 (!is_object($val).||.method_exis
d50c0 74 73 28 24 76 61 6c 2c 20 27 5f 5f 74 6f 53 74 72 69 6e 67 27 29 29 29 20 7b 0a 24 72 65 70 6c ts($val,.'__toString'))).{.$repl
d50e0 61 63 65 5b 73 70 72 69 6e 74 66 28 27 7b 25 73 7d 27 2c 20 24 6b 65 79 29 5d 20 3d 20 24 76 61 ace[sprintf('{%s}',.$key)].=.$va
d5100 6c 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 73 74 72 74 72 28 24 6d 65 73 73 61 67 65 2c l;.}.}....return.strtr($message,
d5120 20 24 72 65 70 6c 61 63 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$replace);.}.}.<?php...........
d5140 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
d5160 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
d5180 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
d51a0 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 69 70 74 6f rface;.......interface.Descripto
d51c0 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rInterface.{........public.funct
d51e0 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 20 24 6f 75 ion.describe(OutputInterface.$ou
d5200 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 73 20 3d 20 tput,.$object,.array.$options.=.
d5220 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 6e 61 6d 65 array());.}.<?php...........name
d5240 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 5c space.Symfony\Component\Console\
d5260 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 70 6f 6e 65 Descriptor;..use.Symfony\Compone
d5280 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 nt\Console\Application;.use.Symf
d52a0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f ony\Component\Console\Command\Co
d52c0 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
d52e0 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
d5300 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
d5320 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 6f 6d 70 6f putDefinition;.use.Symfony\Compo
d5340 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a nent\Console\Input\InputOption;.
d5360 0a 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 78 74 ........class.TextDescriptor.ext
d5380 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 20 66 ends.Descriptor.{....protected.f
d53a0 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 49 6e unction.describeInputArgument(In
d53c0 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 6f 70 putArgument.$argument,.array.$op
d53e0 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 3d 20 tions.=.array()).{.if.(null.!==.
d5400 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 73 5f $argument->getDefault().&&.(!is_
d5420 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c array($argument->getDefault()).|
d5440 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 29 29 |.count($argument->getDefault())
d5460 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 65 6e )).{.$default.=.sprintf('<commen
d5480 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 74 68 t>.(default:.%s)</comment>',.$th
d54a0 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 6e 74 is->formatDefaultValue($argument
d54c0 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 66 61 ->getDefault()));.}.else.{.$defa
d54e0 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 74 28 ult.=.'';.}..$nameWidth.=.isset(
d5500 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 69 6f $options['name_width']).?.$optio
d5520 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 75 6d ns['name_width'].:.strlen($argum
d5540 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 54 65 ent->getName());..$this->writeTe
d5560 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 74 68 xt(sprintf(".<info>%-${nameWidth
d5580 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 74 4e }s</info>.%s%s",.$argument->getN
d55a0 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 73 74 ame(),.str_replace("\n",."\n".st
d55c0 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 20 24 r_repeat('.',.$nameWidth.+.2),.$
d55e0 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 64 65 argument->getDescription()),.$de
d5600 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 65 63 fault.),.$options);.}.....protec
d5620 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 6f 6e ted.function.describeInputOption
d5640 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 70 74 (InputOption.$option,.array.$opt
d5660 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 3e 61 ions.=.array()).{.if.($option->a
d5680 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 6f 6e cceptValue().&&.null.!==.$option
d56a0 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 6f 70 ->getDefault().&&.(!is_array($op
d56c0 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 6f 70 tion->getDefault()).||.count($op
d56e0 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 6c 74 tion->getDefault()))).{.$default
d5700 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 3a 20 .=.sprintf('<comment>.(default:.
d5720 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 65 66 %s)</comment>',.$this->formatDef
d5740 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 29 29 aultValue($option->getDefault())
d5760 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 24 6e );.}.else.{.$default.=.'';.}..$n
d5780 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 65 5f ameWidth.=.isset($options['name_
d57a0 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 68 27 width']).?.$options['name_width'
d57c0 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 3b 0a ].:.strlen($option->getName());.
d57e0 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 57 69 $nameWithShortcutWidth.=.$nameWi
d5800 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 29 29 dth.-.strlen($option->getName())
d5820 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 66 28 .-.2;..$this->writeText(sprintf(
d5840 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 53 68 ".<info>%s</info>.%-${nameWithSh
d5860 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 74 69 ortcutWidth}s%s%s%s",.'--'.$opti
d5880 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 72 74 on->getName(),.$option->getShort
d58a0 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 69 6f cut().?.sprintf('(-%s).',.$optio
d58c0 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 70 6c n->getShortcut()).:.'',.str_repl
d58e0 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 ace("\n",."\n".str_repeat('.',.$
d5900 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 73 63 nameWidth.+.2),.$option->getDesc
d5920 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 3e 69 ription()),.$default,.$option->i
d5940 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 65 20 sArray().?.'<comment>.(multiple.
d5960 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 27 0a values.allowed)</comment>'.:.''.
d5980 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 66 75 ),.$options);.}.....protected.fu
d59a0 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 28 49 nction.describeInputDefinition(I
d59c0 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 72 61 nputDefinition.$definition,.arra
d59e0 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 69 64 y.$options.=.array()).{.$nameWid
d5a00 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 67 65 th.=.0;.foreach.($definition->ge
d5a20 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 4c 65 tOptions().as.$option).{.$nameLe
d5a40 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 ngth.=.strlen($option->getName()
d5a60 29 20 2b 20 32 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 ).+.2;.if.($option->getShortcut(
d5a80 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 )).{.$nameLength.+=.strlen($opti
d5aa0 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 65 57 on->getShortcut()).+.3;.}.$nameW
d5ac0 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 6e 67 idth.=.max($nameWidth,.$nameLeng
d5ae0 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 65 74 th);.}.foreach.($definition->get
d5b00 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 61 6d Arguments().as.$argument).{.$nam
d5b20 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 6e 28 eWidth.=.max($nameWidth,.strlen(
d5b40 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 61 6d $argument->getName()));.}.++$nam
d5b60 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 72 67 eWidth;..if.($definition->getArg
d5b80 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 3c 63 uments()).{.$this->writeText('<c
d5ba0 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 24 6f omment>Arguments:</comment>',.$o
d5bc0 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 3b ptions);.$this->writeText("\n");
d5be0 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 6d 65 .foreach.($definition->getArgume
d5c00 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 65 73 nts().as.$argument).{.$this->des
d5c20 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 61 72 cribeInputArgument($argument,.ar
d5c40 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 65 5f ray_merge($options,.array('name_
d5c60 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 2d 3e width'.=>.$nameWidth)));.$this->
d5c80 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 69 6e writeText("\n");.}.}..if.($defin
d5ca0 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 6e 69 ition->getArguments().&&.$defini
d5cc0 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 72 69 tion->getOptions()).{.$this->wri
d5ce0 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 6f 6e teText("\n");.}..if.($definition
d5d00 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 54 65 ->getOptions()).{.$this->writeTe
d5d20 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 3e 27 xt('<comment>Options:</comment>'
d5d40 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 5c ,.$options);.$this->writeText("\
d5d60 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 4f 70 n");.foreach.($definition->getOp
d5d80 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 65 73 tions().as.$option).{.$this->des
d5da0 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 79 5f cribeInputOption($option,.array_
d5dc0 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 64 74 merge($options,.array('name_widt
d5de0 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 69 74 h'.=>.$nameWidth)));.$this->writ
d5e00 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 65 64 eText("\n");.}.}.}.....protected
d5e20 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 61 6e .function.describeCommand(Comman
d5e40 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 72 72 d.$command,.array.$options.=.arr
d5e60 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 29 3b ay()).{.$command->getSynopsis();
d5e80 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 6e .$command->mergeApplicationDefin
d5ea0 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 74 28 ition(false);..$this->writeText(
d5ec0 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 6f 70 '<comment>Usage:</comment>',.$op
d5ee0 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 3b 0a tions);.$this->writeText("\n");.
d5f00 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 3e 67 $this->writeText('.'.$command->g
d5f20 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 2d 3e etSynopsis(),.$options);.$this->
d5f40 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 6f 6d writeText("\n");..if.(count($com
d5f60 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 69 73 mand->getAliases()).>.0).{.$this
d5f80 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
d5fa0 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 74 3e ext('<comment>Aliases:</comment>
d5fc0 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 64 2d .<info>'.implode(',.',.$command-
d5fe0 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 69 6f >getAliases()).'</info>',.$optio
d6000 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 6d 61 ns);.}..if.($definition.=.$comma
d6020 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 74 68 nd->getNativeDefinition()).{.$th
d6040 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 73 63 is->writeText("\n");.$this->desc
d6060 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 6e 2c ribeInputDefinition($definition,
d6080 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 74 28 .$options);.}..$this->writeText(
d60a0 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 67 65 "\n");..if.($help.=.$command->ge
d60c0 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 74 65 tProcessedHelp()).{.$this->write
d60e0 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 27 2c Text('<comment>Help:</comment>',
d6100 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 5c 6e .$options);.$this->writeText("\n
d6120 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 65 70 ");.$this->writeText('.'.str_rep
d6140 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 69 6f lace("\n",."\n.",.$help),.$optio
d6160 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 0a 7d ns);.$this->writeText("\n");.}.}
d6180 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 62 65 .....protected.function.describe
d61a0 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 63 61 Application(Application.$applica
d61c0 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()).
d61e0 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 24 6f {.$describedNamespace.=.isset($o
d6200 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 73 5b ptions['namespace']).?.$options[
d6220 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 69 6f 'namespace'].:.null;.$descriptio
d6240 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 28 24 n.=.new.ApplicationDescription($
d6260 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 63 65 application,.$describedNamespace
d6280 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 78 74 );..if.(isset($options['raw_text
d62a0 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 0a 24 ']).&&.$options['raw_text']).{.$
d62c0 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 24 64 width.=.$this->getColumnWidth($d
d62e0 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 6f 72 escription->getCommands());..for
d6300 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 73 28 each.($description->getCommands(
d6320 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 65 78 ).as.$command).{.$this->writeTex
d6340 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 6f 6d t(sprintf("%-${width}s.%s",.$com
d6360 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 44 65 mand->getName(),.$command->getDe
d6380 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 2d 3e scription()),.$options);.$this->
d63a0 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 69 66 20 28 writeText("\n");.}.}.else.{.if.(
d63c0 27 27 20 21 3d 20 24 68 65 6c 70 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 ''.!=.$help.=.$application->getH
d63e0 65 6c 70 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 24 68 65 6c 70 elp()).{.$this->writeText("$help
d6400 5c 6e 5c 6e 22 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 \n\n",.$options);.}..$this->writ
d6420 65 54 65 78 74 28 22 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 eText("<comment>Usage:</comment>
d6440 5c 6e 22 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 \n",.$options);.$this->writeText
d6460 28 22 20 63 6f 6d 6d 61 6e 64 20 5b 6f 70 74 69 6f 6e 73 5d 20 5b 61 72 67 75 6d 65 6e 74 73 5d (".command.[options].[arguments]
d6480 5c 6e 5c 6e 22 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 \n\n",.$options);.$this->writeTe
d64a0 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 3e 27 xt('<comment>Options:</comment>'
d64c0 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 20 3d 20 24 61 ,.$options);..$inputOptions.=.$a
d64e0 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 pplication->getDefinition()->get
d6500 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 Options();..$width.=.0;.foreach.
d6520 28 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 ($inputOptions.as.$option).{.$na
d6540 6d 65 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 meLength.=.strlen($option->getNa
d6560 6d 65 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 me()).+.2;.if.($option->getShort
d6580 63 75 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 cut()).{.$nameLength.+=.strlen($
d65a0 6f 70 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 77 option->getShortcut()).+.3;.}.$w
d65c0 69 64 74 68 20 3d 20 6d 61 78 28 24 77 69 64 74 68 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 29 3b idth.=.max($width,.$nameLength);
d65e0 0a 7d 0a 2b 2b 24 77 69 64 74 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 70 75 74 4f 70 74 .}.++$width;..foreach.($inputOpt
d6600 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 3e 77 72 69 74 65 54 ions.as.$option).{.$this->writeT
d6620 65 78 74 28 22 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 ext("\n",.$options);.$this->desc
d6640 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 79 5f 6d ribeInputOption($option,.array_m
d6660 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 64 74 68 erge($options,.array('name_width
d6680 27 20 3d 3e 20 24 77 69 64 74 68 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 '.=>.$width)));.}..$this->writeT
d66a0 65 78 74 28 22 5c 6e 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 77 69 64 74 68 20 3d ext("\n\n",.$options);..$width.=
d66c0 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 73 63 72 69 70 74 .$this->getColumnWidth($descript
d66e0 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 69 66 20 28 24 64 65 73 63 72 ion->getCommands());..if.($descr
d6700 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 ibedNamespace).{.$this->writeTex
d6720 74 28 73 70 72 69 6e 74 66 28 22 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f t(sprintf("<comment>Available.co
d6740 6d 6d 61 6e 64 73 20 66 6f 72 20 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 73 70 61 63 65 3a mmands.for.the.\"%s\".namespace:
d6760 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 </comment>",.$describedNamespace
d6780 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 72 ),.$options);.}.else.{.$this->wr
d67a0 69 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d iteText('<comment>Available.comm
d67c0 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a ands:</comment>',.$options);.}..
d67e0 0a 20 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 4e 61 6d 65 ..foreach.($description->getName
d6800 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 21 24 spaces().as.$namespace).{.if.(!$
d6820 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 26 26 20 41 70 70 6c 69 63 61 74 69 6f describedNamespace.&&.Applicatio
d6840 6e 44 65 73 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 21 nDescription::GLOBAL_NAMESPACE.!
d6860 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 ==.$namespace['id']).{.$this->wr
d6880 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 65 78 74 28 iteText("\n");.$this->writeText(
d68a0 27 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3c 2f '<comment>'.$namespace['id'].'</
d68c0 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 comment>',.$options);.}..foreach
d68e0 20 28 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d .($namespace['commands'].as.$nam
d6900 65 29 20 7b 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 24 74 68 e).{.$this->writeText("\n");.$th
d6920 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 2d is->writeText(sprintf(".<info>%-
d6940 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 64 65 ${width}s</info>.%s",.$name,.$de
d6960 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 scription->getCommand($name)->ge
d6980 74 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 7d 0a 7d 0a tDescription()),.$options);.}.}.
d69a0 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 0a 7d 0a 0a 0a 0a .$this->writeText("\n");.}.}....
d69c0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 54 65 78 74 28 24 63 6f 6e .private.function.writeText($con
d69e0 74 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 0a tent,.array.$options.=.array()).
d6a00 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 {.$this->write(.isset($options['
d6a20 72 61 77 5f 74 65 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 raw_text']).&&.$options['raw_tex
d6a40 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 63 6f 6e 74 65 6e 74 29 20 3a 20 24 63 6f t'].?.strip_tags($content).:.$co
d6a60 6e 74 65 6e 74 2c 0a 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 6f 75 74 70 75 ntent,.isset($options['raw_outpu
d6a80 74 27 5d 29 20 3f 20 21 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 6f 75 74 70 75 74 27 5d 20 3a t']).?.!$options['raw_output'].:
d6aa0 20 74 72 75 65 0a 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 .true.);.}.........private.funct
d6ac0 69 6f 6e 20 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 64 65 66 61 75 6c 74 29 ion.formatDefaultValue($default)
d6ae0 0a 7b 0a 69 66 20 28 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 20 3c 20 35 30 34 30 30 29 20 7b .{.if.(PHP_VERSION_ID.<.50400).{
d6b00 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 2f 27 2c 20 27 2f 27 2c 20 6a .return.str_replace('\/',.'/',.j
d6b20 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e son_encode($default));.}..return
d6b40 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 2c 20 4a 53 4f 4e 5f 55 4e 45 53 .json_encode($default,.JSON_UNES
d6b60 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 7c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 CAPED_SLASHES.|.JSON_UNESCAPED_U
d6b80 4e 49 43 4f 44 45 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 NICODE);.}.......private.functio
d6ba0 6e 20 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 n.getColumnWidth(array.$commands
d6bc0 29 0a 7b 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e ).{.$width.=.0;.foreach.($comman
d6be0 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 73 74 72 6c 65 ds.as.$command).{.$width.=.strle
d6c00 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3e 20 24 77 69 64 74 68 20 n($command->getName()).>.$width.
d6c20 3f 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 3a 20 ?.strlen($command->getName()).:.
d6c40 24 77 69 64 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 69 64 74 68 20 2b 20 32 3b 0a 7d 0a $width;.}..return.$width.+.2;.}.
d6c60 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
d6c80 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
d6ca0 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
d6cc0 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
d6ce0 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 75 73 65 ent\Console\Command\Command;.use
d6d00 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
d6d20 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
d6d40 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 onent\Console\Input\InputDefinit
d6d60 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 6f ion;.use.Symfony\Component\Conso
d6d80 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 0a 0a 0a 0a 0a 63 6c le\Input\InputOption;.........cl
d6da0 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 20 44 65 73 63 72 69 ass.XmlDescriptor.extends.Descri
d6dc0 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 6f 6e 20 67 65 74 49 ptor.{......public.function.getI
d6de0 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 70 75 74 44 65 66 69 nputDefinitionDocument(InputDefi
d6e00 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 6d 20 3d 20 6e 65 77 nition.$definition).{.$dom.=.new
d6e20 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 .\DOMDocument('1.0',.'UTF-8');.$
d6e40 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 69 6f 6e 58 4d 4c 20 dom->appendChild($definitionXML.
d6e60 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 69 6e 69 74 69 6f =.$dom->createElement('definitio
d6e80 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 70 65 6e 64 43 68 69 n'));..$definitionXML->appendChi
d6ea0 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 63 72 65 61 74 65 45 ld($argumentsXML.=.$dom->createE
d6ec0 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 65 61 63 68 20 28 24 lement('arguments'));.foreach.($
d6ee0 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 definition->getArguments().as.$a
d6f00 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 6f 63 75 6d 65 6e 74 rgument).{.$this->appendDocument
d6f20 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 74 49 6e 70 75 74 41 ($argumentsXML,.$this->getInputA
d6f40 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 0a rgumentDocument($argument));.}..
d6f60 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 $definitionXML->appendChild($opt
d6f80 69 6f 6e 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6f ionsXML.=.$dom->createElement('o
d6fa0 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 6e 69 74 69 6f 6e 2d ptions'));.foreach.($definition-
d6fc0 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
d6fe0 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 73 58 4d 4c 2c 20 24 s->appendDocument($optionsXML,.$
d7000 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 65 6e 74 28 24 6f 70 this->getInputOptionDocument($op
d7020 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 0a 0a 0a 0a 0a 0a 0a tion));.}..return.$dom;.}.......
d7040 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 44 6f 63 75 6d 65 public.function.getCommandDocume
d7060 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 6f 6d 20 3d 20 6e 65 nt(Command.$command).{.$dom.=.ne
d7080 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 2d 38 27 29 3b 0a w.\DOMDocument('1.0',.'UTF-8');.
d70a0 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 64 58 4d 4c 20 3d 20 $dom->appendChild($commandXML.=.
d70c0 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 3b $dom->createElement('command'));
d70e0 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 3b 0a 24 63 6f 6d 6d ..$command->getSynopsis();.$comm
d7100 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 6e 69 74 69 6f 6e 28 and->mergeApplicationDefinition(
d7120 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 41 74 74 72 69 62 75 false);..$commandXML->setAttribu
d7140 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 65 28 29 29 3b 0a 24 te('id',.$command->getName());.$
d7160 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 27 6e 61 6d 65 27 2c commandXML->setAttribute('name',
d7180 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 63 6f 6d 6d 61 6e 64 .$command->getName());..$command
d71a0 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 75 73 61 67 65 58 4d 4c 20 3d 20 24 64 6f XML->appendChild($usageXML.=.$do
d71c0 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 75 73 61 67 65 27 29 29 3b 0a 24 75 73 61 m->createElement('usage'));.$usa
d71e0 67 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 geXML->appendChild($dom->createT
d7200 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 3e 67 65 74 53 79 6e extNode(sprintf($command->getSyn
d7220 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 58 4d 4c 2d 3e 61 70 opsis(),.'')));..$commandXML->ap
d7240 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 20 3d 20 24 64 6f 6d pendChild($descriptionXML.=.$dom
d7260 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 69 6f 6e 27 29 29 3b ->createElement('description'));
d7280 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 68 69 6c 64 28 24 64 .$descriptionXML->appendChild($d
d72a0 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 om->createTextNode(str_replace("
d72c0 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 44 65 73 63 72 69 70 \n",."\n.",.$command->getDescrip
d72e0 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 61 70 70 65 6e 64 43 tion())));..$commandXML->appendC
d7300 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 61 74 65 45 6c 65 6d hild($helpXML.=.$dom->createElem
d7320 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 70 70 65 6e 64 43 68 ent('help'));.$helpXML->appendCh
d7340 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 70 ild($dom->createTextNode(str_rep
d7360 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 50 lace("\n",."\n.",.$command->getP
d7380 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d rocessedHelp())));..$commandXML-
d73a0 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d >appendChild($aliasesXML.=.$dom-
d73c0 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 65 73 27 29 29 3b 0a 66 6f 72 65 >createElement('aliases'));.fore
d73e0 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 ach.($command->getAliases().as.$
d7400 61 6c 69 61 73 29 20 7b 0a 24 61 6c 69 61 73 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c alias).{.$aliasesXML->appendChil
d7420 64 28 24 61 6c 69 61 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e d($aliasXML.=.$dom->createElemen
d7440 74 28 27 61 6c 69 61 73 27 29 29 3b 0a 24 61 6c 69 61 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 t('alias'));.$aliasXML->appendCh
d7460 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 6c 69 61 73 29 ild($dom->createTextNode($alias)
d7480 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 68 69 73 2d 3e 67 65 );.}..$definitionXML.=.$this->ge
d74a0 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 63 6f 6d 6d 61 6e tInputDefinitionDocument($comman
d74c0 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 3b 0a 24 74 68 69 73 d->getNativeDefinition());.$this
d74e0 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 58 4d 4c 2c 20 24 64 ->appendDocument($commandXML,.$d
d7500 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 42 79 54 61 67 4e 61 efinitionXML->getElementsByTagNa
d7520 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 29 3b 0a 0a 72 65 74 me('definition')->item(0));..ret
d7540 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 20 66 75 6e 63 74 69 urn.$dom;.}........public.functi
d7560 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 28 41 70 70 6c 69 63 on.getApplicationDocument(Applic
d7580 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 65 20 3d ation.$application,.$namespace.=
d75a0 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 6f 63 75 6d 65 6e 74 .null).{.$dom.=.new.\DOMDocument
d75c0 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 70 70 65 6e 64 43 68 ('1.0',.'UTF-8');.$dom->appendCh
d75e0 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 74 65 45 6c 65 6d 65 ild($rootXml.=.$dom->createEleme
d7600 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 6c 69 63 61 74 69 6f nt('symfony'));..if.($applicatio
d7620 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 27 29 20 7b 0a 24 72 n->getName().!==.'UNKNOWN').{.$r
d7640 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 65 27 2c 20 24 61 70 ootXml->setAttribute('name',.$ap
d7660 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 20 28 24 61 70 70 6c plication->getName());.if.($appl
d7680 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 20 27 55 4e 4b 4e 4f ication->getVersion().!==.'UNKNO
d76a0 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 62 75 74 65 28 27 76 WN').{.$rootXml->setAttribute('v
d76c0 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 74 56 65 72 73 69 6f ersion',.$application->getVersio
d76e0 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 6e 64 43 68 69 6c 64 n());.}.}..$rootXml->appendChild
d7700 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d ($commandsXML.=.$dom->createElem
d7720 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 69 70 74 69 6f 6e 20 ent('commands'));..$description.
d7740 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 70 =.new.ApplicationDescription($ap
d7760 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 69 66 20 28 24 6e 61 plication,.$namespace);..if.($na
d7780 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 73 65 74 41 74 74 72 mespace).{.$commandsXML->setAttr
d77a0 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 70 61 63 65 29 3b 0a ibute('namespace',.$namespace);.
d77c0 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 3e 67 65 74 43 6f 6d }..foreach.($description->getCom
d77e0 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 mands().as.$command).{.$this->ap
d7800 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 2c 20 24 74 68 69 73 pendDocument($commandsXML,.$this
d7820 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 6d 61 6e 64 29 29 3b ->getCommandDocument($command));
d7840 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 6f 6f 74 58 6d 6c 2d .}..if.(!$namespace).{.$rootXml-
d7860 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 4d 4c 20 3d 20 24 64 >appendChild($namespacesXML.=.$d
d7880 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 73 27 29 29 om->createElement('namespaces'))
d78a0 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 3e 67 65 74 4e 61 6d ;..foreach.($description->getNam
d78c0 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 73 63 72 69 70 74 69 espaces().as.$namespaceDescripti
d78e0 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 65 6e 64 43 68 69 6c on).{.$namespacesXML->appendChil
d7900 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 6f 6d 2d 3e 63 72 65 d($namespaceArrayXML.=.$dom->cre
d7920 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 0a 24 6e 61 6d 65 73 ateElement('namespace'));.$names
d7940 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c paceArrayXML->setAttribute('id',
d7960 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 64 27 5d 29 3b 0a 0a .$namespaceDescription['id']);..
d7980 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 70 74 69 6f 6e 5b 27 foreach.($namespaceDescription['
d79a0 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 61 6d 65 73 70 61 63 commands'].as.$name).{.$namespac
d79c0 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 6f 6d 6d 61 6e 64 58 eArrayXML->appendChild($commandX
d79e0 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e ML.=.$dom->createElement('comman
d7a00 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 43 68 69 6c 64 28 24 d'));.$commandXML->appendChild($
d7a20 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 29 29 3b 0a 7d 0a 7d dom->createTextNode($name));.}.}
d7a40 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 6f 74 65 63 74 65 64 .}..return.$dom;.}.....protected
d7a60 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(
d7a80 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.$
d7aa0 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 74 options.=.array()).{.$this->writ
d7ac0 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 41 72 67 75 6d 65 6e eDocument($this->getInputArgumen
d7ae0 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 0a 0a 0a 0a 70 72 6f tDocument($argument));.}.....pro
d7b00 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 4f 70 74 tected.function.describeInputOpt
d7b20 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 79 20 24 ion(InputOption.$option,.array.$
d7b40 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 74 options.=.array()).{.$this->writ
d7b60 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 4f 70 74 69 6f 6e 44 eDocument($this->getInputOptionD
d7b80 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 70 72 6f 74 65 63 74 ocument($option));.}.....protect
d7ba0 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 6e 69 74 ed.function.describeInputDefinit
d7bc0 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 6f 6e 2c ion(InputDefinition.$definition,
d7be0 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 74 68 .array.$options.=.array()).{.$th
d7c00 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 49 6e 70 75 is->writeDocument($this->getInpu
d7c20 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 6e 69 74 69 6f 6e 29 tDefinitionDocument($definition)
d7c40 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 64 65 73 63 );.}.....protected.function.desc
d7c60 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 6e 64 2c 20 61 72 ribeCommand(Command.$command,.ar
d7c80 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 73 2d ray.$options.=.array()).{.$this-
d7ca0 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 43 6f 6d 6d 61 6e 64 >writeDocument($this->getCommand
d7cc0 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 0a 0a 70 72 6f 74 65 Document($command));.}.....prote
d7ce0 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 6c 69 63 61 74 69 6f cted.function.describeApplicatio
d7d00 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 6e 2c 20 61 72 72 61 n(Application.$application,.arra
d7d20 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
d7d40 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 70 6c 69 63 61 74 69 riteDocument($this->getApplicati
d7d60 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 69 73 73 65 74 28 24 onDocument($application,.isset($
d7d80 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 73 options['namespace']).?.$options
d7da0 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 0a 0a 0a 0a 0a 0a 0a ['namespace'].:.null));.}.......
d7dc0 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 6f 63 75 6d 65 6e 74 .private.function.appendDocument
d7de0 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 4f 4d 4e 6f 64 65 20 (\DOMNode.$parentNode,.\DOMNode.
d7e00 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 68 20 28 24 69 6d 70 $importedParent).{.foreach.($imp
d7e20 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 73 20 24 63 68 69 6c ortedParent->childNodes.as.$chil
d7e40 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 65 6e 64 43 68 69 6c dNode).{.$parentNode->appendChil
d7e60 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 65 6e 74 2d 3e 69 6d d($parentNode->ownerDocument->im
d7e80 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 29 29 3b 0a 7d 0a 7d portNode($childNode,.true));.}.}
d7ea0 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 69 74 65 44 .........private.function.writeD
d7ec0 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 29 0a 7b 0a 24 64 6f ocument(\DOMDocument.$dom).{.$do
d7ee0 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 74 68 69 73 2d 3e 77 m->formatOutput.=.true;.$this->w
d7f00 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 0a 0a 0a 0a 0a 0a 70 rite($dom->saveXML());.}.......p
d7f20 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 72 67 75 6d 65 6e 74 rivate.function.getInputArgument
d7f40 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 72 67 75 6d 65 6e 74 Document(InputArgument.$argument
d7f60 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 ).{.$dom.=.new.\DOMDocument('1.0
d7f80 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 43 68 69 6c 64 28 ',.'UTF-8');..$dom->appendChild(
d7fa0 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 6c 65 6d 65 6e 74 $objectXML.=.$dom->createElement
d7fc0 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 2d 3e 73 65 74 41 74 ('argument'));.$objectXML->setAt
d7fe0 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 2d 3e 67 65 74 4e 61 tribute('name',.$argument->getNa
d8000 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 72 69 62 75 74 65 28 me());.$objectXML->setAttribute(
d8020 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 3e 69 73 52 65 71 75 'is_required',.$argument->isRequ
d8040 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 4d 4c 2d 3e 73 65 74 ired().?.1.:.0);.$objectXML->set
d8060 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 67 75 6d 65 6e 74 2d Attribute('is_array',.$argument-
d8080 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 65 63 74 58 4d 4c 2d >isArray().?.1.:.0);.$objectXML-
d80a0 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 20 3d 20 24 >appendChild($descriptionXML.=.$
d80c0 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 69 6f 6e 27 dom->createElement('description'
d80e0 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 68 69 6c 64 ));.$descriptionXML->appendChild
d8100 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 67 75 6d 65 6e 74 2d ($dom->createTextNode($argument-
d8120 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 6a 65 63 74 58 4d 4c >getDescription()));..$objectXML
d8140 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 4d 4c 20 3d 20 24 64 6f ->appendChild($defaultsXML.=.$do
d8160 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 24 m->createElement('defaults'));.$
d8180 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 6d 65 6e 74 2d 3e 67 defaults.=.is_array($argument->g
d81a0 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 3e 67 65 74 44 65 66 etDefault()).?.$argument->getDef
d81c0 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 6e 74 2d 3e 67 65 74 ault().:.(is_bool($argument->get
d81e0 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 61 Default()).?.array(var_export($a
d8200 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 75 65 29 29 20 3a 20 rgument->getDefault(),.true)).:.
d8220 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 3f 20 61 72 72 61 79 ($argument->getDefault().?.array
d8240 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 ($argument->getDefault()).:.arra
d8260 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 20 61 73 20 24 64 65 y()));.foreach.($defaults.as.$de
d8280 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 6e 64 43 68 69 fault).{.$defaultsXML->appendChi
d82a0 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 74 65 45 6c 65 ld($defaultXML.=.$dom->createEle
d82c0 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 4d 4c 2d 3e 61 ment('default'));.$defaultXML->a
d82e0 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(
d8300 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 6d 3b 0a 7d 0a 0a 0a $default));.}..return.$dom;.}...
d8320 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 4f 70 74 ....private.function.getInputOpt
d8340 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 6f 70 74 69 6f 6e 29 ionDocument(InputOption.$option)
d8360 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 .{.$dom.=.new.\DOMDocument('1.0'
d8380 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 43 68 69 6c 64 28 24 ,.'UTF-8');..$dom->appendChild($
d83a0 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 6c 65 6d 65 6e 74 28 objectXML.=.$dom->createElement(
d83c0 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 65 74 41 74 74 72 69 'option'));.$objectXML->setAttri
d83e0 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 2d 3e 67 65 74 4e 61 bute('name',.'--'.$option->getNa
d8400 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 69 6f 6e 2d 3e 67 65 me());.$pos.=.strpos($option->ge
d8420 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 6c 73 65 20 21 3d 3d tShortcut(),.'|');.if.(false.!==
d8440 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 74 74 72 69 62 75 74 .$pos).{.$objectXML->setAttribut
d8460 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 24 6f 70 74 69 6f 6e e('shortcut',.'-'.substr($option
d8480 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 29 3b 0a 24 6f 62 6a ->getShortcut(),.0,.$pos));.$obj
d84a0 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 72 74 63 75 74 73 27 ectXML->setAttribute('shortcuts'
d84c0 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 64 65 28 27 7c 27 2c ,.'-'.implode('|-',.explode('|',
d84e0 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 29 3b 0a 7d 20 65 6c .$option->getShortcut())));.}.el
d8500 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 62 75 74 65 28 27 73 se.{.$objectXML->setAttribute('s
d8520 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 72 74 63 75 74 28 29 hortcut',.$option->getShortcut()
d8540 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 75 74 28 29 20 3a 20 .?.'-'.$option->getShortcut().:.
d8560 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 72 69 62 75 74 65 28 '');.}.$objectXML->setAttribute(
d8580 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 61 63 63 65 70 74 56 'accept_value',.$option->acceptV
d85a0 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 4d 4c 2d 3e 73 65 74 alue().?.1.:.0);.$objectXML->set
d85c0 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 72 65 64 27 2c 20 24 Attribute('is_value_required',.$
d85e0 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 31 20 3a 20 option->isValueRequired().?.1.:.
d8600 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 75 74 65 28 27 69 73 0);.$objectXML->setAttribute('is
d8620 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 72 61 79 28 29 20 3f _multiple',.$option->isArray().?
d8640 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 6e 64 43 68 69 6c 64 .1.:.0);.$objectXML->appendChild
d8660 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 ($descriptionXML.=.$dom->createE
d8680 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 70 lement('description'));.$descrip
d86a0 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 tionXML->appendChild($dom->creat
d86c0 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 63 72 69 70 74 69 6f eTextNode($option->getDescriptio
d86e0 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 70 74 56 61 6c 75 65 n()));..if.($option->acceptValue
d8700 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 79 28 24 6f 70 74 69 ()).{.$defaults.=.is_array($opti
d8720 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 on->getDefault()).?.$option->get
d8740 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 Default().:.(is_bool($option->ge
d8760 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 tDefault()).?.array(var_export($
d8780 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 28 option->getDefault(),.true)).:.(
d87a0 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 24 6f $option->getDefault().?.array($o
d87c0 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 29 ption->getDefault()).:.array()))
d87e0 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 28 24 64 65 66 61 75 ;.$objectXML->appendChild($defau
d8800 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 65 6e 74 28 27 64 65 ltsXML.=.$dom->createElement('de
d8820 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 65 66 61 75 6c 74 73 faults'));..if.(!empty($defaults
d8840 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 73 20 24 64 65 66 61 )).{.foreach.($defaults.as.$defa
d8860 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 ult).{.$defaultsXML->appendChild
d8880 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 ($defaultXML.=.$dom->createEleme
d88a0 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 70 nt('default'));.$defaultXML->app
d88c0 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 64 endChild($dom->createTextNode($d
d88e0 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 64 6f 6d 3b 0a 7d 0a efault));.}.}.}..return.$dom;.}.
d8900 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
d8920 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
d8940 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
d8960 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
d8980 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 75 73 65 ent\Console\Command\Command;.use
d89a0 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
d89c0 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
d89e0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 onent\Console\Input\InputDefinit
d8a00 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 6f ion;.use.Symfony\Component\Conso
d8a20 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 0a 0a 0a 0a 0a 63 6c le\Input\InputOption;.........cl
d8a40 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 6e 64 73 20 44 ass.MarkdownDescriptor.extends.D
d8a60 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 6e 63 74 69 6f escriptor.{....protected.functio
d8a80 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 75 74 41 72 67 n.describeInputArgument(InputArg
d8aa0 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 69 6f 6e 73 20 ument.$argument,.array.$options.
d8ac0 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 27 2e =.array()).{.$this->write(.'**'.
d8ae0 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 22 5c 6e 5c 6e $argument->getName().':**'."\n\n
d8b00 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 65 74 4e 61 6d "..'*.Name:.'.($argument->getNam
d8b20 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 73 20 72 65 71 e().?:.'<none>')."\n"..'*.Is.req
d8b40 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 69 72 65 64 28 uired:.'.($argument->isRequired(
d8b60 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 49 73 20 61 72 ).?.'yes'.:.'no')."\n"..'*.Is.ar
d8b80 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 29 20 3f 20 27 ray:.'.($argument->isArray().?.'
d8ba0 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 69 70 74 69 6f yes'.:.'no')."\n"..'*.Descriptio
d8bc0 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 74 69 6f 6e 28 n:.'.($argument->getDescription(
d8be0 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 61 75 6c 74 3a ).?:.'<none>')."\n"..'*.Default:
d8c00 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 61 72 5f 65 78 .`'.str_replace("\n",.'',.var_ex
d8c20 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
d8c40 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 20 66 75 6e 63 ue)).'`'.);.}.....protected.func
d8c60 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 70 tion.describeInputOption(InputOp
d8c80 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 61 tion.$option,.array.$options.=.a
d8ca0 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 27 2e 24 6f 70 rray()).{.$this->write(.'**'.$op
d8cc0 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 22 0a 2e 27 2a tion->getName().':**'."\n\n"..'*
d8ce0 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 65 28 29 2e 27 .Name:.`--'.$option->getName().'
d8d00 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 70 74 69 6f 6e `'."\n"..'*.Shortcut:.'.($option
d8d20 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 6f 64 65 28 27 ->getShortcut().?.'`-'.implode('
d8d40 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 67 65 74 53 68 |-',.explode('|',.$option->getSh
d8d60 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 22 5c 6e 22 0a ortcut())).'`'.:.'<none>')."\n".
d8d80 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 6e 2d 3e 61 63 .'*.Accept.value:.'.($option->ac
d8da0 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 2e 22 5c 6e 22 ceptValue().?.'yes'.:.'no')."\n"
d8dc0 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 24 6f 70 74 69 ..'*.Is.value.required:.'.($opti
d8de0 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 73 27 20 3a 20 on->isValueRequired().?.'yes'.:.
d8e00 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 20 27 2e 28 24 'no')."\n"..'*.Is.multiple:.'.($
d8e20 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 20 27 6e 6f 27 option->isArray().?.'yes'.:.'no'
d8e40 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 24 6f 70 74 69 )."\n"..'*.Description:.'.($opti
d8e60 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 6f 6e 65 3e 27 on->getDescription().?:.'<none>'
d8e80 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 72 65 70 6c 61 )."\n"..'*.Default:.`'.str_repla
d8ea0 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 74 69 6f 6e 2d ce("\n",.'',.var_export($option-
d8ec0 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 3b 0a 7d 0a 0a >getDefault(),.true)).'`'.);.}..
d8ee0 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 6e ...protected.function.describeIn
d8f00 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 6f 6e 20 24 64 putDefinition(InputDefinition.$d
d8f20 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 20 61 72 72 61 efinition,.array.$options.=.arra
d8f40 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 20 63 6f 75 6e y()).{.if.($showArguments.=.coun
d8f60 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 28 29 29 20 3e t($definition->getArguments()).>
d8f80 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 75 6d 65 6e 74 .0).{.$this->write('###.Argument
d8fa0 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 3e 67 65 74 41 s:');.foreach.($definition->getA
d8fc0 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 74 68 69 73 rguments().as.$argument).{.$this
d8fe0 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 74 ->write("\n\n");.$this->write($t
d9000 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 61 72 67 75 his->describeInputArgument($argu
d9020 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 69 6e 69 74 69 ment));.}.}..if.(count($definiti
d9040 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 20 28 24 73 68 on->getOptions()).>.0).{.if.($sh
d9060 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 28 22 5c 6e 5c owArguments).{.$this->write("\n\
d9080 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 70 74 69 6f 6e n");.}..$this->write('###.Option
d90a0 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 3e 67 65 74 4f s:');.foreach.($definition->getO
d90c0 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 77 72 ptions().as.$option).{.$this->wr
d90e0 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 74 68 69 73 2d ite("\n\n");.$this->write($this-
d9100 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 6e 29 29 3b 0a >describeInputOption($option));.
d9120 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 64 65 73 }.}.}.....protected.function.des
d9140 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 6e 64 2c 20 61 cribeCommand(Command.$command,.a
d9160 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 63 6f 6d 6d rray.$options.=.array()).{.$comm
d9180 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 64 2d 3e 6d 65 and->getSynopsis();.$command->me
d91a0 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 6c 73 65 29 3b rgeApplicationDefinition(false);
d91c0 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 65 74 4e 61 6d ..$this->write(.$command->getNam
d91e0 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 74 72 6c 65 6e e()."\n"..str_repeat('-',.strlen
d9200 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 6e 22 0a 2e 27 ($command->getName()))."\n\n"..'
d9220 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 3e 67 65 74 44 *.Description:.'.($command->getD
d9240 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 5c 6e 22 0a 2e escription().?:.'<none>')."\n"..
d9260 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 79 6e 6f 70 73 '*.Usage:.`'.$command->getSynops
d9280 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 27 2e 28 63 6f is().'`'."\n"..'*.Aliases:.'.(co
d92a0 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 20 3f 20 27 60 unt($command->getAliases()).?.'`
d92c0 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 3e 67 65 74 41 '.implode('`,.`',.$command->getA
d92e0 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 3b 0a 0a 69 66 liases()).'`'.:.'<none>').);..if
d9300 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 65 73 73 65 64 .($help.=.$command->getProcessed
d9320 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 6e 22 29 3b 0a Help()).{.$this->write("\n\n");.
d9340 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 28 24 63 6f 6d $this->write($help);.}..if.($com
d9360 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()).{.$
d9380 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 64 65 73 63 this->write("\n\n");.$this->desc
d93a0 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 ribeInputDefinition($command->ge
d93c0 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 tNativeDefinition());.}.}.....pr
d93e0 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 6c 69 63 61 otected.function.describeApplica
d9400 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 6e 2c 20 61 tion(Application.$application,.a
d9420 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 64 65 73 63 rray.$options.=.array()).{.$desc
d9440 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 74 69 6f 6e 73 5b ribedNamespace.=.isset($options[
d9460 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 6e 61 6d 65 73 70 'namespace']).?.$options['namesp
d9480 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 20 3d 20 6e 65 77 ace'].:.null;.$description.=.new
d94a0 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 70 70 6c 69 63 61 .ApplicationDescription($applica
d94c0 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 3b 0a 0a 24 74 68 tion,.$describedNamespace);..$th
d94e0 69 73 2d 3e 77 72 69 74 65 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 is->write($application->getName(
d9500 29 2e 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 3d 27 2c 20 73 74 72 6c 65 6e 28 24 61 )."\n".str_repeat('=',.strlen($a
d9520 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 29 3b 0a 0a 66 6f 72 65 61 pplication->getName())));..forea
d9540 63 68 20 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 ch.($description->getNamespaces(
d9560 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 41 70 70 6c 69 63 61 74 69 ).as.$namespace).{.if.(Applicati
d9580 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 onDescription::GLOBAL_NAMESPACE.
d95a0 21 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 !==.$namespace['id']).{.$this->w
d95c0 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 27 2a 2a 27 2e rite("\n\n");.$this->write('**'.
d95e0 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3a 2a 2a 27 29 3b 0a 7d 0a 0a 24 74 68 69 $namespace['id'].':**');.}..$thi
d9600 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 69 s->write("\n\n");.$this->write(i
d9620 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.
d9640 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 20 27 2e 24 63 6f ($commandName).{.return.'*.'.$co
d9660 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 7d 2c 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e mmandName;.},.$namespace['comman
d9680 64 73 27 5d 29 29 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 ds'])));.}..foreach.($descriptio
d96a0 6e 2d 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 n->getCommands().as.$command).{.
d96c0 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
d96e0 74 65 28 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 te($this->describeCommand($comma
d9700 6e 64 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 nd));.}.}.}.<?php...........name
d9720 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 5c space.Symfony\Component\Console\
d9740 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 70 6f 6e 65 Descriptor;..use.Symfony\Compone
d9760 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 nt\Console\Application;.use.Symf
d9780 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f ony\Component\Console\Command\Co
d97a0 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 mmand;.......class.ApplicationDe
d97c0 73 63 72 69 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 scription.{.const.GLOBAL_NAMESPA
d97e0 43 45 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 70 70 CE.=.'_global';.....private.$app
d9800 6c 69 63 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 lication;.....private.$namespace
d9820 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 73 3b 0a 0a 0a 0a 0a 70 ;.....private.$namespaces;.....p
d9840 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 rivate.$commands;.....private.$a
d9860 6c 69 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f liases;........public.function._
d9880 5f 63 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 _construct(Application.$applicat
d98a0 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d ion,.$namespace.=.null).{.$this-
d98c0 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 24 74 68 >application.=.$application;.$th
d98e0 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 7d 0a 0a 0a is->namespace.=.$namespace;.}...
d9900 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 ..public.function.getNamespaces(
d9920 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 ).{.if.(null.===.$this->namespac
d9940 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 es).{.$this->inspectApplication(
d9960 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 3b 0a );.}..return.$this->namespaces;.
d9980 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 }.....public.function.getCommand
d99a0 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 63 6f 6d 6d 61 6e s().{.if.(null.===.$this->comman
d99c0 64 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 ds).{.$this->inspectApplication(
d99e0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a );.}..return.$this->commands;.}.
d9a00 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 6f 6d 6d 61 ........public.function.getComma
d9a20 6e 64 28 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 nd($name).{.if.(!isset($this->co
d9a40 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e mmands[$name]).&&.!isset($this->
d9a60 61 6c 69 61 73 65 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 aliases[$name])).{.throw.new.\In
d9a80 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
d9aa0 43 6f 6d 6d 61 6e 64 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 Command.%s.does.not.exist.',.$na
d9ac0 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d me));.}..return.isset($this->com
d9ae0 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b mands[$name]).?.$this->commands[
d9b00 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 3b 0a $name].:.$this->aliases[$name];.
d9b20 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 70 65 63 74 41 70 70 6c 69 }..private.function.inspectAppli
d9b40 63 61 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 cation().{.$this->commands.=.arr
d9b60 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 ay();.$this->namespaces.=.array(
d9b80 29 3b 0a 0a 24 61 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 );..$all.=.$this->application->a
d9ba0 6c 6c 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 70 70 ll($this->namespace.?.$this->app
d9bc0 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 74 68 69 73 2d 3e 6e lication->findNamespace($this->n
d9be0 61 6d 65 73 70 61 63 65 29 20 3a 20 6e 75 6c 6c 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 amespace).:.null);.foreach.($thi
d9c00 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 61 6c 6c 29 20 61 73 20 24 6e 61 6d 65 73 70 s->sortCommands($all).as.$namesp
d9c20 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 ace.=>.$commands).{.$names.=.arr
d9c40 61 79 28 29 3b 0a 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e ay();...foreach.($commands.as.$n
d9c60 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 ame.=>.$command).{.if.(!$command
d9c80 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 ->getName()).{.continue;.}..if.(
d9ca0 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b $command->getName().===.$name).{
d9cc0 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 .$this->commands[$name].=.$comma
d9ce0 6e 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d nd;.}.else.{.$this->aliases[$nam
d9d00 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 5b 5d 20 3d 20 24 6e 61 e].=.$command;.}..$names[].=.$na
d9d20 6d 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 5b 24 6e 61 6d 65 73 70 me;.}..$this->namespaces[$namesp
d9d40 61 63 65 5d 20 3d 20 61 72 72 61 79 28 27 69 64 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c ace].=.array('id'.=>.$namespace,
d9d60 20 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 6e 61 6d 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a .'commands'.=>.$names);.}.}.....
d9d80 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 ..private.function.sortCommands(
d9da0 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f array.$commands).{.$namespacedCo
d9dc0 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d mmands.=.array();.foreach.($comm
d9de0 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6b 65 ands.as.$name.=>.$command).{.$ke
d9e00 79 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 65 78 74 72 61 63 74 4e y.=.$this->application->extractN
d9e20 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 31 29 3b 0a 69 66 20 28 21 24 6b 65 79 29 20 7b amespace($name,.1);.if.(!$key).{
d9e40 0a 24 6b 65 79 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 63 65 .$key.=.'_global';.}..$namespace
d9e60 64 43 6f 6d 6d 61 6e 64 73 5b 24 6b 65 79 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e dCommands[$key][$name].=.$comman
d9e80 64 3b 0a 7d 0a 6b 73 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 29 3b d;.}.ksort($namespacedCommands);
d9ea0 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 61 ..foreach.($namespacedCommands.a
d9ec0 73 20 26 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 73 29 s.&$commands).{.ksort($commands)
d9ee0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 3b ;.}..return.$namespacedCommands;
d9f00 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
d9f20 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 63 72 69 70 ymfony\Component\Console\Descrip
d9f40 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 43 6f 6e 73 tor;..use.Symfony\Component\Cons
d9f60 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 5c 43 6f 6d ole\Application;.use.Symfony\Com
d9f80 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;.
d9fa0 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
d9fc0 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
d9fe0 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 44 65 66 69 omponent\Console\Input\InputDefi
da000 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 74 5c 43 6f nition;.use.Symfony\Component\Co
da020 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d nsole\Input\InputOption;.use.Sym
da040 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
da060 74 70 75 74 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 tputInterface;.......abstract.cl
da080 61 73 73 20 44 65 73 63 72 69 70 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 65 73 63 72 69 ass.Descriptor.implements.Descri
da0a0 70 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 ptorInterface.{....private.$outp
da0c0 75 74 3b 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 ut;.....public.function.describe
da0e0 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 6f 62 6a 65 63 (OutputInterface.$output,.$objec
da100 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 0a 7b 0a 24 t,.array.$options.=.array()).{.$
da120 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 73 77 69 74 63 68 20 this->output.=.$output;..switch.
da140 28 74 72 75 65 29 20 7b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 (true).{.case.$object.instanceof
da160 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 .InputArgument:.$this->describeI
da180 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b nputArgument($object,.$options);
da1a0 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 20 .break;.case.$object.instanceof.
da1c0 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 InputOption:.$this->describeInpu
da1e0 74 4f 70 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 61 tOption($object,.$options);.brea
da200 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 20 49 6e 70 75 74 k;.case.$object.instanceof.Input
da220 44 65 66 69 6e 69 74 69 6f 6e 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 Definition:.$this->describeInput
da240 44 65 66 69 6e 69 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 Definition($object,.$options);.b
da260 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 20 43 6f reak;.case.$object.instanceof.Co
da280 6d 6d 61 6e 64 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 6f mmand:.$this->describeCommand($o
da2a0 62 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 bject,.$options);.break;.case.$o
da2c0 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 3a 0a 24 74 bject.instanceof.Application:.$t
da2e0 68 69 73 2d 3e 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 24 6f 62 6a 65 63 74 his->describeApplication($object
da300 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 ,.$options);.break;.default:.thr
da320 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
da340 28 73 70 72 69 6e 74 66 28 27 4f 62 6a 65 63 74 20 6f 66 20 74 79 70 65 20 22 25 73 22 20 69 73 (sprintf('Object.of.type."%s".is
da360 20 6e 6f 74 20 64 65 73 63 72 69 62 61 62 6c 65 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 6f .not.describable.',.get_class($o
da380 62 6a 65 63 74 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 bject)));.}.}........protected.f
da3a0 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 63 6f 6e 74 65 6e 74 2c 20 24 64 65 63 6f 72 61 74 unction.write($content,.$decorat
da3c0 65 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 ed.=.false).{.$this->output->wri
da3e0 74 65 28 24 63 6f 6e 74 65 6e 74 2c 20 66 61 6c 73 65 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3f te($content,.false,.$decorated.?
da400 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 4e 4f 52 4d 41 4c 20 .OutputInterface::OUTPUT_NORMAL.
da420 3a 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a :.OutputInterface::OUTPUT_RAW);.
da440 7d 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 }..........abstract.protected.fu
da460 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
da480 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
da4a0 69 6f 6e 73 20 3d 20 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 ions.=.array());..........abstra
da4c0 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 6e ct.protected.function.describeIn
da4e0 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 61 putOption(InputOption.$option,.a
da500 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 0a 0a 0a 0a 0a rray.$options.=.array());.......
da520 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 ...abstract.protected.function.d
da540 65 73 63 72 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 escribeInputDefinition(InputDefi
da560 6e 69 74 69 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 nition.$definition,.array.$optio
da580 6e 73 20 3d 20 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 ns.=.array());..........abstract
da5a0 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 43 6f 6d 6d .protected.function.describeComm
da5c0 61 6e 64 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 6f 70 74 and(Command.$command,.array.$opt
da5e0 69 6f 6e 73 20 3d 20 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 ions.=.array());..........abstra
da600 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 41 70 ct.protected.function.describeAp
da620 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 69 plication(Application.$applicati
da640 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 7d on,.array.$options.=.array());.}
da660 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
da680 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 3b ny\Component\Console\Descriptor;
da6a0 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\
da6c0 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 65 Application;.use.Symfony\Compone
da6e0 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 75 73 65 20 nt\Console\Command\Command;.use.
da700 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\
da720 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f InputArgument;.use.Symfony\Compo
da740 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 nent\Console\Input\InputDefiniti
da760 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
da780 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 e\Input\InputOption;.........cla
da7a0 73 73 20 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 ss.JsonDescriptor.extends.Descri
da7c0 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 ptor.{....protected.function.des
da7e0 63 72 69 62 65 49 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 cribeInputArgument(InputArgument
da800 20 24 61 72 67 75 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 .$argument,.array.$options.=.arr
da820 61 79 28 29 29 0a 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 ay()).{.$this->writeData($this->
da840 67 65 74 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 2c getInputArgumentData($argument),
da860 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 66 75 6e 63 .$options);.}.....protected.func
da880 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 70 tion.describeInputOption(InputOp
da8a0 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 61 tion.$option,.array.$options.=.a
da8c0 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 74 68 69 73 rray()).{.$this->writeData($this
da8e0 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 74 61 28 24 6f 70 74 69 6f 6e 29 2c 20 24 ->getInputOptionData($option),.$
da900 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
da920 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 28 49 6e 70 75 74 on.describeInputDefinition(Input
da940 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 72 61 79 20 24 6f Definition.$definition,.array.$o
da960 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 74 65 ptions.=.array()).{.$this->write
da980 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 61 Data($this->getInputDefinitionDa
da9a0 74 61 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a ta($definition),.$options);.}...
da9c0 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 43 6f 6d ..protected.function.describeCom
da9e0 6d 61 6e 64 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 6f 70 mand(Command.$command,.array.$op
daa00 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 74 65 44 tions.=.array()).{.$this->writeD
daa20 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 61 74 61 28 24 63 6f 6d 6d 61 ata($this->getCommandData($comma
daa40 6e 64 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 nd),.$options);.}.....protected.
daa60 66 75 6e 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 function.describeApplication(App
daa80 6c 69 63 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 lication.$application,.array.$op
daaa0 74 69 6f 6e 73 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 tions.=.array()).{.$describedNam
daac0 65 73 70 61 63 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 espace.=.isset($options['namespa
daae0 63 65 27 5d 29 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 ce']).?.$options['namespace'].:.
dab00 6e 75 6c 6c 3b 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 null;.$description.=.new.Applica
dab20 74 69 6f 6e 44 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 tionDescription($application,.$d
dab40 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 escribedNamespace);.$commands.=.
dab60 61 72 72 61 79 28 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 array();..foreach.($description-
dab80 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 63 >getCommands().as.$command).{.$c
daba0 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 61 74 ommands[].=.$this->getCommandDat
dabc0 61 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 64 65 73 63 72 69 62 a($command);.}..$data.=.$describ
dabe0 65 64 4e 61 6d 65 73 70 61 63 65 0a 3f 20 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 73 27 20 3d edNamespace.?.array('commands'.=
dac00 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 64 65 73 >.$commands,.'namespace'.=>.$des
dac20 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 0a 3a 20 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e cribedNamespace).:.array('comman
dac40 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 61 63 65 73 27 20 3d ds'.=>.$commands,.'namespaces'.=
dac60 3e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 >.array_values($description->get
dac80 4e 61 6d 65 73 70 61 63 65 73 28 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 Namespaces()));..$this->writeDat
daca0 61 28 24 64 61 74 61 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 a($data,.$options);.}..........p
dacc0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 44 61 74 61 28 61 72 72 61 79 20 rivate.function.writeData(array.
dace0 24 64 61 74 61 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e $data,.array.$options).{.$this->
dad00 77 72 69 74 65 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 69 73 73 65 74 28 24 write(json_encode($data,.isset($
dad20 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e 67 27 5d 29 20 3f 20 24 6f 70 74 options['json_encoding']).?.$opt
dad40 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e 67 27 5d 20 3a 20 30 29 29 3b 0a 7d 0a 0a ions['json_encoding'].:.0));.}..
dad60 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 72 .....private.function.getInputAr
dad80 67 75 6d 65 6e 74 44 61 74 61 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 gumentData(InputArgument.$argume
dada0 6e 74 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 3e 20 24 61 nt).{.return.array(.'name'.=>.$a
dadc0 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 69 73 5f 72 65 71 75 69 72 65 64 rgument->getName(),.'is_required
dade0 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 '.=>.$argument->isRequired(),.'i
dae00 73 5f 61 72 72 61 79 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 s_array'.=>.$argument->isArray()
dae20 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 ,.'description'.=>.$argument->ge
dae40 74 44 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 61 72 tDescription(),.'default'.=>.$ar
dae60 67 75 6d 65 6e 74 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 gument->getDefault(),.);.}......
dae80 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 4f 70 74 69 6f 6e .private.function.getInputOption
daea0 44 61 74 61 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 Data(InputOption.$option).{.retu
daec0 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e rn.array(.'name'.=>.'--'.$option
daee0 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 73 68 6f 72 74 63 75 74 27 20 3d 3e 20 24 6f 70 74 69 ->getName(),.'shortcut'.=>.$opti
daf00 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 on->getShortcut().?.'-'.implode(
daf20 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 67 65 74 53 '|-',.explode('|',.$option->getS
daf40 68 6f 72 74 63 75 74 28 29 29 29 20 3a 20 27 27 2c 0a 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 hortcut())).:.'',.'accept_value'
daf60 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 2c 0a 27 69 73 5f .=>.$option->acceptValue(),.'is_
daf80 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 value_required'.=>.$option->isVa
dafa0 6c 75 65 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 6d 75 6c 74 69 70 6c 65 27 20 3d 3e 20 lueRequired(),.'is_multiple'.=>.
dafc0 24 6f 70 74 69 6f 6e 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 $option->isArray(),.'description
dafe0 27 20 3d 3e 20 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 2c 0a '.=>.$option->getDescription(),.
db000 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 'default'.=>.$option->getDefault
db020 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.
db040 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 61 74 61 28 49 6e 70 75 74 44 65 66 69 getInputDefinitionData(InputDefi
db060 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 69 6e 70 75 74 41 72 67 75 nition.$definition).{.$inputArgu
db080 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e ments.=.array();.foreach.($defin
db0a0 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d ition->getArguments().as.$name.=
db0c0 3e 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 5b 24 >.$argument).{.$inputArguments[$
db0e0 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 name].=.$this->getInputArgumentD
db100 61 74 61 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 ata($argument);.}..$inputOptions
db120 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 74 69 6f 6e .=.array();.foreach.($definition
db140 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 6f 70 74 69 ->getOptions().as.$name.=>.$opti
db160 6f 6e 29 20 7b 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 on).{.$inputOptions[$name].=.$th
db180 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 74 61 28 24 6f 70 74 69 6f 6e 29 3b is->getInputOptionData($option);
db1a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 61 72 67 75 6d 65 6e 74 73 27 20 3d 3e 20 .}..return.array('arguments'.=>.
db1c0 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 2c 20 27 6f 70 74 69 6f 6e 73 27 20 3d 3e 20 24 69 $inputArguments,.'options'.=>.$i
db1e0 6e 70 75 74 4f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 nputOptions);.}.......private.fu
db200 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 44 61 74 61 28 43 6f 6d 6d 61 6e 64 20 24 63 nction.getCommandData(Command.$c
db220 6f 6d 6d 61 6e 64 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 ommand).{.$command->getSynopsis(
db240 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
db260 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 inition(false);..return.array(.'
db280 6e 61 6d 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 75 name'.=>.$command->getName(),.'u
db2a0 73 61 67 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 sage'.=>.$command->getSynopsis()
db2c0 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 ,.'description'.=>.$command->get
db2e0 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 68 65 6c 70 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e Description(),.'help'.=>.$comman
db300 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 2c 0a 27 61 6c 69 61 73 65 73 27 d->getProcessedHelp(),.'aliases'
db320 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 2c 0a 27 64 65 66 .=>.$command->getAliases(),.'def
db340 69 6e 69 74 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e inition'.=>.$this->getInputDefin
db360 69 74 69 6f 6e 44 61 74 61 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 itionData($command->getNativeDef
db380 69 6e 69 74 69 6f 6e 28 29 29 2c 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a inition()),.);.}.}.<?php........
db3a0 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
db3c0 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 onsole\Helper;.........interface
db3e0 20 48 65 6c 70 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 .HelperInterface.{........public
db400 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 .function.setHelperSet(HelperSet
db420 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .$helperSet.=.null);.........pub
db440 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a lic.function.getHelperSet();....
db460 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 3b 0a .....public.function.getName();.
db480 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
db4a0 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 75 ony\Component\Console\Helper;..u
db4c0 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
db4e0 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
db500 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 4e 75 6c 6c 4f 75 \Component\Console\Output\NullOu
db520 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 48 65 6c 70 65 72 tput;..........class.TableHelper
db540 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 44 .extends.Helper.{.const.LAYOUT_D
db560 45 46 41 55 4c 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c EFAULT.=.0;.const.LAYOUT_BORDERL
db580 45 53 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 43 4f 4d 50 41 43 54 20 3d 20 ESS.=.1;.const.LAYOUT_COMPACT.=.
db5a0 32 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 61 62 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 2;.....private.$table;..public.f
db5c0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 unction.__construct().{.$this->t
db5e0 61 62 6c 65 20 3d 20 6e 65 77 20 54 61 62 6c 65 28 6e 65 77 20 4e 75 6c 6c 4f 75 74 70 75 74 28 able.=.new.Table(new.NullOutput(
db600 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ));.}...........public.function.
db620 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 6c 61 setLayout($layout).{.switch.($la
db640 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 45 52 yout).{.case.self::LAYOUT_BORDER
db660 4c 45 53 53 3a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 53 74 79 6c 65 28 27 62 6f LESS:.$this->table->setStyle('bo
db680 72 64 65 72 6c 65 73 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4c rderless');.break;..case.self::L
db6a0 41 59 4f 55 54 5f 43 4f 4d 50 41 43 54 3a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 AYOUT_COMPACT:.$this->table->set
db6c0 53 74 79 6c 65 28 27 63 6f 6d 70 61 63 74 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 Style('compact');.break;..case.s
db6e0 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 73 2d 3e 74 61 62 6c elf::LAYOUT_DEFAULT:.$this->tabl
db700 65 2d 3e 73 65 74 53 74 79 6c 65 28 27 64 65 66 61 75 6c 74 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a e->setStyle('default');.break;..
db720 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d default:.throw.new.\InvalidArgum
db740 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 74 61 entException(sprintf('Invalid.ta
db760 62 6c 65 20 6c 61 79 6f 75 74 20 22 25 73 22 2e 27 2c 20 24 6c 61 79 6f 75 74 29 29 3b 0a 7d 3b ble.layout."%s".',.$layout));.};
db780 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 74 69 ..return.$this;.}..public.functi
db7a0 6f 6e 20 73 65 74 48 65 61 64 65 72 73 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a on.setHeaders(array.$headers).{.
db7c0 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 $this->table->setHeaders($header
db7e0 73 29 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 s);..return.$this;.}..public.fun
db800 63 74 69 6f 6e 20 73 65 74 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 24 74 68 ction.setRows(array.$rows).{.$th
db820 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 52 6f 77 73 28 24 72 6f 77 73 29 3b 0a 0a 72 65 74 75 is->table->setRows($rows);..retu
db840 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 61 64 64 rn.$this;.}..public.function.add
db860 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 74 61 62 6c 65 Rows(array.$rows).{.$this->table
db880 2d 3e 61 64 64 52 6f 77 73 28 24 72 6f 77 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b ->addRows($rows);..return.$this;
db8a0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 61 72 72 61 79 .}..public.function.addRow(array
db8c0 20 24 72 6f 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 61 64 64 52 6f 77 28 24 72 .$row).{.$this->table->addRow($r
db8e0 6f 77 29 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 ow);..return.$this;.}..public.fu
db900 6e 63 74 69 6f 6e 20 73 65 74 52 6f 77 28 24 63 6f 6c 75 6d 6e 2c 20 61 72 72 61 79 20 24 72 6f nction.setRow($column,.array.$ro
db920 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 52 6f 77 28 24 63 6f 6c 75 6d w).{.$this->table->setRow($colum
db940 6e 2c 20 24 72 6f 77 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 n,.$row);..return.$this;.}......
db960 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 6e 67 43 68 61 ...public.function.setPaddingCha
db980 72 28 24 70 61 64 64 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e r($paddingChar).{.$this->table->
db9a0 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 24 70 61 64 64 getStyle()->setPaddingChar($padd
db9c0 69 6e 67 43 68 61 72 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 ingChar);..return.$this;.}......
db9e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c ...public.function.setHorizontal
dba00 42 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 BorderChar($horizontalBorderChar
dba20 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 ).{.$this->table->getStyle()->se
dba40 74 48 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 tHorizontalBorderChar($horizonta
dba60 6c 42 6f 72 64 65 72 43 68 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a lBorderChar);..return.$this;.}..
dba80 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 74 69 63 .......public.function.setVertic
dbaa0 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 alBorderChar($verticalBorderChar
dbac0 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 ).{.$this->table->getStyle()->se
dbae0 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 76 65 72 74 69 63 61 6c 42 6f 72 tVerticalBorderChar($verticalBor
dbb00 64 65 72 43 68 61 72 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 derChar);..return.$this;.}......
dbb20 0a 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 ...public.function.setCrossingCh
dbb40 61 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 74 61 62 6c 65 ar($crossingChar).{.$this->table
dbb60 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 24 63 ->getStyle()->setCrossingChar($c
dbb80 72 6f 73 73 69 6e 67 43 68 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a rossingChar);..return.$this;.}..
dbba0 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 65 6c 6c 48 65 .......public.function.setCellHe
dbbc0 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a aderFormat($cellHeaderFormat).{.
dbbe0 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 43 65 6c $this->table->getStyle()->setCel
dbc00 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 46 6f 72 6d 61 74 29 lHeaderFormat($cellHeaderFormat)
dbc20 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
dbc40 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c c.function.setCellRowFormat($cel
dbc60 6c 52 6f 77 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 lRowFormat).{.$this->table->getS
dbc80 74 79 6c 65 28 29 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c tyle()->setCellHeaderFormat($cel
dbca0 6c 52 6f 77 46 6f 72 6d 61 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a lRowFormat);..return.$this;.}...
dbcc0 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 65 6c 6c 52 6f 77 ......public.function.setCellRow
dbce0 43 6f 6e 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 ContentFormat($cellRowContentFor
dbd00 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d mat).{.$this->table->getStyle()-
dbd20 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 24 63 65 6c 6c 52 6f >setCellRowContentFormat($cellRo
dbd40 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a wContentFormat);..return.$this;.
dbd60 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 42 6f 72 }.........public.function.setBor
dbd80 64 65 72 46 6f 72 6d 61 74 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 derFormat($borderFormat).{.$this
dbda0 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 42 6f 72 64 65 72 46 6f ->table->getStyle()->setBorderFo
dbdc0 72 6d 61 74 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 rmat($borderFormat);..return.$th
dbde0 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 73 65 is;.}.........public.function.se
dbe00 74 50 61 64 54 79 70 65 28 24 70 61 64 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c tPadType($padType).{.$this->tabl
dbe20 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 50 61 64 54 79 70 65 28 24 70 61 64 54 79 e->getStyle()->setPadType($padTy
dbe40 70 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a pe);..return.$this;.}...........
dbe60 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 4f 75 74 70 .....public.function.render(Outp
dbe80 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 70 20 3d 20 6e 65 77 20 utInterface.$output).{.$p.=.new.
dbea0 5c 52 65 66 6c 65 63 74 69 6f 6e 50 72 6f 70 65 72 74 79 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 \ReflectionProperty($this->table
dbec0 2c 20 27 6f 75 74 70 75 74 27 29 3b 0a 24 70 2d 3e 73 65 74 41 63 63 65 73 73 69 62 6c 65 28 74 ,.'output');.$p->setAccessible(t
dbee0 72 75 65 29 3b 0a 24 70 2d 3e 73 65 74 56 61 6c 75 65 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 2c rue);.$p->setValue($this->table,
dbf00 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 72 65 6e 64 65 72 .$output);..$this->table->render
dbf20 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 4e 61 6d ();.}.....public.function.getNam
dbf40 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 68 70 0a e().{.return.'table';.}.}.<?php.
dbf60 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
dbf80 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f onent\Console\Helper;..use.Symfo
dbfa0 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
dbfc0 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 0a utInterface;........class.Table.
dbfe0 7b 0a 0a 0a 0a 0a 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 {......private.$headers.=.array(
dc000 29 3b 0a 0a 0a 0a 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 );.......private.$rows.=.array()
dc020 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 20 ;.......private.$columnWidths.=.
dc040 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 66 array();.......private.$numberOf
dc060 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 0a Columns;.....private.$output;...
dc080 0a 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 ..private.$style;..private.stati
dc0a0 63 20 24 73 74 79 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 c.$styles;..public.function.__co
dc0c0 6e 73 74 72 75 63 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 29 nstruct(OutputInterface.$output)
dc0e0 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 69 66 20 .{.$this->output.=.$output;..if.
dc100 28 21 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 (!self::$styles).{.self::$styles
dc120 20 3d 20 73 65 6c 66 3a 3a 69 6e 69 74 53 74 79 6c 65 73 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d .=.self::initStyles();.}..$this-
dc140 3e 73 65 74 53 74 79 6c 65 28 27 64 65 66 61 75 6c 74 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 >setStyle('default');.}........p
dc160 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 53 74 79 6c 65 44 65 ublic.static.function.setStyleDe
dc180 66 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 54 61 62 6c 65 53 74 79 6c 65 20 24 73 74 79 6c finition($name,.TableStyle.$styl
dc1a0 65 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 29 20 7b 0a 73 65 6c 66 3a e).{.if.(!self::$styles).{.self:
dc1c0 3a 24 73 74 79 6c 65 73 20 3d 20 73 65 6c 66 3a 3a 69 6e 69 74 53 74 79 6c 65 73 28 29 3b 0a 7d :$styles.=.self::initStyles();.}
dc1e0 0a 0a 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 79 6c 65 3b ..self::$styles[$name].=.$style;
dc200 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f .}.........public.static.functio
dc220 6e 20 67 65 74 53 74 79 6c 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 n.getStyleDefinition($name).{.if
dc240 20 28 21 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 74 79 6c 65 .(!self::$styles).{.self::$style
dc260 73 20 3d 20 73 65 6c 66 3a 3a 69 6e 69 74 53 74 79 6c 65 73 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 s.=.self::initStyles();.}..if.(!
dc280 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 self::$styles[$name]).{.throw.ne
dc2a0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
dc2c0 6e 74 66 28 27 53 74 79 6c 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 ntf('Style."%s".is.not.defined.'
dc2e0 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 79 6c ,.$name));.}..return.self::$styl
dc300 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 es[$name];.}.........public.func
dc320 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 24 6e 61 6d 65 tion.setStyle($name).{.if.($name
dc340 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 53 74 79 6c 65 29 20 7b 0a 24 74 68 69 73 2d .instanceof.TableStyle).{.$this-
dc360 3e 73 74 79 6c 65 20 3d 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 >style.=.$name;.}.elseif.(isset(
dc380 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e self::$styles[$name])).{.$this->
dc3a0 73 74 79 6c 65 20 3d 20 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 20 style.=.self::$styles[$name];.}.
dc3c0 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e else.{.throw.new.\InvalidArgumen
dc3e0 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 53 74 79 6c 65 20 22 25 73 22 20 69 tException(sprintf('Style."%s".i
dc400 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 s.not.defined.',.$name));.}..ret
dc420 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
dc440 6f 6e 20 67 65 74 53 74 79 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 on.getStyle().{.return.$this->st
dc460 79 6c 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 48 65 61 64 65 yle;.}..public.function.setHeade
dc480 72 73 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 rs(array.$headers).{.$this->head
dc4a0 65 72 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 ers.=.array_values($headers);..r
dc4c0 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 eturn.$this;.}..public.function.
dc4e0 73 65 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 setRows(array.$rows).{.$this->ro
dc500 77 73 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 ws.=.array();..return.$this->add
dc520 52 6f 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 Rows($rows);.}..public.function.
dc540 61 64 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 addRows(array.$rows).{.foreach.(
dc560 24 72 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 $rows.as.$row).{.$this->addRow($
dc580 72 6f 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 row);.}..return.$this;.}..public
dc5a0 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 24 72 6f 77 29 0a 7b 0a 69 66 20 28 24 72 6f .function.addRow($row).{.if.($ro
dc5c0 77 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 53 65 70 61 72 61 74 6f 72 29 20 7b 0a 24 w.instanceof.TableSeparator).{.$
dc5e0 74 68 69 73 2d 3e 72 6f 77 73 5b 5d 20 3d 20 24 72 6f 77 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a this->rows[].=.$row;..return;.}.
dc600 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 72 6f 77 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .if.(!is_array($row)).{.throw.ne
dc620 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 41 20 72 w.\InvalidArgumentException('A.r
dc640 6f 77 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 72 20 61 20 54 61 62 6c 65 53 65 ow.must.be.an.array.or.a.TableSe
dc660 70 61 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 parator.instance.');.}..$this->r
dc680 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 0a 0a 65 6e 64 ows[].=.array_values($row);..end
dc6a0 28 24 74 68 69 73 2d 3e 72 6f 77 73 29 3b 0a 24 72 6f 77 4b 65 79 20 3d 20 6b 65 79 28 24 74 68 ($this->rows);.$rowKey.=.key($th
dc6c0 69 73 2d 3e 72 6f 77 73 29 3b 0a 72 65 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 77 73 29 3b 0a 0a is->rows);.reset($this->rows);..
dc6e0 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
dc700 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,."
dc720 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
dc740 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->
dc760 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];
dc780 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
dc7a0 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
dc7c0 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
dc7e0 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
dc800 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
dc820 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
dc840 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
dc860 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;
dc880 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
dc8a0 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
dc8c0 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;.}.
dc8e0 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 65 6e .............public.function.ren
dc900 64 65 72 28 29 0a 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 der().{.$this->renderRowSeparato
dc920 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 69 73 2d 3e 68 65 61 r();.$this->renderRow($this->hea
dc940 64 65 72 73 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c 6c 48 65 61 64 65 ders,.$this->style->getCellHeade
dc960 72 46 6f 72 6d 61 74 28 29 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 68 65 rFormat());.if.(!empty($this->he
dc980 61 64 65 72 73 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 aders)).{.$this->renderRowSepara
dc9a0 74 6f 72 28 29 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 tor();.}.foreach.($this->rows.as
dc9c0 20 24 72 6f 77 29 20 7b 0a 69 66 20 28 24 72 6f 77 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 .$row).{.if.($row.instanceof.Tab
dc9e0 6c 65 53 65 70 61 72 61 74 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 leSeparator).{.$this->renderRowS
dca00 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 eparator();.}.else.{.$this->rend
dca20 65 72 52 6f 77 28 24 72 6f 77 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c erRow($row,.$this->style->getCel
dca40 6c 52 6f 77 46 6f 72 6d 61 74 28 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 lRowFormat());.}.}.if.(!empty($t
dca60 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 65 his->rows)).{.$this->renderRowSe
dca80 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 0a parator();.}..$this->cleanup();.
dcaa0 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 52 }.......private.function.renderR
dcac0 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 74 owSeparator().{.if.(0.===.$count
dcae0 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 20 .=.$this->getNumberOfColumns()).
dcb00 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 73 74 79 6c 65 2d 3e {.return;.}..if.(!$this->style->
dcb20 67 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 29 20 26 26 20 21 24 74 getHorizontalBorderChar().&&.!$t
dcb40 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 29 29 20 7b his->style->getCrossingChar()).{
dcb60 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 61 72 6b 75 70 20 3d 20 24 74 68 69 73 2d 3e 73 74 79 .return;.}..$markup.=.$this->sty
dcb80 6c 65 2d 3e 67 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 29 3b 0a 66 6f 72 20 28 24 63 6f 6c le->getCrossingChar();.for.($col
dcba0 75 6d 6e 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 umn.=.0;.$column.<.$count;.$colu
dcbc0 6d 6e 2b 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 mn++).{.$markup..=.str_repeat($t
dcbe0 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 his->style->getHorizontalBorderC
dcc00 68 61 72 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f har(),.$this->getColumnWidth($co
dcc20 6c 75 6d 6e 29 29 2e 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 72 6f 73 73 69 6e 67 lumn)).$this->style->getCrossing
dcc40 43 68 61 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c Char();.}..$this->output->writel
dcc60 6e 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 42 6f 72 64 65 n(sprintf($this->style->getBorde
dcc80 72 46 6f 72 6d 61 74 28 29 2c 20 24 6d 61 72 6b 75 70 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 rFormat(),.$markup));.}.....priv
dcca0 61 74 65 20 66 75 6e 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 ate.function.renderColumnSeparat
dccc0 6f 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 or().{.$this->output->write(spri
dcce0 6e 74 66 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 ntf($this->style->getBorderForma
dcd00 74 28 29 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 56 65 72 74 69 63 61 6c 42 6f t(),.$this->style->getVerticalBo
dcd20 72 64 65 72 43 68 61 72 28 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 rderChar()));.}..........private
dcd40 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 20 .function.renderRow(array.$row,.
dcd60 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 20 $cellFormat).{.if.(empty($row)).
dcd80 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 6e {.return;.}..$this->renderColumn
dcda0 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 24 Separator();.for.($column.=.0,.$
dcdc0 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 6e count.=.$this->getNumberOfColumn
dcde0 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 2b s();.$column.<.$count;.$column++
dce00 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 6c ).{.$this->renderCell($row,.$col
dce20 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 72 umn,.$cellFormat);.$this->render
dce40 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 70 ColumnSeparator();.}.$this->outp
dce60 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 61 ut->writeln('');.}.........priva
dce80 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 6f te.function.renderCell(array.$ro
dcea0 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 6c w,.$column,.$cellFormat).{.$cell
dcec0 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 24 .=.isset($row[$column]).?.$row[$
dcee0 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 65 column].:.'';.$width.=.$this->ge
dcf00 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 75 tColumnWidth($column);....if.(fu
dcf20 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 20 26 26 20 nction_exists('mb_strwidth').&&.
dcf40 66 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 false.!==.$encoding.=.mb_detect_
dcf60 65 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 encoding($cell)).{.$width.+=.str
dcf80 6c 65 6e 28 24 63 65 6c 6c 29 20 2d 20 6d 62 5f 73 74 72 77 69 64 74 68 28 24 63 65 6c 6c 2c 20 len($cell).-.mb_strwidth($cell,.
dcfa0 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 24 77 69 64 74 68 20 2b 3d 20 48 65 6c 70 65 72 3a $encoding);.}..$width.+=.Helper:
dcfc0 3a 73 74 72 6c 65 6e 28 24 63 65 6c 6c 29 20 2d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 :strlen($cell).-.Helper::strlenW
dcfe0 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e ithoutDecoration($this->output->
dd000 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 63 65 6c 6c 29 3b 0a 0a 24 63 6f 6e 74 65 6e getFormatter(),.$cell);..$conten
dd020 74 20 3d 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c t.=.sprintf($this->style->getCel
dd040 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 29 2c 20 24 63 65 6c 6c 29 3b 0a 0a 24 74 lRowContentFormat(),.$cell);..$t
dd060 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 63 65 6c 6c his->output->write(sprintf($cell
dd080 46 6f 72 6d 61 74 2c 20 73 74 72 5f 70 61 64 28 24 63 6f 6e 74 65 6e 74 2c 20 24 77 69 64 74 68 Format,.str_pad($content,.$width
dd0a0 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 29 ,.$this->style->getPaddingChar()
dd0c0 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 50 61 64 54 79 70 65 28 29 29 29 29 3b ,.$this->style->getPadType())));
dd0e0 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 4e 75 6d .}.......private.function.getNum
dd100 62 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 berOfColumns().{.if.(null.!==.$t
dd120 68 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 his->numberOfColumns).{.return.$
dd140 74 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 this->numberOfColumns;.}..$colum
dd160 6e 73 20 3d 20 61 72 72 61 79 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 ns.=.array(count($this->headers)
dd180 29 3b 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 29 );.foreach.($this->rows.as.$row)
dd1a0 20 7b 0a 24 63 6f 6c 75 6d 6e 73 5b 5d 20 3d 20 63 6f 75 6e 74 28 24 72 6f 77 29 3b 0a 7d 0a 0a .{.$columns[].=.count($row);.}..
dd1c0 72 65 74 75 72 6e 20 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 return.$this->numberOfColumns.=.
dd1e0 6d 61 78 28 24 63 6f 6c 75 6d 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 max($columns);.}.........private
dd200 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 24 63 6f 6c 75 6d 6e .function.getColumnWidth($column
dd220 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 ).{.if.(isset($this->columnWidth
dd240 73 5b 24 63 6f 6c 75 6d 6e 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c s[$column])).{.return.$this->col
dd260 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 73 20 umnWidths[$column];.}..$lengths.
dd280 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c 57 69 64 74 68 28 24 74 68 69 =.array($this->getCellWidth($thi
dd2a0 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 63 6f 6c 75 6d 6e 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 s->headers,.$column));.foreach.(
dd2c0 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 69 66 20 28 24 72 6f 77 20 $this->rows.as.$row).{.if.($row.
dd2e0 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 53 65 70 61 72 61 74 6f 72 29 20 7b 0a 63 6f 6e instanceof.TableSeparator).{.con
dd300 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 tinue;.}..$lengths[].=.$this->ge
dd320 74 43 65 6c 6c 57 69 64 74 68 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 29 3b 0a 7d 0a 0a 72 65 tCellWidth($row,.$column);.}..re
dd340 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
dd360 5d 20 3d 20 6d 61 78 28 24 6c 65 6e 67 74 68 73 29 20 2b 20 73 74 72 6c 65 6e 28 24 74 68 69 73 ].=.max($lengths).+.strlen($this
dd380 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 ->style->getCellRowContentFormat
dd3a0 28 29 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 ()).-.2;.}..........private.func
dd3c0 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
dd3e0 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
dd400 6d 6e 5d 29 20 3f 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 44 65 63 6f mn]).?.Helper::strlenWithoutDeco
dd420 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 ration($this->output->getFormatt
dd440 65 72 28 29 2c 20 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a er(),.$row[$column]).:.0;.}.....
dd460 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 29 0a 7b 0a 24 74 68 private.function.cleanup().{.$th
dd480 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 29 3b 0a 24 74 68 69 is->columnWidths.=.array();.$thi
dd4a0 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 3b 0a 7d 0a 0a 70 72 s->numberOfColumns.=.null;.}..pr
dd4c0 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 53 74 79 6c 65 73 ivate.static.function.initStyles
dd4e0 28 29 0a 7b 0a 24 62 6f 72 64 65 72 6c 65 73 73 20 3d 20 6e 65 77 20 54 61 62 6c 65 53 74 79 6c ().{.$borderless.=.new.TableStyl
dd500 65 28 29 3b 0a 24 62 6f 72 64 65 72 6c 65 73 73 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c e();.$borderless.->setHorizontal
dd520 42 6f 72 64 65 72 43 68 61 72 28 27 3d 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 BorderChar('=').->setVerticalBor
dd540 64 65 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 derChar('.').->setCrossingChar('
dd560 20 27 29 0a 3b 0a 0a 24 63 6f 6d 70 61 63 74 20 3d 20 6e 65 77 20 54 61 62 6c 65 53 74 79 6c 65 .').;..$compact.=.new.TableStyle
dd580 28 29 3b 0a 24 63 6f 6d 70 61 63 74 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 ();.$compact.->setHorizontalBord
dd5a0 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 72 43 68 erChar('').->setVerticalBorderCh
dd5c0 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 0a 2d 3e ar('.').->setCrossingChar('').->
dd5e0 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 27 29 0a 3b 0a setCellRowContentFormat('%s').;.
dd600 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 6e 65 77 20 .return.array(.'default'.=>.new.
dd620 54 61 62 6c 65 53 74 79 6c 65 28 29 2c 0a 27 62 6f 72 64 65 72 6c 65 73 73 27 20 3d 3e 20 24 62 TableStyle(),.'borderless'.=>.$b
dd640 6f 72 64 65 72 6c 65 73 73 2c 0a 27 63 6f 6d 70 61 63 74 27 20 3d 3e 20 24 63 6f 6d 70 61 63 74 orderless,.'compact'.=>.$compact
dd660 2c 0a 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 ,.);.}.}.<?php...........namespa
dd680 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c ce.Symfony\Component\Console\Hel
dd6a0 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 per;..use.Symfony\Component\Cons
dd6c0 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;.....
dd6e0 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 67 72 65 73 73 42 61 72 0a 7b 0a 0a 20 70 72 69 76 61 74 65 ...class.ProgressBar.{...private
dd700 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
dd720 72 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 27 2d 27 3b 0a r;.private.$emptyBarChar.=.'-';.
dd740 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 27 3e 27 3b 0a 70 72 69 private.$progressChar.=.'>';.pri
dd760 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 72 65 vate.$format.=.null;.private.$re
dd780 64 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 drawFreq.=.1;.....private.$outpu
dd7a0 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 65 70 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 6d t;.private.$step.=.0;.private.$m
dd7c0 61 78 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 70 72 69 76 61 74 65 20 ax;.private.$startTime;.private.
dd7e0 24 73 74 65 70 57 69 64 74 68 3b 0a 70 72 69 76 61 74 65 20 24 70 65 72 63 65 6e 74 20 3d 20 30 $stepWidth;.private.$percent.=.0
dd800 2e 30 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 .0;.private.$lastMessagesLength.
dd820 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 3b 0a 70 =.0;.private.$formatLineCount;.p
dd840 72 69 76 61 74 65 20 24 6d 65 73 73 61 67 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 76 65 72 77 rivate.$messages;.private.$overw
dd860 72 69 74 65 20 3d 20 74 72 75 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 66 6f rite.=.true;..private.static.$fo
dd880 72 6d 61 74 74 65 72 73 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 66 6f 72 6d 61 74 rmatters;.private.static.$format
dd8a0 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 s;........public.function.__cons
dd8c0 74 72 75 63 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 truct(OutputInterface.$output,.$
dd8e0 6d 61 78 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 max.=.0).{.$this->output.=.$outp
dd900 75 74 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4d 61 78 53 74 65 70 73 28 24 6d 61 78 29 3b 0a 0a 69 ut;.$this->setMaxSteps($max);..i
dd920 66 20 28 21 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 f.(!$this->output->isDecorated()
dd940 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 20 3d 20 66 61 6c 73 65 3b 0a ).{...$this->overwrite.=.false;.
dd960 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 31 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d .if.($this->max.>.10).{...$this-
dd980 3e 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 79 28 24 6d 61 78 20 2f 20 31 30 29 3b 0a >setRedrawFrequency($max./.10);.
dd9a0 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 46 6f 72 6d 61 74 28 24 74 68 69 73 2d 3e 64 65 74 }.}..$this->setFormat($this->det
dd9c0 65 72 6d 69 6e 65 42 65 73 74 46 6f 72 6d 61 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 ermineBestFormat());..$this->sta
dd9e0 72 74 54 69 6d 65 20 3d 20 74 69 6d 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rtTime.=.time();.}..........publ
dda00 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 6c 61 63 65 68 6f 6c 64 65 ic.static.function.setPlaceholde
dda20 72 46 6f 72 6d 61 74 74 65 72 44 65 66 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 63 61 6c rFormatterDefinition($name,.$cal
dda40 6c 61 62 6c 65 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 29 lable).{.if.(!self::$formatters)
dda60 20 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 20 3d 20 73 65 6c 66 3a 3a 69 6e 69 .{.self::$formatters.=.self::ini
dda80 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 73 28 29 3b 0a 7d 0a 0a 73 65 6c tPlaceholderFormatters();.}..sel
ddaa0 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 61 6c 6c 61 62 6c f::$formatters[$name].=.$callabl
ddac0 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 e;.}.........public.static.funct
ddae0 69 6f 6e 20 67 65 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 44 65 66 69 6e ion.getPlaceholderFormatterDefin
ddb00 69 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 ition($name).{.if.(!self::$forma
ddb20 74 74 65 72 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 20 3d 20 73 65 6c tters).{.self::$formatters.=.sel
ddb40 66 3a 3a 69 6e 69 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 73 28 29 3b 0a f::initPlaceholderFormatters();.
ddb60 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 }..return.isset(self::$formatter
ddb80 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 5b 24 6e s[$name]).?.self::$formatters[$n
ddba0 61 6d 65 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 ame].:.null;.}..........public.s
ddbc0 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 tatic.function.setFormatDefiniti
ddbe0 6f 6e 28 24 6e 61 6d 65 2c 20 24 66 6f 72 6d 61 74 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a on($name,.$format).{.if.(!self::
ddc00 24 66 6f 72 6d 61 74 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 73 20 3d 20 73 65 6c $formats).{.self::$formats.=.sel
ddc20 66 3a 3a 69 6e 69 74 46 6f 72 6d 61 74 73 28 29 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d f::initFormats();.}..self::$form
ddc40 61 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ats[$name].=.$format;.}.........
ddc60 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 46 6f 72 6d 61 74 public.static.function.getFormat
ddc80 44 65 66 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 Definition($name).{.if.(!self::$
ddca0 66 6f 72 6d 61 74 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 73 20 3d 20 73 65 6c 66 formats).{.self::$formats.=.self
ddcc0 3a 3a 69 6e 69 74 46 6f 72 6d 61 74 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 ::initFormats();.}..return.isset
ddce0 28 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 73 65 6c 66 3a 3a (self::$formats[$name]).?.self::
ddd00 24 66 6f 72 6d 61 74 73 5b 24 6e 61 6d 65 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 $formats[$name].:.null;.}..publi
ddd20 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 65 73 73 61 67 65 28 24 6d 65 73 73 61 67 65 2c 20 c.function.setMessage($message,.
ddd40 24 6e 61 6d 65 20 3d 20 27 6d 65 73 73 61 67 65 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 $name.=.'message').{.$this->mess
ddd60 61 67 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 ages[$name].=.$message;.}..publi
ddd80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 24 6e 61 6d 65 20 3d 20 27 6d c.function.getMessage($name.=.'m
ddda0 65 73 73 61 67 65 27 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 essage').{.return.$this->message
dddc0 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s[$name];.}.......public.functio
ddde0 6e 20 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d n.getStartTime().{.return.$this-
dde00 3e 73 74 61 72 74 54 69 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >startTime;.}.......public.funct
dde20 69 6f 6e 20 67 65 74 4d 61 78 53 74 65 70 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ion.getMaxSteps().{.return.$this
dde40 2d 3e 6d 61 78 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 ->max;.}.........public.function
dde60 20 67 65 74 53 74 65 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 .getStep().{.return.$this->getPr
dde80 6f 67 72 65 73 73 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 ogress();.}.......public.functio
ddea0 6e 20 67 65 74 50 72 6f 67 72 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getProgress().{.return.$this->
ddec0 73 74 65 70 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 step;.}.........public.function.
ddee0 67 65 74 53 74 65 70 57 69 64 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 getStepWidth().{.return.$this->s
ddf00 74 65 70 57 69 64 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tepWidth;.}.......public.functio
ddf20 6e 20 67 65 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 n.getProgressPercent().{.return.
ddf40 24 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $this->percent;.}.......public.f
ddf60 75 6e 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 unction.setBarWidth($size).{.$th
ddf80 69 73 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 is->barWidth.=.(int).$size;.}...
ddfa0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 61 72 57 69 64 74 68 28 ....public.function.getBarWidth(
ddfc0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 0a 0a ).{.return.$this->barWidth;.}...
ddfe0 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 72 43 68 61 72 61 63 ....public.function.setBarCharac
de000 74 65 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 ter($char).{.$this->barChar.=.$c
de020 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 20 67 65 74 har;.}.......public.function.get
de040 42 61 72 43 68 61 72 61 63 74 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 BarCharacter().{.if.(null.===.$t
de060 68 69 73 2d 3e 62 61 72 43 68 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 his->barChar).{.return.$this->ma
de080 78 20 3f 20 27 3d 27 20 3a 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d x.?.'='.:.$this->emptyBarChar;.}
de0a0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a ..return.$this->barChar;.}......
de0c0 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 42 61 72 43 68 61 72 .public.function.setEmptyBarChar
de0e0 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 acter($char).{.$this->emptyBarCh
de100 61 72 20 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 ar.=.$char;.}.......public.funct
de120 69 6f 6e 20 67 65 74 45 6d 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 29 0a 7b 0a 72 65 74 ion.getEmptyBarCharacter().{.ret
de140 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a urn.$this->emptyBarChar;.}......
de160 0a 70 75 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 .public.function.setProgressChar
de180 61 63 74 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 acter($char).{.$this->progressCh
de1a0 61 72 20 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 ar.=.$char;.}.......public.funct
de1c0 69 6f 6e 20 67 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 28 29 0a 7b 0a 72 65 74 ion.getProgressCharacter().{.ret
de1e0 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a urn.$this->progressChar;.}......
de200 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 28 24 66 6f 72 6d .public.function.setFormat($form
de220 61 74 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 78 20 26 26 20 6e 75 6c 6c 20 at).{...if.(!$this->max.&&.null.
de240 21 3d 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 !==.self::getFormatDefinition($f
de260 6f 72 6d 61 74 2e 27 5f 6e 6f 6d 61 78 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 ormat.'_nomax')).{.$this->format
de280 20 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f .=.self::getFormatDefinition($fo
de2a0 72 6d 61 74 2e 27 5f 6e 6f 6d 61 78 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 6e 75 6c 6c 20 21 rmat.'_nomax');.}.elseif.(null.!
de2c0 3d 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f ==.self::getFormatDefinition($fo
de2e0 72 6d 61 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 67 rmat)).{.$this->format.=.self::g
de300 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f 72 6d 61 74 29 3b 0a 7d 20 65 etFormatDefinition($format);.}.e
de320 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d lse.{.$this->format.=.$format;.}
de340 0a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 20 3d 20 73 75 62 73 74 ..$this->formatLineCount.=.subst
de360 72 5f 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 2c 20 22 5c 6e 22 29 3b 0a 7d 0a r_count($this->format,."\n");.}.
de380 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 64 72 61 77 46 ......public.function.setRedrawF
de3a0 72 65 71 75 65 6e 63 79 28 24 66 72 65 71 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 requency($freq).{.$this->redrawF
de3c0 72 65 71 20 3d 20 28 69 6e 74 29 20 24 66 72 65 71 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 req.=.(int).$freq;.}.......publi
de3e0 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 6d 61 78 20 3d 20 6e 75 6c 6c 29 0a 7b 0a c.function.start($max.=.null).{.
de400 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 74 69 6d 65 28 29 3b 0a 24 74 68 69 73 $this->startTime.=.time();.$this
de420 2d 3e 73 74 65 70 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 20 3d 20 30 2e 30 ->step.=.0;.$this->percent.=.0.0
de440 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 73 ;..if.(null.!==.$max).{.$this->s
de460 65 74 4d 61 78 53 74 65 70 73 28 24 6d 61 78 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 73 70 etMaxSteps($max);.}..$this->disp
de480 6c 61 79 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 lay();.}.........public.function
de4a0 20 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 .advance($step.=.1).{.$this->set
de4c0 50 72 6f 67 72 65 73 73 28 24 74 68 69 73 2d 3e 73 74 65 70 20 2b 20 24 73 74 65 70 29 3b 0a 7d Progress($this->step.+.$step);.}
de4e0 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 43 75 ...........public.function.setCu
de500 72 72 65 6e 74 28 24 73 74 65 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 67 72 65 73 rrent($step).{.$this->setProgres
de520 73 28 24 73 74 65 70 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 s($step);.}.......public.functio
de540 6e 20 73 65 74 4f 76 65 72 77 72 69 74 65 28 24 6f 76 65 72 77 72 69 74 65 29 0a 7b 0a 24 74 68 n.setOverwrite($overwrite).{.$th
de560 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 20 3d 20 28 62 6f 6f 6c 29 20 24 6f 76 65 72 77 72 69 74 is->overwrite.=.(bool).$overwrit
de580 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 e;.}.........public.function.set
de5a0 50 72 6f 67 72 65 73 73 28 24 73 74 65 70 29 0a 7b 0a 24 73 74 65 70 20 3d 20 28 69 6e 74 29 20 Progress($step).{.$step.=.(int).
de5c0 24 73 74 65 70 3b 0a 69 66 20 28 24 73 74 65 70 20 3c 20 24 74 68 69 73 2d 3e 73 74 65 70 29 20 $step;.if.($step.<.$this->step).
de5e0 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 6f 75 {.throw.new.\LogicException('You
de600 20 63 61 6e 5c 27 74 20 72 65 67 72 65 73 73 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 .can\'t.regress.the.progress.bar
de620 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 26 26 20 24 73 74 65 70 20 .');.}..if.($this->max.&&.$step.
de640 3e 20 24 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 3d 20 24 73 74 >.$this->max).{.$this->max.=.$st
de660 65 70 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 ep;.}..$prevPeriod.=.intval($thi
de680 73 2d 3e 73 74 65 70 20 2f 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 29 3b 0a 24 63 s->step./.$this->redrawFreq);.$c
de6a0 75 72 72 50 65 72 69 6f 64 20 3d 20 69 6e 74 76 61 6c 28 24 73 74 65 70 20 2f 20 24 74 68 69 73 urrPeriod.=.intval($step./.$this
de6c0 2d 3e 72 65 64 72 61 77 46 72 65 71 29 3b 0a 24 74 68 69 73 2d 3e 73 74 65 70 20 3d 20 24 73 74 ->redrawFreq);.$this->step.=.$st
de6e0 65 70 3b 0a 24 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 20 ep;.$this->percent.=.$this->max.
de700 3f 20 28 66 6c 6f 61 74 29 20 24 74 68 69 73 2d 3e 73 74 65 70 20 2f 20 24 74 68 69 73 2d 3e 6d ?.(float).$this->step./.$this->m
de720 61 78 20 3a 20 30 3b 0a 69 66 20 28 24 70 72 65 76 50 65 72 69 6f 64 20 21 3d 3d 20 24 63 75 72 ax.:.0;.if.($prevPeriod.!==.$cur
de740 72 50 65 72 69 6f 64 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 20 3d 3d 3d 20 24 73 74 65 70 29 rPeriod.||.$this->max.===.$step)
de760 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 0a 70 75 62 .{.$this->display();.}.}.....pub
de780 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 lic.function.finish().{.if.(!$th
de7a0 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 3d 20 24 74 68 69 73 2d 3e 73 is->max).{.$this->max.=.$this->s
de7c0 74 65 70 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 65 70 20 3d 3d 3d 20 24 74 68 69 tep;.}..if.($this->step.===.$thi
de7e0 73 2d 3e 6d 61 78 20 26 26 20 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 29 20 7b 0a 0a s->max.&&.!$this->overwrite).{..
de800 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 67 72 65 73 73 28 24 .return;.}..$this->setProgress($
de820 74 68 69 73 2d 3e 6d 61 78 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f this->max);.}.....public.functio
de840 6e 20 64 69 73 70 6c 61 79 28 29 0a 7b 0a 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 n.display().{.if.(OutputInterfac
de860 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 75 e::VERBOSITY_QUIET.===.$this->ou
de880 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a tput->getVerbosity()).{.return;.
de8a0 7d 0a 0a 0a 20 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 }....$self.=.$this;.$output.=.$t
de8c0 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e his->output;.$messages.=.$this->
de8e0 6d 65 73 73 61 67 65 73 3b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 28 70 72 65 67 5f messages;.$this->overwrite(preg_
de900 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 25 28 5b 61 2d 7a 5c 2d 5f 5d 2b 29 28 replace_callback("{%([a-z\-_]+)(
de920 3f 3a 5c 3a 28 5b 5e 25 5d 2b 29 29 3f 25 7d 69 22 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 ?:\:([^%]+))?%}i",.function.($ma
de940 74 63 68 65 73 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 tches).use.($self,.$output,.$mes
de960 73 61 67 65 73 29 20 7b 0a 69 66 20 28 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 73 65 6c 66 3a sages).{.if.($formatter.=.$self:
de980 3a 67 65 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 44 65 66 69 6e 69 74 69 :getPlaceholderFormatterDefiniti
de9a0 6f 6e 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 63 61 6c 6c 5f on($matches[1])).{.$text.=.call_
de9c0 75 73 65 72 5f 66 75 6e 63 28 24 66 6f 72 6d 61 74 74 65 72 2c 20 24 73 65 6c 66 2c 20 24 6f 75 user_func($formatter,.$self,.$ou
de9e0 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 65 73 73 61 67 65 73 tput);.}.elseif.(isset($messages
dea00 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 24 6d 65 73 73 61 [$matches[1]])).{.$text.=.$messa
dea20 67 65 73 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 ges[$matches[1]];.}.else.{.retur
dea40 6e 20 24 6d 61 74 63 68 65 73 5b 30 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 n.$matches[0];.}..if.(isset($mat
dea60 63 68 65 73 5b 32 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 73 70 72 69 6e 74 66 28 27 25 27 2e ches[2])).{.$text.=.sprintf('%'.
dea80 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 $matches[2],.$text);.}..return.$
deaa0 74 65 78 74 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a text;.},.$this->format));.}.....
deac0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 28 29 0a 7b 0a 69 66 ....public.function.clear().{.if
deae0 20 28 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d .(!$this->overwrite).{.return;.}
deb00 0a 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c ..$this->overwrite(str_repeat("\
deb20 6e 22 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 29 29 3b 0a 7d 0a n",.$this->formatLineCount));.}.
deb40 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 61 78 53 74 65 ......private.function.setMaxSte
deb60 70 73 28 24 6d 61 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 3d 20 6d 61 78 28 30 2c 20 28 ps($max).{.$this->max.=.max(0,.(
deb80 69 6e 74 29 20 24 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e 73 74 65 70 57 69 64 74 68 20 3d 20 24 int).$max);.$this->stepWidth.=.$
deba0 74 68 69 73 2d 3e 6d 61 78 20 3f 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 28 24 74 68 69 73 this->max.?.Helper::strlen($this
debc0 2d 3e 6d 61 78 29 20 3a 20 34 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ->max).:.4;.}.......private.func
debe0 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6c 69 6e 65 tion.overwrite($message).{.$line
dec00 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 20 s.=.explode("\n",.$message);....
dec20 69 66 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 if.(null.!==.$this->lastMessages
dec40 4c 65 6e 67 74 68 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 69 20 Length).{.foreach.($lines.as.$i.
dec60 3d 3e 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 =>.$line).{.if.($this->lastMessa
dec80 67 65 73 4c 65 6e 67 74 68 20 3e 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 69 74 68 6f 75 gesLength.>.Helper::strlenWithou
deca0 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f tDecoration($this->output->getFo
decc0 72 6d 61 74 74 65 72 28 29 2c 20 24 6c 69 6e 65 29 29 20 7b 0a 24 6c 69 6e 65 73 5b 24 69 5d 20 rmatter(),.$line)).{.$lines[$i].
dece0 3d 20 73 74 72 5f 70 61 64 28 24 6c 69 6e 65 2c 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 =.str_pad($line,.$this->lastMess
ded00 61 67 65 73 4c 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 agesLength,."\x20",.STR_PAD_RIGH
ded20 54 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 29 T);.}.}.}..if.($this->overwrite)
ded40 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 78 30 44 22 .{...$this->output->write("\x0D"
ded60 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 73 74 65 70 20 3e 20 30 29 20 7b 0a );.}.elseif.($this->step.>.0).{.
ded80 0a 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a ..$this->output->writeln('');.}.
deda0 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 29 20 7b 0a 24 .if.($this->formatLineCount).{.$
dedc0 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 22 5c 30 33 this->output->write(sprintf("\03
dede0 33 5b 25 64 41 22 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 29 29 3[%dA",.$this->formatLineCount))
dee00 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 69 6d 70 6c 6f 64 65 ;.}.$this->output->write(implode
dee20 28 22 5c 6e 22 2c 20 24 6c 69 6e 65 73 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 ("\n",.$lines));..$this->lastMes
dee40 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 sagesLength.=.0;.foreach.($lines
dee60 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 65 6e 20 3d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c .as.$line).{.$len.=.Helper::strl
dee80 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 enWithoutDecoration($this->outpu
deea0 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 t->getFormatter(),.$line);.if.($
deec0 6c 65 6e 20 3e 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 68 29 len.>.$this->lastMessagesLength)
deee0 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 24 .{.$this->lastMessagesLength.=.$
def00 6c 65 6e 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 64 65 74 len;.}.}.}..private.function.det
def20 65 72 6d 69 6e 65 42 65 73 74 46 6f 72 6d 61 74 28 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 74 68 ermineBestFormat().{.switch.($th
def40 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 29 20 7b 0a 0a 20 is->output->getVerbosity()).{...
def60 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f case.OutputInterface::VERBOSITY_
def80 56 45 52 42 4f 53 45 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 76 65 VERBOSE:.return.$this->max.?.'ve
defa0 72 62 6f 73 65 27 20 3a 20 27 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 3b 0a 63 61 73 65 20 4f rbose'.:.'verbose_nomax';.case.O
defc0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 utputInterface::VERBOSITY_VERY_V
defe0 45 52 42 4f 53 45 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 76 65 72 ERBOSE:.return.$this->max.?.'ver
df000 79 5f 76 65 72 62 6f 73 65 27 20 3a 20 27 76 65 72 79 5f 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 y_verbose'.:.'very_verbose_nomax
df020 27 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 ';.case.OutputInterface::VERBOSI
df040 54 59 5f 44 45 42 55 47 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 64 TY_DEBUG:.return.$this->max.?.'d
df060 65 62 75 67 27 20 3a 20 27 64 65 62 75 67 5f 6e 6f 6d 61 78 27 3b 0a 64 65 66 61 75 6c 74 3a 0a ebug'.:.'debug_nomax';.default:.
df080 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 6e 6f 72 6d 61 6c 27 20 3a 20 27 return.$this->max.?.'normal'.:.'
df0a0 6e 6f 72 6d 61 6c 5f 6e 6f 6d 61 78 27 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 normal_nomax';.}.}..private.stat
df0c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 ic.function.initPlaceholderForma
df0e0 74 74 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 62 61 72 27 20 3d 3e tters().{.return.array(.'bar'.=>
df100 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 2c 20 4f 75 74 .function.(ProgressBar.$bar,.Out
df120 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 putInterface.$output).{.$complet
df140 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 eBars.=.floor($bar->getMaxSteps(
df160 29 20 3e 20 30 20 3f 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 ).>.0.?.$bar->getProgressPercent
df180 28 29 20 2a 20 24 62 61 72 2d 3e 67 65 74 42 61 72 57 69 64 74 68 28 29 20 3a 20 24 62 61 72 2d ().*.$bar->getBarWidth().:.$bar-
df1a0 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 20 25 20 24 62 61 72 2d 3e 67 65 74 42 61 72 57 69 64 >getProgress().%.$bar->getBarWid
df1c0 74 68 28 29 29 3b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 62 61 th());.$display.=.str_repeat($ba
df1e0 72 2d 3e 67 65 74 42 61 72 43 68 61 72 61 63 74 65 72 28 29 2c 20 24 63 6f 6d 70 6c 65 74 65 42 r->getBarCharacter(),.$completeB
df200 61 72 73 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3c 20 24 62 61 72 2d 3e ars);.if.($completeBars.<.$bar->
df220 67 65 74 42 61 72 57 69 64 74 68 28 29 29 20 7b 0a 24 65 6d 70 74 79 42 61 72 73 20 3d 20 24 62 getBarWidth()).{.$emptyBars.=.$b
df240 61 72 2d 3e 67 65 74 42 61 72 57 69 64 74 68 28 29 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 ar->getBarWidth().-.$completeBar
df260 73 20 2d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 s.-.Helper::strlenWithoutDecorat
df280 69 6f 6e 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 62 61 ion($output->getFormatter(),.$ba
df2a0 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 28 29 29 3b 0a 24 64 69 73 r->getProgressCharacter());.$dis
df2c0 70 6c 61 79 20 2e 3d 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 play..=.$bar->getProgressCharact
df2e0 65 72 28 29 2e 73 74 72 5f 72 65 70 65 61 74 28 24 62 61 72 2d 3e 67 65 74 45 6d 70 74 79 42 61 er().str_repeat($bar->getEmptyBa
df300 72 43 68 61 72 61 63 74 65 72 28 29 2c 20 24 65 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 72 65 rCharacter(),.$emptyBars);.}..re
df320 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 66 turn.$display;.},.'elapsed'.=>.f
df340 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 unction.(ProgressBar.$bar).{.ret
df360 75 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d 61 74 54 69 6d 65 28 74 69 6d 65 28 29 20 2d 20 urn.Helper::formatTime(time().-.
df380 24 62 61 72 2d 3e 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 29 3b 0a 7d 2c 0a 27 72 65 6d 61 69 $bar->getStartTime());.},.'remai
df3a0 6e 69 6e 67 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 ning'.=>.function.(ProgressBar.$
df3c0 62 61 72 29 20 7b 0a 69 66 20 28 21 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 29 bar).{.if.(!$bar->getMaxSteps())
df3e0 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 55 6e .{.throw.new.\LogicException('Un
df400 61 62 6c 65 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 74 69 able.to.display.the.remaining.ti
df420 6d 65 20 69 66 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 73 74 65 70 me.if.the.maximum.number.of.step
df440 73 20 69 73 20 6e 6f 74 20 73 65 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 62 61 72 2d 3e 67 s.is.not.set.');.}..if.(!$bar->g
df460 65 74 50 72 6f 67 72 65 73 73 28 29 29 20 7b 0a 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 30 3b 0a etProgress()).{.$remaining.=.0;.
df480 7d 20 65 6c 73 65 20 7b 0a 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 72 6f 75 6e 64 28 28 74 69 6d }.else.{.$remaining.=.round((tim
df4a0 65 28 29 20 2d 20 24 62 61 72 2d 3e 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 29 20 2f 20 24 62 e().-.$bar->getStartTime())./.$b
df4c0 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 20 2a 20 28 24 62 61 72 2d 3e 67 65 74 4d 61 ar->getProgress().*.($bar->getMa
df4e0 78 53 74 65 70 73 28 29 20 2d 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 29 29 xSteps().-.$bar->getProgress()))
df500 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d 61 74 54 69 6d 65 28 24 ;.}..return.Helper::formatTime($
df520 72 65 6d 61 69 6e 69 6e 67 29 3b 0a 7d 2c 0a 27 65 73 74 69 6d 61 74 65 64 27 20 3d 3e 20 66 75 remaining);.},.'estimated'.=>.fu
df540 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 69 66 20 28 nction.(ProgressBar.$bar).{.if.(
df560 21 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 !$bar->getMaxSteps()).{.throw.ne
df580 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 64 69 73 w.\LogicException('Unable.to.dis
df5a0 70 6c 61 79 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 74 69 6d 65 20 69 66 20 74 68 65 20 6d play.the.estimated.time.if.the.m
df5c0 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 73 74 65 70 73 20 69 73 20 6e 6f 74 20 73 65 aximum.number.of.steps.is.not.se
df5e0 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 t.');.}..if.(!$bar->getProgress(
df600 29 29 20 7b 0a 24 65 73 74 69 6d 61 74 65 64 20 3d 20 30 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 )).{.$estimated.=.0;.}.else.{.$e
df620 73 74 69 6d 61 74 65 64 20 3d 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 20 2d 20 24 62 61 72 2d stimated.=.round((time().-.$bar-
df640 3e 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 29 20 2f 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 >getStartTime())./.$bar->getProg
df660 72 65 73 73 28 29 20 2a 20 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 29 3b 0a 7d ress().*.$bar->getMaxSteps());.}
df680 0a 0a 72 65 74 75 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d 61 74 54 69 6d 65 28 24 65 73 74 ..return.Helper::formatTime($est
df6a0 69 6d 61 74 65 64 29 3b 0a 7d 2c 0a 27 6d 65 6d 6f 72 79 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e imated);.},.'memory'.=>.function
df6c0 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 48 65 6c .(ProgressBar.$bar).{.return.Hel
df6e0 70 65 72 3a 3a 66 6f 72 6d 61 74 4d 65 6d 6f 72 79 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 per::formatMemory(memory_get_usa
df700 67 65 28 74 72 75 65 29 29 3b 0a 7d 2c 0a 27 63 75 72 72 65 6e 74 27 20 3d 3e 20 66 75 6e 63 74 ge(true));.},.'current'.=>.funct
df720 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 ion.(ProgressBar.$bar).{.return.
df740 73 74 72 5f 70 61 64 28 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 2c 20 24 62 61 str_pad($bar->getProgress(),.$ba
df760 72 2d 3e 67 65 74 53 74 65 70 57 69 64 74 68 28 29 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f r->getStepWidth(),.'.',.STR_PAD_
df780 4c 45 46 54 29 3b 0a 7d 2c 0a 27 6d 61 78 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f LEFT);.},.'max'.=>.function.(Pro
df7a0 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 61 72 2d 3e 67 65 gressBar.$bar).{.return.$bar->ge
df7c0 74 4d 61 78 53 74 65 70 73 28 29 3b 0a 7d 2c 0a 27 70 65 72 63 65 6e 74 27 20 3d 3e 20 66 75 6e tMaxSteps();.},.'percent'.=>.fun
df7e0 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 ction.(ProgressBar.$bar).{.retur
df800 6e 20 66 6c 6f 6f 72 28 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 n.floor($bar->getProgressPercent
df820 28 29 20 2a 20 31 30 30 29 3b 0a 7d 2c 0a 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 ().*.100);.},.);.}..private.stat
df840 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 46 6f 72 6d 61 74 73 28 29 0a 7b 0a 72 65 74 75 ic.function.initFormats().{.retu
df860 72 6e 20 61 72 72 61 79 28 0a 27 6e 6f 72 6d 61 6c 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 rn.array(.'normal'.=>.'.%current
df880 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 3a 33 73 25 25 27 2c 0a %/%max%.[%bar%].%percent:3s%%',.
df8a0 27 6e 6f 72 6d 61 6c 5f 6e 6f 6d 61 78 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 'normal_nomax'.=>.'.%current%.[%
df8c0 62 61 72 25 5d 27 2c 0a 0a 27 76 65 72 62 6f 73 65 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 bar%]',..'verbose'.=>.'.%current
df8e0 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 3a 33 73 25 25 20 25 65 %/%max%.[%bar%].%percent:3s%%.%e
df900 6c 61 70 73 65 64 3a 36 73 25 27 2c 0a 27 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 20 3d 3e 20 lapsed:6s%',.'verbose_nomax'.=>.
df920 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 25 65 6c 61 70 73 65 64 3a 36 73 25 '.%current%.[%bar%].%elapsed:6s%
df940 27 2c 0a 0a 27 76 65 72 79 5f 76 65 72 62 6f 73 65 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 ',..'very_verbose'.=>.'.%current
df960 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 3a 33 73 25 25 20 25 65 %/%max%.[%bar%].%percent:3s%%.%e
df980 6c 61 70 73 65 64 3a 36 73 25 2f 25 65 73 74 69 6d 61 74 65 64 3a 2d 36 73 25 27 2c 0a 27 76 65 lapsed:6s%/%estimated:-6s%',.'ve
df9a0 72 79 5f 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 ry_verbose_nomax'.=>.'.%current%
df9c0 20 5b 25 62 61 72 25 5d 20 25 65 6c 61 70 73 65 64 3a 36 73 25 27 2c 0a 0a 27 64 65 62 75 67 27 .[%bar%].%elapsed:6s%',..'debug'
df9e0 20 3d 3e 20 27 20 25 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 .=>.'.%current%/%max%.[%bar%].%p
dfa00 65 72 63 65 6e 74 3a 33 73 25 25 20 25 65 6c 61 70 73 65 64 3a 36 73 25 2f 25 65 73 74 69 6d 61 ercent:3s%%.%elapsed:6s%/%estima
dfa20 74 65 64 3a 2d 36 73 25 20 25 6d 65 6d 6f 72 79 3a 36 73 25 27 2c 0a 27 64 65 62 75 67 5f 6e 6f ted:-6s%.%memory:6s%',.'debug_no
dfa40 6d 61 78 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 25 65 6c 61 max'.=>.'.%current%.[%bar%].%ela
dfa60 70 73 65 64 3a 36 73 25 20 25 6d 65 6d 6f 72 79 3a 36 73 25 27 2c 0a 29 3b 0a 7d 0a 7d 0a 3c 3f psed:6s%.%memory:6s%',.);.}.}.<?
dfa80 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\
dfaa0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 Component\Console\Helper;..use.S
dfac0 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 63 72 69 70 ymfony\Component\Console\Descrip
dfae0 74 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 tor\DescriptorInterface;.use.Sym
dfb00 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 6f fony\Component\Console\Descripto
dfb20 72 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 r\JsonDescriptor;.use.Symfony\Co
dfb40 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 4d 61 72 6b 64 mponent\Console\Descriptor\Markd
dfb60 6f 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 ownDescriptor;.use.Symfony\Compo
dfb80 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 44 65 73 63 nent\Console\Descriptor\TextDesc
dfba0 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 5c 43 6f riptor;.use.Symfony\Component\Co
dfbc0 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 6f 72 3b 0a nsole\Descriptor\XmlDescriptor;.
dfbe0 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
dfc00 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 tput\OutputInterface;.......clas
dfc20 73 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 s.DescriptorHelper.extends.Helpe
dfc40 72 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 r.{....private.$descriptors.=.ar
dfc60 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
dfc80 73 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 struct().{.$this.->register('txt
dfca0 27 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 ',.new.TextDescriptor()).->regis
dfcc0 74 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 ter('xml',.new.XmlDescriptor()).
dfce0 2d 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 ->register('json',.new.JsonDescr
dfd00 69 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 iptor()).->register('md',.new.Ma
dfd20 72 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 rkdownDescriptor()).;.}.........
dfd40 0a 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 ......public.function.describe(O
dfd60 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 6f 62 6a 65 63 74 2c utputInterface.$output,.$object,
dfd80 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 6f 70 .array.$options.=.array()).{.$op
dfda0 74 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 tions.=.array_merge(array(.'raw_
dfdc0 74 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 text'.=>.false,.'format'.=>.'txt
dfde0 27 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 ',.),.$options);..if.(!isset($th
dfe00 69 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 is->descriptors[$options['format
dfe20 27 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 ']])).{.throw.new.\InvalidArgume
dfe40 6e 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 ntException(sprintf('Unsupported
dfe60 20 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 .format."%s".',.$options['format
dfe80 27 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 ']));.}..$descriptor.=.$this->de
dfea0 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 5d 5d 3b 0a 24 scriptors[$options['format']];.$
dfec0 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 75 74 2c 20 24 6f descriptor->describe($output,.$o
dfee0 62 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 bject,.$options);.}..........pub
dff00 6c 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 lic.function.register($format,.D
dff20 65 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 escriptorInterface.$descriptor).
dff40 7b 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 {.$this->descriptors[$format].=.
dff60 24 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 $descriptor;..return.$this;.}...
dff80 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 65 ..public.function.getName().{.re
dffa0 74 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 turn.'descriptor';.}.}.<?php....
dffc0 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
dffe0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c nt\Console\Helper;..use.Symfony\
e0000 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 74 70 Component\Console\Formatter\Outp
e0020 75 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 utFormatter;.......class.Formatt
e0040 65 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 erHelper.extends.Helper.{.......
e0060 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 53 65 63 74 69 6f 6e ...public.function.formatSection
e0080 28 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 ($section,.$message,.$style.=.'i
e00a0 6e 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 nfo').{.return.sprintf('<%s>[%s]
e00c0 3c 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 </%s>.%s',.$style,.$section,.$st
e00e0 79 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 yle,.$message);.}...........publ
e0100 69 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 ic.function.formatBlock($message
e0120 73 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 69 66 20 s,.$style,.$large.=.false).{.if.
e0140 28 21 69 73 5f 61 72 72 61 79 28 24 6d 65 73 73 61 67 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 (!is_array($messages)).{.$messag
e0160 65 73 20 3d 20 61 72 72 61 79 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 24 6c 65 6e 20 3d es.=.array($messages);.}..$len.=
e0180 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 28 24 .0;.$lines.=.array();.foreach.($
e01a0 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 67 65 messages.as.$message).{.$message
e01c0 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 73 73 .=.OutputFormatter::escape($mess
e01e0 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 65 20 age);.$lines[].=.sprintf($large.
e0200 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 3b 0a ?.'..%s..'.:.'.%s.',.$message);.
e0220 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 61 67 $len.=.max($this->strlen($messag
e0240 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 7d 0a e).+.($large.?.4.:.2),.$len);.}.
e0260 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 72 5f .$messages.=.$large.?.array(str_
e0280 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 66 6f repeat('.',.$len)).:.array();.fo
e02a0 72 20 28 24 69 20 3d 20 30 3b 20 69 73 73 65 74 28 24 6c 69 6e 65 73 5b 24 69 5d 29 3b 20 2b 2b r.($i.=.0;.isset($lines[$i]);.++
e02c0 24 69 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 73 5b 24 69 5d 2e 73 $i).{.$messages[].=.$lines[$i].s
e02e0 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 tr_repeat('.',.$len.-.$this->str
e0300 6c 65 6e 28 24 6c 69 6e 65 73 5b 24 69 5d 29 29 3b 0a 7d 0a 69 66 20 28 24 6c 61 72 67 65 29 20 len($lines[$i]));.}.if.($large).
e0320 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 {.$messages[].=.str_repeat('.',.
e0340 24 6c 65 6e 29 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 69 73 73 65 74 28 24 6d 65 $len);.}..for.($i.=.0;.isset($me
e0360 73 73 61 67 65 73 5b 24 69 5d 29 3b 20 2b 2b 24 69 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 24 ssages[$i]);.++$i).{.$messages[$
e0380 69 5d 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 i].=.sprintf('<%s>%s</%s>',.$sty
e03a0 6c 65 2c 20 24 6d 65 73 73 61 67 65 73 5b 24 69 5d 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 le,.$messages[$i],.$style);.}..r
e03c0 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a eturn.implode("\n",.$messages);.
e03e0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a }.....public.function.getName().
e0400 7b 0a 72 65 74 75 72 6e 20 27 66 6f 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a {.return.'formatter';.}.}.<?php.
e0420 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
e0440 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 0a 0a 0a 0a 0a 63 6c onent\Console\Helper;.........cl
e0460 61 73 73 20 44 65 62 75 67 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 ass.DebugFormatterHelper.extends
e0480 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6c 6f 72 73 20 3d 20 61 72 72 61 .Helper.{.private.$colors.=.arra
e04a0 79 28 27 62 6c 61 63 6b 27 2c 20 27 72 65 64 27 2c 20 27 67 72 65 65 6e 27 2c 20 27 79 65 6c 6c y('black',.'red',.'green',.'yell
e04c0 6f 77 27 2c 20 27 62 6c 75 65 27 2c 20 27 6d 61 67 65 6e 74 61 27 2c 20 27 63 79 61 6e 27 2c 20 ow',.'blue',.'magenta',.'cyan',.
e04e0 27 77 68 69 74 65 27 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 65 64 20 3d 20 61 72 72 'white');.private.$started.=.arr
e0500 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 75 6e 74 20 3d 20 2d 31 3b 0a 0a 0a 0a 0a 0a ay();.private.$count.=.-1;......
e0520 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 69 64 2c 20 .....public.function.start($id,.
e0540 24 6d 65 73 73 61 67 65 2c 20 24 70 72 65 66 69 78 20 3d 20 27 52 55 4e 27 29 0a 7b 0a 24 74 68 $message,.$prefix.=.'RUN').{.$th
e0560 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 20 3d 20 61 72 72 61 79 28 27 62 6f 72 64 65 72 is->started[$id].=.array('border
e0580 27 20 3d 3e 20 2b 2b 24 74 68 69 73 2d 3e 63 6f 75 6e 74 20 25 20 63 6f 75 6e 74 28 24 74 68 69 '.=>.++$this->count.%.count($thi
e05a0 73 2d 3e 63 6f 6c 6f 72 73 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 25 73 s->colors));..return.sprintf("%s
e05c0 3c 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 3c 66 67 3d 62 6c <bg=blue;fg=white>.%s.</>.<fg=bl
e05e0 75 65 3e 25 73 3c 2f 3e 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 ue>%s</>\n",.$this->getBorder($i
e0600 64 29 2c 20 24 70 72 65 66 69 78 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a d),.$prefix,.$message);.}.......
e0620 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 67 72 65 73 73 28 24 ......public.function.progress($
e0640 69 64 2c 20 24 62 75 66 66 65 72 2c 20 24 65 72 72 6f 72 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 id,.$buffer,.$error.=.false,.$pr
e0660 65 66 69 78 20 3d 20 27 4f 55 54 27 2c 20 24 65 72 72 6f 72 50 72 65 66 69 78 20 3d 20 27 45 52 efix.=.'OUT',.$errorPrefix.=.'ER
e0680 52 27 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 R').{.$message.=.'';..if.($error
e06a0 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 ).{.if.(isset($this->started[$id
e06c0 5d 5b 27 6f 75 74 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 75 ]['out'])).{.$message..=."\n";.u
e06e0 6e 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 29 nset($this->started[$id]['out'])
e0700 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 ;.}.if.(!isset($this->started[$i
e0720 64 5d 5b 27 65 72 72 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 70 72 69 6e 74 d]['err'])).{.$message..=.sprint
e0740 66 28 22 25 73 3c 62 67 3d 72 65 64 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 22 2c f("%s<bg=red;fg=white>.%s.</>.",
e0760 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 64 29 2c 20 24 65 72 72 6f 72 50 72 .$this->getBorder($id),.$errorPr
e0780 65 66 69 78 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 efix);.$this->started[$id]['err'
e07a0 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 74 72 5f 72 65 70 ].=.true;.}..$message..=.str_rep
e07c0 6c 61 63 65 28 22 5c 6e 22 2c 20 73 70 72 69 6e 74 66 28 22 5c 6e 25 73 3c 62 67 3d 72 65 64 3b lace("\n",.sprintf("\n%s<bg=red;
e07e0 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f fg=white>.%s.</>.",.$this->getBo
e0800 72 64 65 72 28 24 69 64 29 2c 20 24 65 72 72 6f 72 50 72 65 66 69 78 29 2c 20 24 62 75 66 66 65 rder($id),.$errorPrefix),.$buffe
e0820 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 r);.}.else.{.if.(isset($this->st
e0840 61 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e arted[$id]['err'])).{.$message..
e0860 3d 20 22 5c 6e 22 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 =."\n";.unset($this->started[$id
e0880 5d 5b 27 65 72 72 27 5d 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 ]['err']);.}.if.(!isset($this->s
e08a0 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 tarted[$id]['out'])).{.$message.
e08c0 2e 3d 20 73 70 72 69 6e 74 66 28 22 25 73 3c 62 67 3d 67 72 65 65 6e 3b 66 67 3d 77 68 69 74 65 .=.sprintf("%s<bg=green;fg=white
e08e0 3e 20 25 73 20 3c 2f 3e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 64 >.%s.</>.",.$this->getBorder($id
e0900 29 2c 20 24 70 72 65 66 69 78 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d ),.$prefix);.$this->started[$id]
e0920 5b 27 6f 75 74 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 ['out'].=.true;.}..$message..=.s
e0940 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 73 70 72 69 6e 74 66 28 22 5c 6e 25 73 3c 62 tr_replace("\n",.sprintf("\n%s<b
e0960 67 3d 67 72 65 65 6e 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 22 2c 20 24 74 68 69 g=green;fg=white>.%s.</>.",.$thi
e0980 73 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 64 29 2c 20 24 70 72 65 66 69 78 29 2c 20 24 62 75 s->getBorder($id),.$prefix),.$bu
e09a0 66 66 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 0a 0a 0a ffer);.}..return.$message;.}....
e09c0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 69 64 ........public.function.stop($id
e09e0 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 75 63 63 65 73 73 66 75 6c 2c 20 24 70 72 65 66 69 78 ,.$message,.$successful,.$prefix
e0a00 20 3d 20 27 52 45 53 27 29 0a 7b 0a 24 74 72 61 69 6c 69 6e 67 45 4f 4c 20 3d 20 69 73 73 65 74 .=.'RES').{.$trailingEOL.=.isset
e0a20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 29 20 7c 7c 20 ($this->started[$id]['out']).||.
e0a40 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d isset($this->started[$id]['err']
e0a60 29 20 3f 20 22 5c 6e 22 20 3a 20 27 27 3b 0a 0a 69 66 20 28 24 73 75 63 63 65 73 73 66 75 6c 29 ).?."\n".:.'';..if.($successful)
e0a80 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 25 73 25 73 3c 62 67 3d 67 72 65 65 6e .{.return.sprintf("%s%s<bg=green
e0aa0 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 3c 66 67 3d 67 72 65 65 6e 3e 25 73 3c 2f ;fg=white>.%s.</>.<fg=green>%s</
e0ac0 3e 5c 6e 22 2c 20 24 74 72 61 69 6c 69 6e 67 45 4f 4c 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f >\n",.$trailingEOL,.$this->getBo
e0ae0 72 64 65 72 28 24 69 64 29 2c 20 24 70 72 65 66 69 78 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d rder($id),.$prefix,.$message);.}
e0b00 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 22 25 73 25 73 3c 62 67 3d 72 65 ..$message.=.sprintf("%s%s<bg=re
e0b20 64 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 3c 66 67 3d 72 65 64 3e 25 73 3c 2f 3e d;fg=white>.%s.</>.<fg=red>%s</>
e0b40 5c 6e 22 2c 20 24 74 72 61 69 6c 69 6e 67 45 4f 4c 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 \n",.$trailingEOL,.$this->getBor
e0b60 64 65 72 28 24 69 64 29 2c 20 24 70 72 65 66 69 78 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 75 der($id),.$prefix,.$message);..u
e0b80 6e 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 2c nset($this->started[$id]['out'],
e0ba0 20 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d 29 3b 0a 0a 72 .$this->started[$id]['err']);..r
e0bc0 65 74 75 72 6e 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 eturn.$message;.}.......private.
e0be0 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 6f 72 64 65 72 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e function.getBorder($id).{.return
e0c00 20 73 70 72 69 6e 74 66 28 27 3c 62 67 3d 25 73 3e 20 3c 2f 3e 27 2c 20 24 74 68 69 73 2d 3e 63 .sprintf('<bg=%s>.</>',.$this->c
e0c20 6f 6c 6f 72 73 5b 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 62 6f 72 64 65 olors[$this->started[$id]['borde
e0c40 72 27 5d 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 r']]);.}.....public.function.get
e0c60 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 65 62 75 67 5f 66 6f 72 6d 61 74 74 65 72 Name().{.return.'debug_formatter
e0c80 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ';.}.}.<?php...........namespace
e0ca0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 .Symfony\Component\Console\Helpe
e0cc0 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c r;..use.Symfony\Component\Consol
e0ce0 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 e\Output\OutputInterface;.use.Sy
e0d00 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 65 70 74 69 6f mfony\Component\Process\Exceptio
e0d20 6e 5c 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 n\ProcessFailedException;.use.Sy
e0d40 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 3b mfony\Component\Process\Process;
e0d60 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
e0d80 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 rocessBuilder;.......class.Proce
e0da0 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a ssHelper.extends.Helper.{.......
e0dc0 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 4f 75 74 70 75 74 ......public.function.run(Output
e0de0 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 63 6d 64 2c 20 24 65 72 72 6f 72 20 Interface.$output,.$cmd,.$error.
e0e00 3d 20 6e 75 6c 6c 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 62 6f =.null,.$callback.=.null,.$verbo
e0e20 73 69 74 79 20 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 sity.=.OutputInterface::VERBOSIT
e0e40 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 29 0a 7b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 Y_VERY_VERBOSE).{.$formatter.=.$
e0e60 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 65 62 75 67 this->getHelperSet()->get('debug
e0e80 5f 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 6d 64 _formatter');..if.(is_array($cmd
e0ea0 29 29 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3a 3a )).{.$process.=.ProcessBuilder::
e0ec0 63 72 65 61 74 65 28 24 63 6d 64 29 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 3b 0a 7d 20 65 6c create($cmd)->getProcess();.}.el
e0ee0 73 65 69 66 20 28 24 63 6d 64 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 72 6f 63 65 73 73 29 20 7b seif.($cmd.instanceof.Process).{
e0f00 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 63 6d 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 63 .$process.=.$cmd;.}.else.{.$proc
e0f20 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 63 6d 64 29 3b 0a 7d 0a 0a 69 66 20 28 ess.=.new.Process($cmd);.}..if.(
e0f40 24 76 65 72 62 6f 73 69 74 79 20 3c 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 $verbosity.<=.$output->getVerbos
e0f60 69 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 74 74 ity()).{.$output->write($formatt
e0f80 65 72 2d 3e 73 74 61 72 74 28 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 72 6f 63 65 er->start(spl_object_hash($proce
e0fa0 73 73 29 2c 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 70 72 6f 63 65 73 ss),.$this->escapeString($proces
e0fc0 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 s->getCommandLine())));.}..if.($
e0fe0 6f 75 74 70 75 74 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d output->isDebug()).{.$callback.=
e1000 20 24 74 68 69 73 2d 3e 77 72 61 70 43 61 6c 6c 62 61 63 6b 28 24 6f 75 74 70 75 74 2c 20 24 70 .$this->wrapCallback($output,.$p
e1020 72 6f 63 65 73 73 2c 20 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 2d rocess,.$callback);.}..$process-
e1040 3e 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 69 74 79 >run($callback);..if.($verbosity
e1060 20 3c 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 .<=.$output->getVerbosity()).{.$
e1080 6d 65 73 73 61 67 65 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c message.=.$process->isSuccessful
e10a0 28 29 20 3f 20 27 43 6f 6d 6d 61 6e 64 20 72 61 6e 20 73 75 63 63 65 73 73 66 75 6c 6c 79 27 20 ().?.'Command.ran.successfully'.
e10c0 3a 20 73 70 72 69 6e 74 66 28 27 25 73 20 43 6f 6d 6d 61 6e 64 20 64 69 64 20 6e 6f 74 20 72 75 :.sprintf('%s.Command.did.not.ru
e10e0 6e 20 73 75 63 63 65 73 73 66 75 6c 6c 79 27 2c 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 n.successfully',.$process->getEx
e1100 69 74 43 6f 64 65 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 itCode());.$output->write($forma
e1120 74 74 65 72 2d 3e 73 74 6f 70 28 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 72 6f 63 tter->stop(spl_object_hash($proc
e1140 65 73 73 29 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 ess),.$message,.$process->isSucc
e1160 65 73 73 66 75 6c 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 essful()));.}..if.(!$process->is
e1180 53 75 63 63 65 73 73 66 75 6c 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 Successful().&&.null.!==.$error)
e11a0 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 3c 65 72 .{.$output->writeln(sprintf('<er
e11c0 72 6f 72 3e 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 53 74 ror>%s</error>',.$this->escapeSt
e11e0 72 69 6e 67 28 24 65 72 72 6f 72 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 ring($error)));.}..return.$proce
e1200 73 73 3b 0a 7d 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 ss;.}....................public.
e1220 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 52 75 6e 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 function.mustRun(OutputInterface
e1240 20 24 6f 75 74 70 75 74 2c 20 24 63 6d 64 2c 20 24 65 72 72 6f 72 20 3d 20 6e 75 6c 6c 2c 20 24 .$output,.$cmd,.$error.=.null,.$
e1260 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 74 callback.=.null).{.$process.=.$t
e1280 68 69 73 2d 3e 72 75 6e 28 24 6f 75 74 70 75 74 2c 20 24 63 6d 64 2c 20 24 65 72 72 6f 72 2c 20 his->run($output,.$cmd,.$error,.
e12a0 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 $callback);..if.(!$process->isSu
e12c0 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 46 ccessful()).{.throw.new.ProcessF
e12e0 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 28 24 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 ailedException($process);.}..ret
e1300 75 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 urn.$process;.}...........public
e1320 20 66 75 6e 63 74 69 6f 6e 20 77 72 61 70 43 61 6c 6c 62 61 63 6b 28 4f 75 74 70 75 74 49 6e 74 .function.wrapCallback(OutputInt
e1340 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 erface.$output,.Process.$process
e1360 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 66 6f 72 6d 61 74 74 65 72 ,.$callback.=.null).{.$formatter
e1380 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 64 .=.$this->getHelperSet()->get('d
e13a0 65 62 75 67 5f 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 ebug_formatter');..$that.=.$this
e13c0 3b 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 62 75 66 66 ;..return.function.($type,.$buff
e13e0 65 72 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 70 72 6f 63 65 73 73 2c 20 24 63 61 6c er).use.($output,.$process,.$cal
e1400 6c 62 61 63 6b 2c 20 24 66 6f 72 6d 61 74 74 65 72 2c 20 24 74 68 61 74 29 20 7b 0a 24 6f 75 74 lback,.$formatter,.$that).{.$out
e1420 70 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 74 74 65 72 2d 3e 70 72 6f 67 72 65 73 73 28 put->write($formatter->progress(
e1440 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 72 6f 63 65 73 73 29 2c 20 24 74 68 61 74 spl_object_hash($process),.$that
e1460 2d 3e 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 62 75 66 66 65 72 29 2c 20 50 72 6f 63 65 73 73 ->escapeString($buffer),.Process
e1480 3a 3a 45 52 52 20 3d 3d 3d 20 24 74 79 70 65 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d ::ERR.===.$type));..if.(null.!==
e14a0 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 .$callback).{.call_user_func($ca
e14c0 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 7d 3b 0a 7d 0a llback,.$type,.$buffer);.}.};.}.
e14e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 53 74 72 69 ......public.function.escapeStri
e1500 6e 67 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3c ng($str).{.return.str_replace('<
e1520 27 2c 20 27 5c 5c 3c 27 2c 20 24 73 74 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ',.'\\<',.$str);.}.....public.fu
e1540 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 72 6f 63 65 nction.getName().{.return.'proce
e1560 73 73 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ss';.}.}.<?php...........namespa
e1580 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c ce.Symfony\Component\Console\Hel
e15a0 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 per;..use.Symfony\Component\Cons
e15c0 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ole\Command\Command;.......class
e15e0 20 48 65 6c 70 65 72 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 .HelperSet.implements.\IteratorA
e1600 67 67 72 65 67 61 74 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 ggregate.{.private.$helpers.=.ar
e1620 72 61 79 28 29 3b 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 ray();.private.$command;.......p
e1640 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
e1660 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 .$helpers.=.array()).{.foreach.(
e1680 24 68 65 6c 70 65 72 73 20 61 73 20 24 61 6c 69 61 73 20 3d 3e 20 24 68 65 6c 70 65 72 29 20 7b $helpers.as.$alias.=>.$helper).{
e16a0 0a 24 74 68 69 73 2d 3e 73 65 74 28 24 68 65 6c 70 65 72 2c 20 69 73 5f 69 6e 74 28 24 61 6c 69 .$this->set($helper,.is_int($ali
e16c0 61 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a as).?.null.:.$alias);.}.}.......
e16e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 48 65 6c 70 65 72 49 6e 74 65 72 .public.function.set(HelperInter
e1700 66 61 63 65 20 24 68 65 6c 70 65 72 2c 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 face.$helper,.$alias.=.null).{.$
e1720 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 68 65 6c 70 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 this->helpers[$helper->getName()
e1740 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 6c 69 61 73 ].=.$helper;.if.(null.!==.$alias
e1760 29 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 68 65 ).{.$this->helpers[$alias].=.$he
e1780 6c 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 lper;.}..$helper->setHelperSet($
e17a0 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e this);.}.........public.function
e17c0 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 .has($name).{.return.isset($this
e17e0 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ->helpers[$name]);.}...........p
e1800 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 ublic.function.get($name).{.if.(
e1820 21 24 74 68 69 73 2d 3e 68 61 73 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 !$this->has($name)).{.throw.new.
e1840 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
e1860 66 28 27 54 68 65 20 68 65 6c 70 65 72 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 f('The.helper."%s".is.not.define
e1880 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 d.',.$name));.}..return.$this->h
e18a0 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 elpers[$name];.}.......public.fu
e18c0 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 nction.setCommand(Command.$comma
e18e0 6e 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 nd.=.null).{.$this->command.=.$c
e1900 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ommand;.}.......public.function.
e1920 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d getCommand().{.return.$this->com
e1940 6d 61 6e 64 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 72 mand;.}..public.function.getIter
e1960 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 ator().{.return.new.\ArrayIterat
e1980 6f 72 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a or($this->helpers);.}.}.<?php...
e19a0 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
e19c0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 ent\Console\Helper;..use.Symfony
e19e0 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
e1a00 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
e1a20 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 74 \Console\Formatter\OutputFormatt
e1a40 65 72 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 erStyle;..........class.DialogHe
e1a60 6c 70 65 72 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 0a 7b 0a lper.extends.InputAwareHelper.{.
e1a80 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 70 72 69 76 61 74 65 20 73 74 private.$inputStream;.private.st
e1aa0 61 74 69 63 20 24 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 74 74 atic.$shell;.private.static.$stt
e1ac0 79 3b 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 y;.................public.functi
e1ae0 6f 6e 20 73 65 6c 65 63 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 on.select(OutputInterface.$outpu
e1b00 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 63 68 6f 69 63 65 73 2c 20 24 64 65 66 61 75 6c 74 t,.$question,.$choices,.$default
e1b20 20 3d 20 6e 75 6c 6c 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 65 72 72 .=.null,.$attempts.=.false,.$err
e1b40 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 56 61 6c 75 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c orMessage.=.'Value."%s".is.inval
e1b60 69 64 27 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 77 69 id',.$multiselect.=.false).{.$wi
e1b80 64 74 68 20 3d 20 6d 61 78 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 6c 65 6e 27 2c 20 61 72 dth.=.max(array_map('strlen',.ar
e1ba0 72 61 79 5f 6b 65 79 73 28 24 63 68 6f 69 63 65 73 29 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 ray_keys($choices)));..$messages
e1bc0 20 3d 20 28 61 72 72 61 79 29 20 24 71 75 65 73 74 69 6f 6e 3b 0a 66 6f 72 65 61 63 68 20 28 24 .=.(array).$question;.foreach.($
e1be0 63 68 6f 69 63 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 choices.as.$key.=>.$value).{.$me
e1c00 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 5b 3c 69 6e 66 6f 3e 25 2d 24 ssages[].=.sprintf("..[<info>%-$
e1c20 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 5d 20 25 73 22 2c 20 24 6b 65 79 2c 20 24 76 61 6c {width}s</info>].%s",.$key,.$val
e1c40 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 6d 65 73 73 61 67 ue);.}..$output->writeln($messag
e1c60 65 73 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 41 6e 64 56 61 6c es);..$result.=.$this->askAndVal
e1c80 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 27 3e 20 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 idate($output,.'>.',.function.($
e1ca0 70 69 63 6b 65 64 29 20 75 73 65 20 28 24 63 68 6f 69 63 65 73 2c 20 24 65 72 72 6f 72 4d 65 73 picked).use.($choices,.$errorMes
e1cc0 73 61 67 65 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 24 73 65 6c 65 63 74 65 sage,.$multiselect).{...$selecte
e1ce0 64 43 68 6f 69 63 65 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 20 22 2c 20 22 22 2c 20 dChoices.=.str_replace(".",."",.
e1d00 24 70 69 63 6b 65 64 29 3b 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a $picked);..if.($multiselect).{..
e1d20 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d .if.(!preg_match('/^[a-zA-Z0-9_-
e1d40 5d 2b 28 3f 3a 2c 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 29 2a 24 2f 27 2c 20 24 73 65 6c 65 ]+(?:,[a-zA-Z0-9_-]+)*$/',.$sele
e1d60 63 74 65 64 43 68 6f 69 63 65 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 ctedChoices,.$matches)).{.throw.
e1d80 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 new.\InvalidArgumentException(sp
e1da0 72 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 70 69 63 6b 65 64 29 29 3b 0a rintf($errorMessage,.$picked));.
e1dc0 7d 0a 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2c 22 }.$selectedChoices.=.explode(","
e1de0 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 ,.$selectedChoices);.}.else.{.$s
e1e00 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 24 70 69 63 6b 65 64 29 3b electedChoices.=.array($picked);
e1e20 0a 7d 0a 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 .}..$multiselectChoices.=.array(
e1e40 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 61 73 );..foreach.($selectedChoices.as
e1e60 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 68 6f 69 63 65 73 5b 24 76 .$value).{.if.(empty($choices[$v
e1e80 61 6c 75 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 alue])).{.throw.new.\InvalidArgu
e1ea0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 mentException(sprintf($errorMess
e1ec0 61 67 65 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 61 72 72 61 79 5f 70 75 73 68 28 24 6d 75 6c age,.$value));.}.array_push($mul
e1ee0 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 tiselectChoices,.$value);.}..if.
e1f00 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 75 6c 74 69 73 65 ($multiselect).{.return.$multise
e1f20 6c 65 63 74 43 68 6f 69 63 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 69 63 6b 65 64 3b 0a lectChoices;.}..return.$picked;.
e1f40 7d 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e },.$attempts,.$default);..return
e1f60 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$result;.}..............public.
e1f80 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 function.ask(OutputInterface.$ou
e1fa0 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c tput,.$question,.$default.=.null
e1fc0 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 29 0a 7b 0a ,.array.$autocomplete.=.null).{.
e1fe0 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 6e 70 75 if.($this->input.&&.!$this->inpu
e2000 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 t->isInteractive()).{.return.$de
e2020 66 61 75 6c 74 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 fault;.}..$output->write($questi
e2040 6f 6e 29 3b 0a 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 on);..$inputStream.=.$this->inpu
e2060 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 tStream.?:.STDIN;..if.(null.===.
e2080 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 $autocomplete.||.!$this->hasStty
e20a0 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 69 6e 70 Available()).{.$ret.=.fgets($inp
e20c0 75 74 53 74 72 65 61 6d 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 utStream,.4096);.if.(false.===.$
e20e0 72 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 ret).{.throw.new.\RuntimeExcepti
e2100 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 65 on('Aborted');.}.$ret.=.trim($re
e2120 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 27 27 3b 0a 0a 24 69 20 3d 20 30 3b t);.}.else.{.$ret.=.'';..$i.=.0;
e2140 0a 24 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 .$ofs.=.-1;.$matches.=.$autocomp
e2160 6c 65 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 lete;.$numMatches.=.count($match
e2180 65 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 es);..$sttyMode.=.shell_exec('st
e21a0 74 79 20 2d 67 27 29 3b 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 69 63 ty.-g');....shell_exec('stty.-ic
e21c0 61 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 anon.-echo');....$output->getFor
e21e0 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 6c 65 28 27 68 6c 27 2c 20 6e 65 77 20 4f 75 74 matter()->setStyle('hl',.new.Out
e2200 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 77 68 69 74 putFormatterStyle('black',.'whit
e2220 65 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 21 66 65 6f 66 28 24 69 6e 70 75 74 53 74 72 65 e'));....while.(!feof($inputStre
e2240 61 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 am)).{.$c.=.fread($inputStream,.
e2260 31 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 37 37 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 1);....if.("\177".===.$c).{.if.(
e2280 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 20 26 26 20 30 20 21 3d 3d 20 24 69 29 20 7b 0.===.$numMatches.&&.0.!==.$i).{
e22a0 0a 24 69 2d 2d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 31 44 .$i--;...$output->write("\033[1D
e22c0 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 3d 3d 3d 20 30 29 20 7b 0a 24 6f 66 73 20 3d 20 2d 31 ");.}..if.($i.===.0).{.$ofs.=.-1
e22e0 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d ;.$matches.=.$autocomplete;.$num
e2300 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 7d 20 65 6c 73 Matches.=.count($matches);.}.els
e2320 65 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 7d 0a 0a 0a 20 24 72 65 74 20 3d e.{.$numMatches.=.0;.}....$ret.=
e2340 20 73 75 62 73 74 72 28 24 72 65 74 2c 20 30 2c 20 24 69 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 .substr($ret,.0,.$i);.}.elseif.(
e2360 22 5c 30 33 33 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 0a 20 24 63 20 2e 3d 20 66 72 65 61 64 28 24 "\033".===.$c).{...$c..=.fread($
e2380 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 inputStream,.2);....if.(isset($c
e23a0 5b 32 5d 29 20 26 26 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 7c 7c 20 27 42 27 20 3d 3d [2]).&&.('A'.===.$c[2].||.'B'.==
e23c0 3d 20 24 63 5b 32 5d 29 29 20 7b 0a 69 66 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 26 26 =.$c[2])).{.if.('A'.===.$c[2].&&
e23e0 20 2d 31 20 3d 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 6f 66 73 20 3d 20 30 3b 0a 7d 0a 0a 69 66 20 .-1.===.$ofs).{.$ofs.=.0;.}..if.
e2400 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a (0.===.$numMatches).{.continue;.
e2420 7d 0a 0a 24 6f 66 73 20 2b 3d 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 20 3f 20 2d 31 20 }..$ofs.+=.('A'.===.$c[2]).?.-1.
e2440 3a 20 31 3b 0a 24 6f 66 73 20 3d 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 2b 20 24 6f 66 73 29 :.1;.$ofs.=.($numMatches.+.$ofs)
e2460 20 25 20 24 6e 75 6d 4d 61 74 63 68 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 6f 72 64 28 .%.$numMatches;.}.}.elseif.(ord(
e2480 24 63 29 20 3c 20 33 32 29 20 7b 0a 69 66 20 28 22 5c 74 22 20 3d 3d 3d 20 24 63 20 7c 7c 20 22 $c).<.32).{.if.("\t".===.$c.||."
e24a0 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 \n".===.$c).{.if.($numMatches.>.
e24c0 30 20 26 26 20 2d 31 20 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 72 65 74 20 3d 20 24 6d 61 74 63 0.&&.-1.!==.$ofs).{.$ret.=.$matc
e24e0 68 65 73 5b 24 6f 66 73 5d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 75 62 73 hes[$ofs];...$output->write(subs
e2500 74 72 28 24 72 65 74 2c 20 24 69 29 29 3b 0a 24 69 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 tr($ret,.$i));.$i.=.strlen($ret)
e2520 3b 0a 7d 0a 0a 69 66 20 28 22 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 24 6f 75 74 70 75 74 2d ;.}..if.("\n".===.$c).{.$output-
e2540 3e 77 72 69 74 65 28 24 63 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 >write($c);.break;.}..$numMatche
e2560 73 20 3d 20 30 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 6f 75 s.=.0;.}..continue;.}.else.{.$ou
e2580 74 70 75 74 2d 3e 77 72 69 74 65 28 24 63 29 3b 0a 24 72 65 74 20 2e 3d 20 24 63 3b 0a 24 69 2b tput->write($c);.$ret..=.$c;.$i+
e25a0 2b 3b 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 30 3b 0a 0a +;..$numMatches.=.0;.$ofs.=.0;..
e25c0 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 61 73 20 24 76 61 6c 75 65 foreach.($autocomplete.as.$value
e25e0 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 24 ).{...if.(0.===.strpos($value,.$
e2600 72 65 74 29 20 26 26 20 24 69 20 21 3d 3d 20 73 74 72 6c 65 6e 28 24 76 61 6c 75 65 29 29 20 7b ret).&&.$i.!==.strlen($value)).{
e2620 0a 24 6d 61 74 63 68 65 73 5b 24 6e 75 6d 4d 61 74 63 68 65 73 2b 2b 5d 20 3d 20 24 76 61 6c 75 .$matches[$numMatches++].=.$valu
e2640 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 e;.}.}.}....$output->write("\033
e2660 5b 4b 22 29 3b 0a 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 [K");..if.($numMatches.>.0.&&.-1
e2680 20 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c .!==.$ofs).{...$output->write("\
e26a0 30 33 33 37 22 29 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 3c 68 6c 3e 27 2e 0337");...$output->write('<hl>'.
e26c0 73 75 62 73 74 72 28 24 6d 61 74 63 68 65 73 5b 24 6f 66 73 5d 2c 20 24 69 29 2e 27 3c 2f 68 6c substr($matches[$ofs],.$i).'</hl
e26e0 3e 27 29 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 38 22 29 3b 0a >');...$output->write("\0338");.
e2700 7d 0a 7d 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 }.}....shell_exec(sprintf('stty.
e2720 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 6c %s',.$sttyMode));.}..return.strl
e2740 65 6e 28 24 72 65 74 29 20 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 24 64 65 66 61 75 6c 74 3b 0a en($ret).>.0.?.$ret.:.$default;.
e2760 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 }.............public.function.as
e2780 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f kConfirmation(OutputInterface.$o
e27a0 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 utput,.$question,.$default.=.tru
e27c0 65 29 0a 7b 0a 24 61 6e 73 77 65 72 20 3d 20 27 7a 27 3b 0a 77 68 69 6c 65 20 28 24 61 6e 73 77 e).{.$answer.=.'z';.while.($answ
e27e0 65 72 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 er.&&.!in_array(strtolower($answ
e2800 65 72 5b 30 5d 29 2c 20 61 72 72 61 79 28 27 79 27 2c 20 27 6e 27 29 29 29 20 7b 0a 24 61 6e 73 er[0]),.array('y',.'n'))).{.$ans
e2820 77 65 72 20 3d 20 24 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 wer.=.$this->ask($output,.$quest
e2840 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 ion);.}..if.(false.===.$default)
e2860 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 27 79 27 20 3d 3d 20 73 74 72 74 .{.return.$answer.&&.'y'.==.strt
e2880 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 olower($answer[0]);.}..return.!$
e28a0 61 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 answer.||.'y'.==.strtolower($ans
e28c0 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 wer[0]);.}.............public.fu
e28e0 6e 63 74 69 6f 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 4f 75 74 70 75 74 49 nction.askHiddenResponse(OutputI
e2900 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 6e 2c 20 24 66 61 nterface.$output,.$question,.$fa
e2920 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 llback.=.true).{.if.('\\'.===.DI
e2940 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 RECTORY_SEPARATOR).{.$exe.=.__DI
e2960 52 5f 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 R__.'/../Resources/bin/hiddeninp
e2980 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 ut.exe';....if.('phar:'.===.subs
e29a0 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 tr(__FILE__,.0,.5)).{.$tmpExe.=.
e29c0 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 sys_get_temp_dir().'/hiddeninput
e29e0 2e 65 78 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 78 65 .exe';.copy($exe,.$tmpExe);.$exe
e2a00 20 3d 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 .=.$tmpExe;.}..$output->write($q
e2a20 75 65 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 uestion);.$value.=.rtrim(shell_e
e2a40 78 65 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 xec($exe));.$output->writeln('')
e2a60 3b 0a 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 ;..if.(isset($tmpExe)).{.unlink(
e2a80 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 $tmpExe);.}..return.$value;.}..i
e2aa0 66 20 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 f.($this->hasSttyAvailable()).{.
e2ac0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 73 74 74 $output->write($question);..$stt
e2ae0 79 4d 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 yMode.=.shell_exec('stty.-g');..
e2b00 73 68 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 shell_exec('stty.-echo');.$value
e2b20 20 3d 20 66 67 65 74 73 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 .=.fgets($this->inputStream.?:.S
e2b40 54 44 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 TDIN,.4096);.shell_exec(sprintf(
e2b60 27 73 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 'stty.%s',.$sttyMode));..if.(fal
e2b80 73 65 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 se.===.$value).{.throw.new.\Runt
e2ba0 69 6d 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 imeException('Aborted');.}..$val
e2bc0 75 65 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 ue.=.trim($value);.$output->writ
e2be0 65 6c 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 eln('');..return.$value;.}..if.(
e2c00 66 61 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 false.!==.$shell.=.$this->getShe
e2c20 6c 6c 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 ll()).{.$output->write($question
e2c40 29 3b 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 );.$readCmd.=.$shell.===.'csh'.?
e2c60 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 72 65 61 64 20 2d .'set.mypassword.=.$<'.:.'read.-
e2c80 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 73 70 72 69 6e 74 r.mypassword';.$command.=.sprint
e2ca0 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 79 20 2d 65 63 68 f("/usr/bin/env.%s.-c.'stty.-ech
e2cc0 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 79 70 61 73 73 77 o;.%s;.stty.echo;.echo.\$mypassw
e2ce0 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 24 76 61 6c 75 65 ord'",.$shell,.$readCmd);.$value
e2d00 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 6e 64 29 29 3b 0a .=.rtrim(shell_exec($command));.
e2d20 24 6f 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 $output->writeln('');..return.$v
e2d40 61 6c 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 alue;.}..if.($fallback).{.return
e2d60 20 24 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 .$this->ask($output,.$question);
e2d80 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 .}..throw.new.\RuntimeException(
e2da0 27 55 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 'Unable.to.hide.the.response');.
e2dc0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 }....................public.func
e2de0 74 69 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 tion.askAndValidate(OutputInterf
e2e00 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 76 61 6c 69 64 61 74 ace.$output,.$question,.$validat
e2e20 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 or,.$attempts.=.false,.$default.
e2e40 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 6e 75 =.null,.array.$autocomplete.=.nu
e2e60 6c 6c 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 ll).{.$that.=.$this;..$interview
e2e80 65 72 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 er.=.function.().use.($output,.$
e2ea0 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 6f 6d 70 6c 65 74 question,.$default,.$autocomplet
e2ec0 65 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 28 24 6f e,.$that).{.return.$that->ask($o
e2ee0 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 utput,.$question,.$default,.$aut
e2f00 6f 63 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 ocomplete);.};..return.$this->va
e2f20 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 6f 75 lidateAttempts($interviewer,.$ou
e2f40 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 7d 0a tput,.$validator,.$attempts);.}.
e2f60 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
e2f80 6f 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 41 6e 64 56 61 6c 69 64 61 74 65 28 on.askHiddenResponseAndValidate(
e2fa0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 OutputInterface.$output,.$questi
e2fc0 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 on,.$validator,.$attempts.=.fals
e2fe0 65 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 e,.$fallback.=.true).{.$that.=.$
e3000 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 this;..$interviewer.=.function.(
e3020 29 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 ).use.($output,.$question,.$fall
e3040 62 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 back,.$that).{.return.$that->ask
e3060 48 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 HiddenResponse($output,.$questio
e3080 6e 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 n,.$fallback);.};..return.$this-
e30a0 3e 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 >validateAttempts($interviewer,.
e30c0 24 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 $output,.$validator,.$attempts);
e30e0 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 49 6e .}.........public.function.setIn
e3100 70 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 putStream($stream).{.$this->inpu
e3120 74 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 tStream.=.$stream;.}.......publi
e3140 63 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 c.function.getInputStream().{.re
e3160 74 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 turn.$this->inputStream;.}.....p
e3180 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 72 ublic.function.getName().{.retur
e31a0 6e 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 n.'dialog';.}.......private.func
e31c0 74 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 tion.getShell().{.if.(null.!==.s
e31e0 65 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 elf::$shell).{.return.self::$she
e3200 6c 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 ll;.}..self::$shell.=.false;..if
e3220 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 20 7b .(file_exists('/usr/bin/env')).{
e3240 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 ...$test.=."/usr/bin/env.%s.-c.'
e3260 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 68 20 echo.OK'.2>./dev/null";.foreach.
e3280 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 63 73 (array('bash',.'zsh',.'ksh',.'cs
e32a0 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d h').as.$sh).{.if.('OK'.===.rtrim
e32c0 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 29 29 (shell_exec(sprintf($test,.$sh))
e32e0 29 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 )).{.self::$shell.=.$sh;.break;.
e3300 7d 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 }.}.}..return.self::$shell;.}..p
e3320 72 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 rivate.function.hasSttyAvailable
e3340 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 74 74 79 29 20 7b ().{.if.(null.!==.self::$stty).{
e3360 0a 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 .return.self::$stty;.}..exec('st
e3380 74 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 ty.2>&1',.$output,.$exitcode);..
e33a0 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 74 63 6f 64 65 20 3d return.self::$stty.=.$exitcode.=
e33c0 3d 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ==.0;.}..............private.fun
e33e0 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 ction.validateAttempts($intervie
e3400 77 65 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 76 wer,.OutputInterface.$output,.$v
e3420 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 alidator,.$attempts).{.$error.=.
e3440 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 null;.while.(false.===.$attempts
e3460 20 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 .||.$attempts--).{.if.(null.!==.
e3480 24 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 $error).{.$output->writeln($this
e34a0 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 ->getHelperSet()->get('formatter
e34c0 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 73 73 61 ')->formatBlock($error->getMessa
e34e0 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e ge(),.'error'));.}..try.{.return
e3500 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 69 6e 74 .call_user_func($validator,.$int
e3520 65 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e erviewer());.}.catch.(\Exception
e3540 20 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a .$error).{.}.}..throw.$error;.}.
e3560 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
e3580 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 75 ony\Component\Console\Helper;..u
e35a0 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
e35c0 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
e35e0 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 6e omponent\Console\Output\OutputIn
e3600 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
e3620 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 onsole\Formatter\OutputFormatter
e3640 53 74 79 6c 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 Style;.use.Symfony\Component\Con
e3660 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 51 75 65 73 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 sole\Question\Question;.use.Symf
e3680 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 43 ony\Component\Console\Question\C
e36a0 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 51 75 65 73 74 hoiceQuestion;.......class.Quest
e36c0 69 6f 6e 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 ionHelper.extends.Helper.{.priva
e36e0 74 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 te.$inputStream;.private.static.
e3700 24 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 74 74 79 3b 0a 0a 0a $shell;.private.static.$stty;...
e3720 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 49 6e ..........public.function.ask(In
e3740 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 putInterface.$input,.OutputInter
e3760 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e face.$output,.Question.$question
e3780 29 0a 7b 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 ).{.if.(!$input->isInteractive()
e37a0 29 20 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 ).{.return.$question->getDefault
e37c0 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 56 61 6c 69 64 61 ();.}..if.(!$question->getValida
e37e0 74 6f 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 41 73 6b 28 24 6f 75 tor()).{.return.$this->doAsk($ou
e3800 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 61 74 20 3d 20 24 74 68 tput,.$question);.}..$that.=.$th
e3820 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 20 is;..$interviewer.=.function.().
e3840 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 74 68 61 74 29 20 use.($output,.$question,.$that).
e3860 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 64 6f 41 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 {.return.$that->doAsk($output,.$
e3880 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c question);.};..return.$this->val
e38a0 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 6f 75 74 idateAttempts($interviewer,.$out
e38c0 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 put,.$question);.}...........pub
e38e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 24 73 74 72 lic.function.setInputStream($str
e3900 65 61 6d 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 73 74 72 65 61 6d 29 eam).{.if.(!is_resource($stream)
e3920 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
e3940 63 65 70 74 69 6f 6e 28 27 49 6e 70 75 74 20 73 74 72 65 61 6d 20 6d 75 73 74 20 62 65 20 61 20 ception('Input.stream.must.be.a.
e3960 76 61 6c 69 64 20 72 65 73 6f 75 72 63 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 valid.resource.');.}..$this->inp
e3980 75 74 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 utStream.=.$stream;.}.......publ
e39a0 69 63 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 ic.function.getInputStream().{.r
e39c0 65 74 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 eturn.$this->inputStream;.}.....
e39e0 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
e3a00 72 6e 20 27 71 75 65 73 74 69 6f 6e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rn.'question';.}...............p
e3a20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 ublic.function.doAsk(OutputInter
e3a40 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e face.$output,.Question.$question
e3a60 29 0a 7b 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 ).{.$inputStream.=.$this->inputS
e3a80 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 71 75 65 tream.?:.STDIN;..$message.=.$que
e3aa0 73 74 69 6f 6e 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 71 75 65 73 74 stion->getQuestion();.if.($quest
e3ac0 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 29 20 7b ion.instanceof.ChoiceQuestion).{
e3ae0 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 6c 65 6e 27 .$width.=.max(array_map('strlen'
e3b00 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 43 68 6f 69 63 ,.array_keys($question->getChoic
e3b20 65 73 28 29 29 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 71 es())));..$messages.=.(array).$q
e3b40 75 65 73 74 69 6f 6e 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 29 3b 0a 66 6f 72 65 61 63 68 20 uestion->getQuestion();.foreach.
e3b60 28 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 43 68 6f 69 63 65 73 28 29 20 61 73 20 24 6b 65 79 ($question->getChoices().as.$key
e3b80 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 .=>.$value).{.$messages[].=.spri
e3ba0 6e 74 66 28 22 20 20 5b 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e ntf("..[<info>%-${width}s</info>
e3bc0 5d 20 25 73 22 2c 20 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 ].%s",.$key,.$value);.}..$output
e3be0 2d 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 24 6d 65 73 73 61 67 65 20 ->writeln($messages);..$message.
e3c00 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 3b 0a 7d 0a 0a 24 6f 75 =.$question->getPrompt();.}..$ou
e3c20 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 24 61 75 74 6f 63 6f 6d tput->write($message);..$autocom
e3c40 70 6c 65 74 65 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 41 75 74 6f 63 6f 6d 70 6c 65 plete.=.$question->getAutocomple
e3c60 74 65 72 56 61 6c 75 65 73 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 6f 63 terValues();.if.(null.===.$autoc
e3c80 6f 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 omplete.||.!$this->hasSttyAvaila
e3ca0 62 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 24 71 75 65 73 ble()).{.$ret.=.false;.if.($ques
e3cc0 74 69 6f 6e 2d 3e 69 73 48 69 64 64 65 6e 28 29 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 74 20 3d tion->isHidden()).{.try.{.$ret.=
e3ce0 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 67 65 74 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 24 .trim($this->getHiddenResponse($
e3d00 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 3b 0a 7d 20 63 61 74 63 68 20 output,.$inputStream));.}.catch.
e3d20 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 66 20 28 21 24 71 (\RuntimeException.$e).{.if.(!$q
e3d40 75 65 73 74 69 6f 6e 2d 3e 69 73 48 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 28 29 29 20 7b 0a 74 uestion->isHiddenFallback()).{.t
e3d60 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 hrow.$e;.}.}.}..if.(false.===.$r
e3d80 65 74 29 20 7b 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c et).{.$ret.=.fgets($inputStream,
e3da0 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 74 29 20 7b 0a 74 68 .4096);.if.(false.===.$ret).{.th
e3dc0 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 41 62 6f 72 74 row.new.\RuntimeException('Abort
e3de0 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 65 74 29 3b 0a 7d 0a 7d 20 65 ed');.}.$ret.=.trim($ret);.}.}.e
e3e00 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d lse.{.$ret.=.trim($this->autocom
e3e20 70 6c 65 74 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 69 6e 70 75 74 plete($output,.$question,.$input
e3e40 53 74 72 65 61 6d 29 29 3b 0a 7d 0a 0a 24 72 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 Stream));.}..$ret.=.strlen($ret)
e3e60 20 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 .>.0.?.$ret.:.$question->getDefa
e3e80 75 6c 74 28 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 24 71 75 65 73 74 ult();..if.($normalizer.=.$quest
e3ea0 69 6f 6e 2d 3e 67 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 ion->getNormalizer()).{.return.$
e3ec0 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 72 65 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 normalizer($ret);.}..return.$ret
e3ee0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 75 ;.}..........private.function.au
e3f00 74 6f 63 6f 6d 70 6c 65 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 tocomplete(OutputInterface.$outp
e3f20 75 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 69 6e 70 75 74 53 74 ut,.Question.$question,.$inputSt
e3f40 72 65 61 6d 29 0a 7b 0a 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 24 71 75 65 73 74 69 6f ream).{.$autocomplete.=.$questio
e3f60 6e 2d 3e 67 65 74 41 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 29 3b 0a 24 72 65 n->getAutocompleterValues();.$re
e3f80 74 20 3d 20 27 27 3b 0a 0a 24 69 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 t.=.'';..$i.=.0;.$ofs.=.-1;.$mat
e3fa0 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 ches.=.$autocomplete;.$numMatche
e3fc0 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 s.=.count($matches);..$sttyMode.
e3fe0 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 0a 20 73 68 65 6c =.shell_exec('stty.-g');....shel
e4000 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 69 63 61 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a 0a 0a l_exec('stty.-icanon.-echo');...
e4020 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 .$output->getFormatter()->setSty
e4040 6c 65 28 27 68 6c 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 le('hl',.new.OutputFormatterStyl
e4060 65 28 27 62 6c 61 63 6b 27 2c 20 27 77 68 69 74 65 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 e('black',.'white'));....while.(
e4080 21 66 65 6f 66 28 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 65 61 !feof($inputStream)).{.$c.=.frea
e40a0 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 37 37 d($inputStream,.1);....if.("\177
e40c0 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 ".===.$c).{.if.(0.===.$numMatche
e40e0 73 20 26 26 20 30 20 21 3d 3d 20 24 69 29 20 7b 0a 24 69 2d 2d 3b 0a 0a 20 24 6f 75 74 70 75 74 s.&&.0.!==.$i).{.$i--;...$output
e4100 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 31 44 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 3d 3d ->write("\033[1D");.}..if.($i.==
e4120 3d 20 30 29 20 7b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 =.0).{.$ofs.=.-1;.$matches.=.$au
e4140 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 74 28 tocomplete;.$numMatches.=.count(
e4160 24 6d 61 74 63 68 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 $matches);.}.else.{.$numMatches.
e4180 3d 20 30 3b 0a 7d 0a 0a 0a 20 24 72 65 74 20 3d 20 73 75 62 73 74 72 28 24 72 65 74 2c 20 30 2c =.0;.}....$ret.=.substr($ret,.0,
e41a0 20 24 69 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 5c 30 33 33 22 20 3d 3d 3d 20 24 63 29 20 7b .$i);.}.elseif.("\033".===.$c).{
e41c0 0a 0a 20 24 63 20 2e 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 29 3b ...$c..=.fread($inputStream,.2);
e41e0 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 5b 32 5d 29 20 26 26 20 28 27 41 27 20 3d 3d 3d ....if.(isset($c[2]).&&.('A'.===
e4200 20 24 63 5b 32 5d 20 7c 7c 20 27 42 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 29 20 7b 0a 69 66 20 28 .$c[2].||.'B'.===.$c[2])).{.if.(
e4220 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 66 73 29 20 7b 0a 'A'.===.$c[2].&&.-1.===.$ofs).{.
e4240 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 6d 4d 61 74 63 68 $ofs.=.0;.}..if.(0.===.$numMatch
e4260 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 20 28 27 41 27 20 es).{.continue;.}..$ofs.+=.('A'.
e4280 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 3d 20 28 24 6e 75 ===.$c[2]).?.-1.:.1;.$ofs.=.($nu
e42a0 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 63 68 65 73 3b 0a mMatches.+.$ofs).%.$numMatches;.
e42c0 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 7b 0a 69 66 20 28 }.}.elseif.(ord($c).<.32).{.if.(
e42e0 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 29 20 7b 0a 69 66 "\t".===.$c.||."\n".===.$c).{.if
e4300 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 3d 20 24 6f 66 73 .($numMatches.>.0.&&.-1.!==.$ofs
e4320 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 0a 0a 20 24 6f 75 ).{.$ret.=.$matches[$ofs];...$ou
e4340 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 69 29 29 3b 0a 24 tput->write(substr($ret,.$i));.$
e4360 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 5c 6e 22 20 3d 3d i.=.strlen($ret);.}..if.("\n".==
e4380 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 3b 0a 62 72 65 61 =.$c).{.$output->write($c);.brea
e43a0 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 63 6f 6e 74 69 6e k;.}..$numMatches.=.0;.}..contin
e43c0 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 65 28 24 63 29 3b ue;.}.else.{.$output->write($c);
e43e0 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 74 63 68 65 73 20 .$ret..=.$c;.$i++;..$numMatches.
e4400 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 61 75 74 6f 63 6f =.0;.$ofs.=.0;..foreach.($autoco
e4420 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 30 20 3d 3d 3d 20 mplete.as.$value).{...if.(0.===.
e4440 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 20 21 3d 3d 20 73 strpos($value,.$ret).&&.$i.!==.s
e4460 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 24 6e 75 6d 4d 61 trlen($value)).{.$matches[$numMa
e4480 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 0a 20 24 6f 75 74 tches++].=.$value;.}.}.}....$out
e44a0 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 28 24 6e 75 6d 4d put->write("\033[K");..if.($numM
e44c0 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 20 7b 0a 0a 20 24 atches.>.0.&&.-1.!==.$ofs).{...$
e44e0 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 24 6f 75 74 70 75 output->write("\0337");...$outpu
e4500 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 74 63 68 65 73 5b t->write('<hl>'.substr($matches[
e4520 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 74 70 75 74 2d 3e $ofs],.$i).'</hl>');...$output->
e4540 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 6c 6c 5f 65 78 65 write("\0338");.}.}....shell_exe
e4560 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 4d 6f 64 65 29 29 c(sprintf('stty.%s',.$sttyMode))
e4580 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 ;..return.$ret;.}...........priv
e45a0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 4f ate.function.getHiddenResponse(O
e45c0 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 69 6e 70 75 74 53 74 utputInterface.$output,.$inputSt
e45e0 72 65 61 6d 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 ream).{.if.('\\'.===.DIRECTORY_S
e4600 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f EPARATOR).{.$exe.=.__DIR__.'/../
e4620 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 2e 65 78 65 27 3b 0a Resources/bin/hiddeninput.exe';.
e4640 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 ...if.('phar:'.===.substr(__FILE
e4660 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 __,.0,.5)).{.$tmpExe.=.sys_get_t
e4680 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 63 6f emp_dir().'/hiddeninput.exe';.co
e46a0 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 py($exe,.$tmpExe);.$exe.=.$tmpEx
e46c0 65 3b 0a 7d 0a 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 63 28 e;.}..$value.=.rtrim(shell_exec(
e46e0 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 0a 69 $exe));.$output->writeln('');..i
e4700 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 6d 70 f.(isset($tmpExe)).{.unlink($tmp
e4720 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 28 24 Exe);.}..return.$value;.}..if.($
e4740 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 73 74 74 this->hasSttyAvailable()).{.$stt
e4760 79 4d 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 yMode.=.shell_exec('stty.-g');..
e4780 73 68 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 shell_exec('stty.-echo');.$value
e47a0 20 3d 20 66 67 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 73 68 .=.fgets($inputStream,.4096);.sh
e47c0 65 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 ell_exec(sprintf('stty.%s',.$stt
e47e0 79 4d 6f 64 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 yMode));..if.(false.===.$value).
e4800 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 41 {.throw.new.\RuntimeException('A
e4820 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 borted');.}..$value.=.trim($valu
e4840 65 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 0a 72 65 74 75 72 e);.$output->writeln('');..retur
e4860 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 73 68 65 6c n.$value;.}..if.(false.!==.$shel
e4880 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 65 6c 6c 28 29 29 20 7b 0a 24 72 65 61 64 43 6d l.=.$this->getShell()).{.$readCm
e48a0 64 20 3d 20 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 20 3f 20 27 73 65 74 20 6d 79 70 61 d.=.$shell.===.'csh'.?.'set.mypa
e48c0 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f ssword.=.$<'.:.'read.-r.mypasswo
e48e0 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 rd';.$command.=.sprintf("/usr/bi
e4900 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 n/env.%s.-c.'stty.-echo;.%s;.stt
e4920 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 y.echo;.echo.\$mypassword'",.$sh
e4940 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 ell,.$readCmd);.$value.=.rtrim(s
e4960 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 hell_exec($command));.$output->w
e4980 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 74 riteln('');..return.$value;.}..t
e49a0 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 hrow.new.\RuntimeException('Unab
e49c0 6c 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 27 29 3b 0a 7d 0a 0a 0a le.to.hide.the.response.');.}...
e49e0 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 64 ..........private.function.valid
e4a00 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 4f 75 74 70 75 74 ateAttempts($interviewer,.Output
e4a20 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 Interface.$output,.Question.$que
e4a40 73 74 69 6f 6e 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 24 61 74 74 65 6d 70 74 stion).{.$error.=.null;.$attempt
e4a60 73 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 4d 61 78 41 74 74 65 6d 70 74 73 28 29 3b s.=.$question->getMaxAttempts();
e4a80 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 20 7c 7c 20 24 61 .while.(null.===.$attempts.||.$a
e4aa0 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 65 72 72 6f 72 ttempts--).{.if.(null.!==.$error
e4ac0 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 ).{.if.(null.!==.$this->getHelpe
e4ae0 72 53 65 74 28 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d rSet().&&.$this->getHelperSet()-
e4b00 3e 68 61 73 28 27 66 6f 72 6d 61 74 74 65 72 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 >has('formatter')).{.$message.=.
e4b20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d $this->getHelperSet()->get('form
e4b40 61 74 74 65 72 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 65 74 atter')->formatBlock($error->get
e4b60 4d 65 73 73 61 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d Message(),.'error');.}.else.{.$m
e4b80 65 73 73 61 67 65 20 3d 20 27 3c 65 72 72 6f 72 3e 27 2e 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 essage.=.'<error>'.$error->getMe
e4ba0 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e ssage().'</error>';.}..$output->
e4bc0 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 writeln($message);.}..try.{.retu
e4be0 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 rn.call_user_func($question->get
e4c00 56 61 6c 69 64 61 74 6f 72 28 29 2c 20 24 69 6e 74 65 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 Validator(),.$interviewer());.}.
e4c20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a catch.(\Exception.$error).{.}.}.
e4c40 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 .throw.$error;.}.......private.f
e4c60 75 6e 63 74 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 unction.getShell().{.if.(null.!=
e4c80 3d 20 73 65 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 =.self::$shell).{.return.self::$
e4ca0 73 68 65 6c 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 shell;.}..self::$shell.=.false;.
e4cc0 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 .if.(file_exists('/usr/bin/env')
e4ce0 29 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d ).{...$test.=."/usr/bin/env.%s.-
e4d00 63 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 c.'echo.OK'.2>./dev/null";.forea
e4d20 63 68 20 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 ch.(array('bash',.'zsh',.'ksh',.
e4d40 27 63 73 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 'csh').as.$sh).{.if.('OK'.===.rt
e4d60 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 rim(shell_exec(sprintf($test,.$s
e4d80 68 29 29 29 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 h)))).{.self::$shell.=.$sh;.brea
e4da0 6b 3b 0a 7d 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 k;.}.}.}..return.self::$shell;.}
e4dc0 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 61 73 53 74 74 79 41 .......private.function.hasSttyA
e4de0 76 61 69 6c 61 62 6c 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a vailable().{.if.(null.!==.self::
e4e00 24 73 74 74 79 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 3b 0a 7d 0a 0a $stty).{.return.self::$stty;.}..
e4e20 65 78 65 63 28 27 73 74 74 79 20 32 3e 26 31 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 exec('stty.2>&1',.$output,.$exit
e4e40 63 6f 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 code);..return.self::$stty.=.$ex
e4e60 69 74 63 6f 64 65 20 3d 3d 3d 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a itcode.===.0;.}.}.<?php.........
e4e80 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
e4ea0 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 53 nsole\Helper;.......class.TableS
e4ec0 65 70 61 72 61 74 6f 72 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d eparator.{.}.<?php...........nam
e4ee0 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
e4f00 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Helper;..use.Symfony\Component\
e4f20 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
e4f40 72 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 61 73 73 rInterface;.......abstract.class
e4f60 20 48 65 6c 70 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 .Helper.implements.HelperInterfa
e4f80 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c ce.{.protected.$helperSet.=.null
e4fa0 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 48 65 6c 70 65 ;.......public.function.setHelpe
e4fc0 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
e4fe0 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 ).{.$this->helperSet.=.$helperSe
e5000 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 48 65 t;.}.......public.function.getHe
e5020 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 lperSet().{.return.$this->helper
e5040 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e Set;.}.........public.static.fun
e5060 63 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e ction.strlen($string).{.if.(!fun
e5080 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 29 20 7b 0a 72 ction_exists('mb_strwidth')).{.r
e50a0 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 66 20 28 66 61 eturn.strlen($string);.}..if.(fa
e50c0 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 63 74 5f 65 6e lse.===.$encoding.=.mb_detect_en
e50e0 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 74 72 6c 65 6e coding($string)).{.return.strlen
e5100 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 77 69 64 74 68 ($string);.}..return.mb_strwidth
e5120 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ($string,.$encoding);.}..public.
e5140 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 54 69 6d 65 28 24 73 65 63 73 static.function.formatTime($secs
e5160 29 0a 7b 0a 73 74 61 74 69 63 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 ).{.static.$timeFormats.=.array(
e5180 0a 61 72 72 61 79 28 30 2c 20 27 3c 20 31 20 73 65 63 27 29 2c 0a 61 72 72 61 79 28 32 2c 20 27 .array(0,.'<.1.sec'),.array(2,.'
e51a0 31 20 73 65 63 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 1.sec'),.array(59,.'secs',.1),.a
e51c0 72 72 61 79 28 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 rray(60,.'1.min'),.array(3600,.'
e51e0 6d 69 6e 73 27 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 mins',.60),.array(5400,.'1.hr'),
e5200 0a 61 72 72 61 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 .array(86400,.'hrs',.3600),.arra
e5220 79 28 31 32 39 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 y(129600,.'1.day'),.array(604800
e5240 2c 20 27 64 61 79 73 27 2c 20 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 ,.'days',.86400),.);..foreach.($
e5260 74 69 6d 65 46 6f 72 6d 61 74 73 20 61 73 20 24 66 6f 72 6d 61 74 29 20 7b 0a 69 66 20 28 24 73 timeFormats.as.$format).{.if.($s
e5280 65 63 73 20 3e 3d 20 24 66 6f 72 6d 61 74 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d ecs.>=.$format[0]).{.continue;.}
e52a0 0a 0a 69 66 20 28 32 20 3d 3d 20 63 6f 75 6e 74 28 24 66 6f 72 6d 61 74 29 29 20 7b 0a 72 65 74 ..if.(2.==.count($format)).{.ret
e52c0 75 72 6e 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 65 69 6c 28 24 urn.$format[1];.}..return.ceil($
e52e0 73 65 63 73 20 2f 20 24 66 6f 72 6d 61 74 5b 32 5d 29 2e 27 20 27 2e 24 66 6f 72 6d 61 74 5b 31 secs./.$format[2]).'.'.$format[1
e5300 5d 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 66 ];.}.}..public.static.function.f
e5320 6f 72 6d 61 74 4d 65 6d 6f 72 79 28 24 6d 65 6d 6f 72 79 29 0a 7b 0a 69 66 20 28 24 6d 65 6d 6f ormatMemory($memory).{.if.($memo
e5340 72 79 20 3e 3d 20 31 30 32 34 20 2a 20 31 30 32 34 20 2a 20 31 30 32 34 29 20 7b 0a 72 65 74 75 ry.>=.1024.*.1024.*.1024).{.retu
e5360 72 6e 20 73 70 72 69 6e 74 66 28 27 25 2e 31 66 20 47 69 42 27 2c 20 24 6d 65 6d 6f 72 79 20 2f rn.sprintf('%.1f.GiB',.$memory./
e5380 20 31 30 32 34 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 .1024./.1024./.1024);.}..if.($me
e53a0 6d 6f 72 79 20 3e 3d 20 31 30 32 34 20 2a 20 31 30 32 34 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 mory.>=.1024.*.1024).{.return.sp
e53c0 72 69 6e 74 66 28 27 25 2e 31 66 20 4d 69 42 27 2c 20 24 6d 65 6d 6f 72 79 20 2f 20 31 30 32 34 rintf('%.1f.MiB',.$memory./.1024
e53e0 20 2f 20 31 30 32 34 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 6d 6f 72 79 20 3e 3d 20 31 30 32 34 ./.1024);.}..if.($memory.>=.1024
e5400 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 64 20 4b 69 42 27 2c 20 24 6d 65 ).{.return.sprintf('%d.KiB',.$me
e5420 6d 6f 72 79 20 2f 20 31 30 32 34 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 mory./.1024);.}..return.sprintf(
e5440 27 25 64 20 42 27 2c 20 24 6d 65 6d 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 '%d.B',.$memory);.}..public.stat
e5460 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 ic.function.strlenWithoutDecorat
e5480 69 6f 6e 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 ion(OutputFormatterInterface.$fo
e54a0 72 6d 61 74 74 65 72 2c 20 24 73 74 72 69 6e 67 29 0a 7b 0a 24 69 73 44 65 63 6f 72 61 74 65 64 rmatter,.$string).{.$isDecorated
e54c0 20 3d 20 24 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 24 66 .=.$formatter->isDecorated();.$f
e54e0 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 6c 73 65 29 3b 0a 0a ormatter->setDecorated(false);..
e5500 20 24 73 74 72 69 6e 67 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 73 .$string.=.$formatter->format($s
e5520 74 72 69 6e 67 29 3b 0a 0a 20 24 73 74 72 69 6e 67 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 tring);...$string.=.preg_replace
e5540 28 22 2f 5c 30 33 33 5c 5b 5b 5e 6d 5d 2a 6d 2f 22 2c 20 27 27 2c 20 24 73 74 72 69 6e 67 29 3b ("/\033\[[^m]*m/",.'',.$string);
e5560 0a 24 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 .$formatter->setDecorated($isDec
e5580 6f 72 61 74 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 73 74 72 6c 65 6e 28 24 73 orated);..return.self::strlen($s
e55a0 74 72 69 6e 67 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 tring);.}.}.<?php...........name
e55c0 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 5c space.Symfony\Component\Console\
e55e0 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 Helper;..use.Symfony\Component\C
e5600 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4e 75 6c 6c 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 onsole\Output\NullOutput;.use.Sy
e5620 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f mfony\Component\Console\Output\O
e5640 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 utputInterface;..........class.P
e5660 72 6f 67 72 65 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 63 rogressHelper.extends.Helper.{.c
e5680 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 20 3d 20 27 20 25 70 65 72 63 65 6e 74 25 25 onst.FORMAT_QUIET.=.'.%percent%%
e56a0 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 20 3d 20 27 20 25 63 75 72 72 ';.const.FORMAT_NORMAL.=.'.%curr
e56c0 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 27 3b 0a ent%/%max%.[%bar%].%percent%%';.
e56e0 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 20 3d 20 27 20 25 63 75 72 72 65 6e const.FORMAT_VERBOSE.=.'.%curren
e5700 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 20 45 6c 61 70 t%/%max%.[%bar%].%percent%%.Elap
e5720 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 sed:.%elapsed%';.const.FORMAT_QU
e5740 49 45 54 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 27 3b 0a 63 6f 6e 73 74 20 IET_NOMAX.=.'.%current%';.const.
e5760 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 FORMAT_NORMAL_NOMAX.=.'.%current
e5780 25 20 5b 25 62 61 72 25 5d 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 %.[%bar%]';.const.FORMAT_VERBOSE
e57a0 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 45 6c 61 _NOMAX.=.'.%current%.[%bar%].Ela
e57c0 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 62 61 psed:.%elapsed%';....private.$ba
e57e0 72 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 61 72 20 3d 20 rWidth.=.28;.private.$barChar.=.
e5800 27 3d 27 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 27 2d 27 '=';.private.$emptyBarChar.=.'-'
e5820 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 27 3e 27 3b 0a 70 ;.private.$progressChar.=.'>';.p
e5840 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 rivate.$format.=.null;.private.$
e5860 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 73 74 4d 65 redrawFreq.=.1;..private.$lastMe
e5880 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 61 72 4f 72 ssagesLength;.private.$barCharOr
e58a0 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 0a 0a 0a 0a iginal;.....private.$output;....
e58c0 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 72 69 76 61 ...private.$current;.......priva
e58e0 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 74 54 69 6d te.$max;.......private.$startTim
e5900 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 6d 61 74 56 e;.......private.$defaultFormatV
e5920 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 27 2c 0a 27 ars.=.array(.'current',.'max',.'
e5940 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 29 3b 0a 0a bar',.'percent',.'elapsed',.);..
e5960 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 0a 0a 0a 0a .....private.$formatVars;.......
e5980 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 72 72 65 6e private.$widths.=.array(.'curren
e59a0 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 74 27 20 3d t'.=>.4,.'max'.=>.4,.'percent'.=
e59c0 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 0a 0a 70 72 >.3,.'elapsed'.=>.6,.);.......pr
e59e0 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 61 72 72 61 ivate.$timeFormats.=.array(.arra
e5a00 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 27 29 2c 0a y(0,.'???'),.array(2,.'1.sec'),.
e5a20 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 36 30 2c 20 array(59,.'secs',.1),.array(60,.
e5a40 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 2c 20 36 30 '1.min'),.array(3600,.'mins',.60
e5a60 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 79 28 38 36 ),.array(5400,.'1.hr'),.array(86
e5a80 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 36 30 30 2c 400,.'hrs',.3600),.array(129600,
e5aa0 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 79 73 27 2c .'1.day'),.array(604800,.'days',
e5ac0 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 63 74 69 6f .86400),.);.......public.functio
e5ae0 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 2d 3e 62 61 n.setBarWidth($size).{.$this->ba
e5b00 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 0a 0a 70 75 rWidth.=.(int).$size;.}.......pu
e5b20 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 72 28 24 63 blic.function.setBarCharacter($c
e5b40 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 72 3b 0a 7d har).{.$this->barChar.=.$char;.}
e5b60 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d 70 74 79 42 .......public.function.setEmptyB
e5b80 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 65 6d 70 74 arCharacter($char).{.$this->empt
e5ba0 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 62 6c 69 63 yBarChar.=.$char;.}.......public
e5bc0 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 65 72 28 24 .function.setProgressCharacter($
e5be0 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 3d 20 24 63 char).{.$this->progressChar.=.$c
e5c00 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 20 73 65 74 har;.}.......public.function.set
e5c20 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 6d 61 74 20 Format($format).{.$this->format.
e5c40 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 6e 63 74 69 =.$format;.}.......public.functi
e5c60 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 0a 7b 0a 24 on.setRedrawFrequency($freq).{.$
e5c80 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 65 71 3b 0a this->redrawFreq.=.(int).$freq;.
e5ca0 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 72 74 28 4f }........public.function.start(O
e5cc0 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 20 3d 20 6e utputInterface.$output,.$max.=.n
e5ce0 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 6d 65 28 29 ull).{.$this->startTime.=.time()
e5d00 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 3e 6d 61 78 ;.$this->current.=.0;.$this->max
e5d20 20 3d 20 28 69 6e 74 29 20 24 6d 61 78 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 .=.(int).$max;....$this->output.
e5d40 3d 20 24 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 20 3f 20 24 6f 75 74 70 =.$output->isDecorated().?.$outp
e5d60 75 74 20 3a 20 6e 65 77 20 4e 75 6c 6c 4f 75 74 70 75 74 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 ut.:.new.NullOutput();.$this->la
e5d80 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 62 61 72 stMessagesLength.=.0;.$this->bar
e5da0 43 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 27 27 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d CharOriginal.=.'';..if.(null.===
e5dc0 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6f 75 74 70 75 .$this->format).{.switch.($outpu
e5de0 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 t->getVerbosity()).{.case.Output
e5e00 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 3a 0a 24 74 68 69 Interface::VERBOSITY_QUIET:.$thi
e5e20 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 51 55 49 45 54 5f 4e s->format.=.self::FORMAT_QUIET_N
e5e40 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 68 69 OMAX;.if.($this->max.>.0).{.$thi
e5e60 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 51 55 49 45 54 3b 0a s->format.=.self::FORMAT_QUIET;.
e5e80 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 }.break;.case.OutputInterface::V
e5ea0 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3a 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 ERBOSITY_VERBOSE:.case.OutputInt
e5ec0 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 42 4f 53 45 3a 0a erface::VERBOSITY_VERY_VERBOSE:.
e5ee0 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f case.OutputInterface::VERBOSITY_
e5f00 44 45 42 55 47 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 DEBUG:.$this->format.=.self::FOR
e5f20 4d 41 54 5f 56 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 MAT_VERBOSE_NOMAX;.if.($this->ma
e5f40 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 x.>.0).{.$this->format.=.self::F
e5f60 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a ORMAT_VERBOSE;.}.break;.default:
e5f80 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f .$this->format.=.self::FORMAT_NO
e5fa0 52 4d 41 4c 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 RMAL_NOMAX;.if.($this->max.>.0).
e5fc0 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e {.$this->format.=.self::FORMAT_N
e5fe0 4f 52 4d 41 4c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 ORMAL;.}.break;.}.}..$this->init
e6000 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ialize();.}..........public.func
e6020 74 69 6f 6e 20 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 2c 20 24 72 65 64 72 61 77 20 tion.advance($step.=.1,.$redraw.
e6040 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 43 75 72 72 65 6e 74 28 24 74 68 =.false).{.$this->setCurrent($th
e6060 69 73 2d 3e 63 75 72 72 65 6e 74 20 2b 20 24 73 74 65 70 2c 20 24 72 65 64 72 61 77 29 3b 0a 7d is->current.+.$step,.$redraw);.}
e6080 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 43 75 72 ..........public.function.setCur
e60a0 72 65 6e 74 28 24 63 75 72 72 65 6e 74 2c 20 24 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 29 0a rent($current,.$redraw.=.false).
e60c0 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 {.if.(null.===.$this->startTime)
e60e0 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 6f .{.throw.new.\LogicException('Yo
e6100 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 u.must.start.the.progress.bar.be
e6120 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 73 65 74 43 75 72 72 65 6e 74 28 29 2e 27 29 3b 0a 7d 0a fore.calling.setCurrent().');.}.
e6140 0a 24 63 75 72 72 65 6e 74 20 3d 20 28 69 6e 74 29 20 24 63 75 72 72 65 6e 74 3b 0a 0a 69 66 20 .$current.=.(int).$current;..if.
e6160 28 24 63 75 72 72 65 6e 74 20 3c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 74 68 ($current.<.$this->current).{.th
e6180 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 6f 75 20 63 61 6e row.new.\LogicException('You.can
e61a0 5c 27 74 20 72 65 67 72 65 73 73 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 27 29 3b 0a \'t.regress.the.progress.bar');.
e61c0 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 }..if.(0.===.$this->current).{.$
e61e0 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 70 72 65 76 50 65 72 69 6f 64 20 3d 20 redraw.=.true;.}..$prevPeriod.=.
e6200 28 69 6e 74 29 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 72 (int).($this->current./.$this->r
e6220 65 64 72 61 77 46 72 65 71 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 24 63 edrawFreq);..$this->current.=.$c
e6240 75 72 72 65 6e 74 3b 0a 0a 24 63 75 72 72 50 65 72 69 6f 64 20 3d 20 28 69 6e 74 29 20 28 24 74 urrent;..$currPeriod.=.(int).($t
e6260 68 69 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 his->current./.$this->redrawFreq
e6280 29 3b 0a 69 66 20 28 24 72 65 64 72 61 77 20 7c 7c 20 24 70 72 65 76 50 65 72 69 6f 64 20 21 3d );.if.($redraw.||.$prevPeriod.!=
e62a0 3d 20 24 63 75 72 72 50 65 72 69 6f 64 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 20 3d 3d 3d 20 =.$currPeriod.||.$this->max.===.
e62c0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 $this->current).{.$this->display
e62e0 28 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.
e6300 64 69 73 70 6c 61 79 28 24 66 69 6e 69 73 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e display($finish.=.false).{.if.(n
e6320 75 6c 6c 20 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 ull.===.$this->startTime).{.thro
e6340 77 20 6e 65 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 w.new.\LogicException('You.must.
e6360 73 74 61 72 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 start.the.progress.bar.before.ca
e6380 6c 6c 69 6e 67 20 64 69 73 70 6c 61 79 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 lling.display().');.}..$message.
e63a0 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d =.$this->format;.foreach.($this-
e63c0 3e 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 68 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 >generate($finish).as.$name.=>.$
e63e0 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 value).{.$message.=.str_replace(
e6400 22 25 7b 24 6e 61 6d 65 7d 25 22 2c 20 24 76 61 6c 75 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a "%{$name}%",.$value,.$message);.
e6420 7d 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 74 70 75 74 }.$this->overwrite($this->output
e6440 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ,.$message);.}.........public.fu
e6460 6e 63 74 69 6f 6e 20 63 6c 65 61 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 nction.clear().{.$this->overwrit
e6480 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c e($this->output,.'');.}.....publ
e64a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 ic.function.finish().{.if.(null.
e64c0 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
e64e0 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
e6500 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
e6520 67 20 66 69 6e 69 73 68 28 29 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 g.finish().');.}..if.(null.!==.$
e6540 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d this->startTime).{.if.(!$this->m
e6560 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 68 69 73 2d 3e 62 61 ax).{.$this->barChar.=.$this->ba
e6580 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 74 72 rCharOriginal;.$this->display(tr
e65a0 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 6e 75 6c 6c 3b 0a ue);.}.$this->startTime.=.null;.
e65c0 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 24 74 68 69 $this->output->writeln('');.$thi
e65e0 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 s->output.=.null;.}.}.....privat
e6600 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d e.function.initialize().{.$this-
e6620 3e 66 6f 72 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 >formatVars.=.array();.foreach.(
e6640 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 46 6f 72 6d 61 74 56 61 72 73 20 61 73 20 24 76 61 72 $this->defaultFormatVars.as.$var
e6660 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e ).{.if.(false.!==.strpos($this->
e6680 66 6f 72 6d 61 74 2c 20 22 25 7b 24 76 61 72 7d 25 22 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f format,."%{$var}%")).{.$this->fo
e66a0 72 6d 61 74 56 61 72 73 5b 24 76 61 72 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 rmatVars[$var].=.true;.}.}..if.(
e66c0 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 77 69 64 74 68 73 5b $this->max.>.0).{.$this->widths[
e66e0 27 6d 61 78 27 5d 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 'max'].=.$this->strlen($this->ma
e6700 78 29 3b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 20 3d 20 24 x);.$this->widths['current'].=.$
e6720 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 this->widths['max'];.}.else.{.$t
e6740 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 his->barCharOriginal.=.$this->ba
e6760 72 43 68 61 72 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 68 69 73 2d 3e 65 rChar;.$this->barChar.=.$this->e
e6780 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 mptyBarChar;.}.}.........private
e67a0 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 68 20 3d 20 66 61 6c .function.generate($finish.=.fal
e67c0 73 65 29 0a 7b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 65 72 63 65 6e 74 20 se).{.$vars.=.array();.$percent.
e67e0 3d 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 70 65 72 63 =.0;.if.($this->max.>.0).{.$perc
e6800 65 6e 74 20 3d 20 28 66 6c 6f 61 74 29 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 ent.=.(float).$this->current./.$
e6820 74 68 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 this->max;.}..if.(isset($this->f
e6840 6f 72 6d 61 74 56 61 72 73 5b 27 62 61 72 27 5d 29 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 ormatVars['bar'])).{.$completeBa
e6860 72 73 20 3d 20 30 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 rs.=.0;..if.($this->max.>.0).{.$
e6880 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 70 65 72 63 65 6e 74 20 2a 20 completeBars.=.floor($percent.*.
e68a0 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 $this->barWidth);.}.else.{.if.(!
e68c0 24 66 69 6e 69 73 68 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 $finish).{.$completeBars.=.floor
e68e0 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 ($this->current.%.$this->barWidt
e6900 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 24 74 68 h);.}.else.{.$completeBars.=.$th
e6920 69 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 7d 0a 0a 24 65 6d 70 74 79 42 61 72 73 20 3d 20 is->barWidth;.}.}..$emptyBars.=.
e6940 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 $this->barWidth.-.$completeBars.
e6960 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 -.$this->strlen($this->progressC
e6980 68 61 72 29 3b 0a 24 62 61 72 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 62 har);.$bar.=.str_repeat($this->b
e69a0 61 72 43 68 61 72 2c 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 29 3b 0a 69 66 20 28 24 63 6f 6d arChar,.$completeBars);.if.($com
e69c0 70 6c 65 74 65 42 61 72 73 20 3c 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 20 7b 0a 24 pleteBars.<.$this->barWidth).{.$
e69e0 62 61 72 20 2e 3d 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b 0a 24 62 61 72 bar..=.$this->progressChar;.$bar
e6a00 20 2e 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 ..=.str_repeat($this->emptyBarCh
e6a20 61 72 2c 20 24 65 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 24 76 61 72 73 5b 27 62 61 72 27 5d ar,.$emptyBars);.}..$vars['bar']
e6a40 20 3d 20 24 62 61 72 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 .=.$bar;.}..if.(isset($this->for
e6a60 6d 61 74 56 61 72 73 5b 27 65 6c 61 70 73 65 64 27 5d 29 29 20 7b 0a 24 65 6c 61 70 73 65 64 20 matVars['elapsed'])).{.$elapsed.
e6a80 3d 20 74 69 6d 65 28 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 3b 0a 24 76 61 =.time().-.$this->startTime;.$va
e6aa0 72 73 5b 27 65 6c 61 70 73 65 64 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 68 rs['elapsed'].=.str_pad($this->h
e6ac0 75 6d 61 6e 65 54 69 6d 65 28 24 65 6c 61 70 73 65 64 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 umaneTime($elapsed),.$this->widt
e6ae0 68 73 5b 27 65 6c 61 70 73 65 64 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 hs['elapsed'],.'.',.STR_PAD_LEFT
e6b00 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 );.}..if.(isset($this->formatVar
e6b20 73 5b 27 63 75 72 72 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 63 75 72 72 65 6e 74 27 s['current'])).{.$vars['current'
e6b40 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2c 20 24 74 68 69 ].=.str_pad($this->current,.$thi
e6b60 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 s->widths['current'],.'.',.STR_P
e6b80 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f AD_LEFT);.}..if.(isset($this->fo
e6ba0 72 6d 61 74 56 61 72 73 5b 27 6d 61 78 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 6d 61 78 27 5d rmatVars['max'])).{.$vars['max']
e6bc0 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 .=.$this->max;.}..if.(isset($thi
e6be0 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 s->formatVars['percent'])).{.$va
e6c00 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 66 6c 6f 6f 72 28 24 70 rs['percent'].=.str_pad(floor($p
e6c20 65 72 63 65 6e 74 20 2a 20 31 30 30 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 70 65 ercent.*.100),.$this->widths['pe
e6c40 72 63 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 7d 0a 0a rcent'],.'.',.STR_PAD_LEFT);.}..
e6c60 72 65 74 75 72 6e 20 24 76 61 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 return.$vars;.}.........private.
e6c80 66 75 6e 63 74 69 6f 6e 20 68 75 6d 61 6e 65 54 69 6d 65 28 24 73 65 63 73 29 0a 7b 0a 24 74 65 function.humaneTime($secs).{.$te
e6ca0 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 69 6d 65 46 6f 72 xt.=.'';.foreach.($this->timeFor
e6cc0 6d 61 74 73 20 61 73 20 24 66 6f 72 6d 61 74 29 20 7b 0a 69 66 20 28 24 73 65 63 73 20 3c 20 24 mats.as.$format).{.if.($secs.<.$
e6ce0 66 6f 72 6d 61 74 5b 30 5d 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 66 6f 72 6d 61 74 29 20 format[0]).{.if.(count($format).
e6d00 3d 3d 20 32 29 20 7b 0a 24 74 65 78 74 20 3d 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 ==.2).{.$text.=.$format[1];.brea
e6d20 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 3d 20 63 65 69 6c 28 24 73 65 63 73 20 2f k;.}.else.{.$text.=.ceil($secs./
e6d40 20 24 66 6f 72 6d 61 74 5b 32 5d 29 2e 27 20 27 2e 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 .$format[2]).'.'.$format[1];.bre
e6d60 61 6b 3b 0a 7d 0a 7d 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 ak;.}.}.}..return.$text;.}......
e6d80 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 4f 75 74 ..private.function.overwrite(Out
e6da0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 29 0a putInterface.$output,.$message).
e6dc0 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 {.$length.=.$this->strlen($messa
e6de0 67 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 ge);....if.(null.!==.$this->last
e6e00 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 26 26 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 MessagesLength.&&.$this->lastMes
e6e20 73 61 67 65 73 4c 65 6e 67 74 68 20 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6d 65 73 73 61 67 sagesLength.>.$length).{.$messag
e6e40 65 20 3d 20 73 74 72 5f 70 61 64 28 24 6d 65 73 73 61 67 65 2c 20 24 74 68 69 73 2d 3e 6c 61 73 e.=.str_pad($message,.$this->las
e6e60 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 2c 20 22 5c 78 32 30 22 2c 20 53 54 52 5f 50 41 44 tMessagesLength,."\x20",.STR_PAD
e6e80 5f 52 49 47 48 54 29 3b 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 78 _RIGHT);.}....$output->write("\x
e6ea0 30 44 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0D");.$output->write($message);.
e6ec0 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 24 74 68 .$this->lastMessagesLength.=.$th
e6ee0 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c is->strlen($message);.}.....publ
e6f00 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 27 ic.function.getName().{.return.'
e6f20 70 72 6f 67 72 65 73 73 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e progress';.}.}.<?php...........n
e6f40 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
e6f60 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 6e le\Helper;..use.Symfony\Componen
e6f80 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;.
e6fa0 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
e6fc0 70 75 74 5c 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 put\InputAwareInterface;.......a
e6fe0 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 20 65 bstract.class.InputAwareHelper.e
e7000 78 74 65 6e 64 73 20 48 65 6c 70 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 41 77 xtends.Helper.implements.InputAw
e7020 61 72 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b areInterface.{.protected.$input;
e7040 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 75 74 28 49 6e .....public.function.setInput(In
e7060 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e putInterface.$input).{.$this->in
e7080 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a put.=.$input;.}.}.<?php.........
e70a0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
e70c0 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 nsole\Helper;........class.Table
e70e0 53 74 79 6c 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 64 64 69 6e 67 43 68 61 72 20 3d 20 27 Style.{.private.$paddingChar.=.'
e7100 20 27 3b 0a 70 72 69 76 61 74 65 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 .';.private.$horizontalBorderCha
e7120 72 20 3d 20 27 2d 27 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 r.=.'-';.private.$verticalBorder
e7140 43 68 61 72 20 3d 20 27 7c 27 3b 0a 70 72 69 76 61 74 65 20 24 63 72 6f 73 73 69 6e 67 43 68 61 Char.=.'|';.private.$crossingCha
e7160 72 20 3d 20 27 2b 27 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 r.=.'+';.private.$cellHeaderForm
e7180 61 74 20 3d 20 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 3b 0a 70 72 69 76 61 74 65 20 at.=.'<info>%s</info>';.private.
e71a0 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 3d 20 27 25 73 27 3b 0a 70 72 69 76 61 74 65 20 24 $cellRowFormat.=.'%s';.private.$
e71c0 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 20 3d 20 27 20 25 73 20 27 3b 0a 70 cellRowContentFormat.=.'.%s.';.p
e71e0 72 69 76 61 74 65 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 20 3d 20 27 25 73 27 3b 0a 70 72 69 rivate.$borderFormat.=.'%s';.pri
e7200 76 61 74 65 20 24 70 61 64 54 79 70 65 20 3d 20 53 54 52 5f 50 41 44 5f 52 49 47 48 54 3b 0a 0a vate.$padType.=.STR_PAD_RIGHT;..
e7220 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 6e .......public.function.setPaddin
e7240 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 64 gChar($paddingChar).{.if.(!$padd
e7260 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 70 ingChar).{.throw.new.\LogicExcep
e7280 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 20 tion('The.padding.char.must.not.
e72a0 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 61 be.empty');.}..$this->paddingCha
e72c0 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 3b r.=.$paddingChar;..return.$this;
e72e0 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 50 61 64 64 .}.......public.function.getPadd
e7300 69 6e 67 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 64 64 69 6e ingChar().{.return.$this->paddin
e7320 67 43 68 61 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 gChar;.}.........public.function
e7340 20 73 65 74 48 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 .setHorizontalBorderChar($horizo
e7360 6e 74 61 6c 42 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 ntalBorderChar).{.$this->horizon
e7380 74 61 6c 42 6f 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 talBorderChar.=.$horizontalBorde
e73a0 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 70 75 rChar;..return.$this;.}.......pu
e73c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 blic.function.getHorizontalBorde
e73e0 72 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 rChar().{.return.$this->horizont
e7400 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 alBorderChar;.}.........public.f
e7420 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 28 24 76 unction.setVerticalBorderChar($v
e7440 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 65 72 74 erticalBorderChar).{.$this->vert
e7460 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 64 65 72 icalBorderChar.=.$verticalBorder
e7480 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 70 75 62 Char;..return.$this;.}.......pub
e74a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 lic.function.getVerticalBorderCh
e74c0 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 74 69 63 61 6c 42 6f 72 ar().{.return.$this->verticalBor
e74e0 64 65 72 43 68 61 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 derChar;.}.........public.functi
e7500 6f 6e 20 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 24 63 72 6f 73 73 69 6e 67 43 68 61 72 on.setCrossingChar($crossingChar
e7520 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 20 3d 20 24 63 72 6f 73 73 ).{.$this->crossingChar.=.$cross
e7540 69 6e 67 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 ingChar;..return.$this;.}.......
e7560 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 public.function.getCrossingChar(
e7580 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a ).{.return.$this->crossingChar;.
e75a0 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 65 6c }.........public.function.setCel
e75c0 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 46 6f 72 6d 61 74 29 lHeaderFormat($cellHeaderFormat)
e75e0 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 74 20 3d 20 24 63 65 .{.$this->cellHeaderFormat.=.$ce
e7600 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 74 68 69 73 3b 0a 7d llHeaderFormat;..return.$this;.}
e7620 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 65 6c 6c 48 65 .......public.function.getCellHe
e7640 61 64 65 72 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c aderFormat().{.return.$this->cel
e7660 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 lHeaderFormat;.}.........public.
e7680 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 function.setCellRowFormat($cellR
e76a0 6f 77 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 owFormat).{.$this->cellRowFormat
e76c0 20 3d 20 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .=.$cellRowFormat;..return.$this
e76e0 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 43 65 6c ;.}.......public.function.getCel
e7700 6c 52 6f 77 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c lRowFormat().{.return.$this->cel
e7720 6c 52 6f 77 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e lRowFormat;.}.........public.fun
e7740 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 24 63 ction.setCellRowContentFormat($c
e7760 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 ellRowContentFormat).{.$this->ce
e7780 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 20 3d 20 24 63 65 6c 6c 52 6f 77 43 6f 6e llRowContentFormat.=.$cellRowCon
e77a0 74 65 6e 74 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 tentFormat;..return.$this;.}....
e77c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c 6c 52 6f 77 43 6f 6e ...public.function.getCellRowCon
e77e0 74 65 6e 74 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c tentFormat().{.return.$this->cel
e7800 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 lRowContentFormat;.}.........pub
e7820 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 24 62 6f lic.function.setBorderFormat($bo
e7840 72 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 rderFormat).{.$this->borderForma
e7860 74 20 3d 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 t.=.$borderFormat;..return.$this
e7880 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 42 6f 72 ;.}.......public.function.getBor
e78a0 64 65 72 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 6f 72 64 derFormat().{.return.$this->bord
e78c0 65 72 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 erFormat;.}.........public.funct
e78e0 69 6f 6e 20 73 65 74 50 61 64 54 79 70 65 28 24 70 61 64 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 ion.setPadType($padType).{.$this
e7900 2d 3e 70 61 64 54 79 70 65 20 3d 20 24 70 61 64 54 79 70 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 ->padType.=.$padType;..return.$t
e7920 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 67 65 74 his;.}.......public.function.get
e7940 50 61 64 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 64 54 79 70 PadType().{.return.$this->padTyp
e7960 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
e7980 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
e79a0 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
e79c0 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
e79e0 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
e7a00 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
e7a20 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ole\Output\OutputInterface;.use.
e7a40 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 65 Symfony\Component\EventDispatche
e7a60 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 6e r\Event;.......class.ConsoleEven
e7a80 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 6d t.extends.Event.{.protected.$com
e7aa0 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 24 mand;..private.$input;.private.$
e7ac0 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 74 output;..public.function.__const
e7ae0 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 65 ruct(Command.$command,.InputInte
e7b00 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
e7b20 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 61 utput).{.$this->command.=.$comma
e7b40 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 73 nd;.$this->input.=.$input;.$this
e7b60 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 6c ->output.=.$output;.}.......publ
e7b80 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 72 ic.function.getCommand().{.retur
e7ba0 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 63 n.$this->command;.}.......public
e7bc0 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 74 .function.getInput().{.return.$t
e7be0 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 74 his->input;.}.......public.funct
e7c00 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 3e ion.getOutput().{.return.$this->
e7c20 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 65 output;.}.}.<?php...........name
e7c40 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 5c space.Symfony\Component\Console\
e7c60 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 6f Event;..use.Symfony\Component\Co
e7c80 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 6f nsole\Command\Command;.use.Symfo
e7ca0 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
e7cc0 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
e7ce0 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;
e7d00 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 65 .......class.ConsoleTerminateEve
e7d20 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 70 nt.extends.ConsoleEvent.{......p
e7d40 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 69 rivate.$exitCode;..public.functi
e7d60 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 2c on.__construct(Command.$command,
e7d80 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 6e .InputInterface.$input,.OutputIn
e7da0 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 61 terface.$output,.$exitCode).{.pa
e7dc0 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 70 rent::__construct($command,.$inp
e7de0 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 64 ut,.$output);..$this->setExitCod
e7e00 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 6e e($exitCode);.}.......public.fun
e7e20 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 24 ction.setExitCode($exitCode).{.$
e7e40 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 65 this->exitCode.=.(int).$exitCode
e7e60 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 69 ;.}.......public.function.getExi
e7e80 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 65 tCode().{.return.$this->exitCode
e7ea0 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.
e7ec0 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 3b Symfony\Component\Console\Event;
e7ee0 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\
e7f00 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 6d Command\Command;.use.Symfony\Com
e7f20 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 66 ponent\Console\Input\InputInterf
e7f40 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
e7f60 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a le\Output\OutputInterface;......
e7f80 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 74 .class.ConsoleExceptionEvent.ext
e7fa0 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 63 ends.ConsoleEvent.{.private.$exc
e7fc0 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 6c eption;.private.$exitCode;..publ
e7fe0 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 20 ic.function.__construct(Command.
e8000 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 2c $command,.InputInterface.$input,
e8020 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 70 .OutputInterface.$output,.\Excep
e8040 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 61 tion.$exception,.$exitCode).{.pa
e8060 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 70 rent::__construct($command,.$inp
e8080 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 69 ut,.$output);..$this->setExcepti
e80a0 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 20 on($exception);.$this->exitCode.
e80c0 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 69 =.(int).$exitCode;.}.......publi
e80e0 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 75 c.function.getException().{.retu
e8100 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 70 rn.$this->exception;.}.........p
e8120 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 63 ublic.function.setException(\Exc
e8140 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 65 eption.$exception).{.$this->exce
e8160 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 6c ption.=.$exception;.}.......publ
e8180 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 75 ic.function.getExitCode().{.retu
e81a0 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 0a rn.$this->exitCode;.}.}.<?php...
e81c0 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
e81e0 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 43 ent\Console\Event;.......class.C
e8200 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 6f onsoleCommandEvent.extends.Conso
e8220 6c 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 52 45 54 55 52 4e 5f 43 4f 44 45 5f 44 leEvent.{....const.RETURN_CODE_D
e8240 49 53 41 42 4c 45 44 20 3d 20 31 31 33 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f ISABLED.=.113;.......private.$co
e8260 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 mmandShouldRun.=.true;.......pub
e8280 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a lic.function.disableCommand().{.
e82a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 20 3d return.$this->commandShouldRun.=
e82c0 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.
e82e0 65 6e 61 62 6c 65 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e enableCommand().{.return.$this->
e8300 63 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a commandShouldRun.=.true;.}......
e8320 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 .public.function.commandShouldRu
e8340 6e 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 53 68 6f 75 6c n().{.return.$this->commandShoul
e8360 64 52 75 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 dRun;.}.}.<?php...........namesp
e8380 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 3b 0a 0a ace.Symfony\Component\Console;..
e83a0 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 73 0a 7b .....final.class.ConsoleEvents.{
e83c0 0a 0a 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 6f .............const.COMMAND.=.'co
e83e0 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 0a 0a 63 6f 6e 73 nsole.command';.............cons
e8400 74 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 t.TERMINATE.=.'console.terminate
e8420 27 3b 0a 0a 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 ';..............const.EXCEPTION.
e8440 3d 20 27 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 =.'console.exception';.}.<?php..
e8460 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
e8480 6e 65 6e 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 nent\Finder;..use.Symfony\Compon
e84a0 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 49 6e 74 65 72 66 ent\Finder\Adapter\AdapterInterf
e84c0 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 46 69 6e 64 65 ace;.use.Symfony\Component\Finde
e84e0 72 5c 41 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 r\Adapter\GnuFindAdapter;.use.Sy
e8500 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 5c 42 mfony\Component\Finder\Adapter\B
e8520 73 64 46 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 sdFindAdapter;.use.Symfony\Compo
e8540 6e 65 6e 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 nent\Finder\Adapter\PhpAdapter;.
e8560 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
e8580 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 parator\DateComparator;.use.Symf
e85a0 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 5c ony\Component\Finder\Comparator\
e85c0 4e 75 6d 62 65 72 43 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 NumberComparator;.use.Symfony\Co
e85e0 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 45 78 63 65 70 74 69 mponent\Finder\Exception\Excepti
e8600 6f 6e 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 onInterface;.use.Symfony\Compone
e8620 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 nt\Finder\Iterator\CustomFilterI
e8640 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 6e 65 6e 74 5c 46 terator;.use.Symfony\Component\F
e8660 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 inder\Iterator\DateRangeFilterIt
e8680 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 6e 65 6e 74 5c 46 69 erator;.use.Symfony\Component\Fi
e86a0 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 nder\Iterator\DepthRangeFilterIt
e86c0 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 6e 65 6e 74 5c 46 69 erator;.use.Symfony\Component\Fi
e86e0 6e 64 65 72 5c 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 69 nder\Iterator\ExcludeDirectoryFi
e8700 6c 74 65 72 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 6e lterIterator;.use.Symfony\Compon
e8720 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 ent\Finder\Iterator\FilecontentF
e8740 69 6c 74 65 72 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 ilterIterator;.use.Symfony\Compo
e8760 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 6c nent\Finder\Iterator\FilenameFil
e8780 74 65 72 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 6e 65 terIterator;.use.Symfony\Compone
e87a0 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 nt\Finder\Iterator\SizeRangeFilt
e87c0 65 72 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 6e 65 6e erIterator;.use.Symfony\Componen
e87e0 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 t\Finder\Iterator\SortableIterat
e8800 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6e 64 65 72 or;.................class.Finder
e8820 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2c 20 .implements.\IteratorAggregate,.
e8840 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 \Countable.{.const.IGNORE_VCS_FI
e8860 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 LES.=.1;.const.IGNORE_DOT_FILES.
e8880 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 =.2;..private.$mode.=.0;.private
e88a0 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 4e .$names.=.array();.private.$notN
e88c0 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 65 78 63 6c 75 64 65 ames.=.array();.private.$exclude
e88e0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 .=.array();.private.$filters.=.a
e8900 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 65 70 74 68 73 20 3d 20 61 72 72 61 79 28 rray();.private.$depths.=.array(
e8920 29 3b 0a 70 72 69 76 61 74 65 20 24 73 69 7a 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 );.private.$sizes.=.array();.pri
e8940 76 61 74 65 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 vate.$followLinks.=.false;.priva
e8960 74 65 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 te.$sort.=.false;.private.$ignor
e8980 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a e.=.0;.private.$dirs.=.array();.
e89a0 70 72 69 76 61 74 65 20 24 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 private.$dates.=.array();.privat
e89c0 65 20 24 69 74 65 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 e.$iterators.=.array();.private.
e89e0 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f $contains.=.array();.private.$no
e8a00 74 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 61 64 tContains.=.array();.private.$ad
e8a20 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 70 61 74 68 73 apters.=.array();.private.$paths
e8a40 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 50 61 74 68 73 20 3d 20 .=.array();.private.$notPaths.=.
e8a60 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 array();.private.$ignoreUnreadab
e8a80 6c 65 44 69 72 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 leDirs.=.false;..private.static.
e8aa0 24 76 63 73 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 $vcsPatterns.=.array('.svn',.'_s
e8ac0 76 6e 27 2c 20 27 43 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 vn',.'CVS',.'_darcs',.'.arch-par
e8ae0 61 6d 73 27 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 ams',.'.monotone',.'.bzr',.'.git
e8b00 27 2c 20 27 2e 68 67 27 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f ',.'.hg');.....public.function._
e8b20 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 73 _construct().{.$this->ignore.=.s
e8b40 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 7c 20 73 74 61 74 69 63 tatic::IGNORE_VCS_FILES.|.static
e8b60 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 0a 24 74 68 69 73 0a 2d 3e 61 64 64 ::IGNORE_DOT_FILES;..$this.->add
e8b80 41 64 61 70 74 65 72 28 6e 65 77 20 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 0a 2d 3e Adapter(new.GnuFindAdapter()).->
e8ba0 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 addAdapter(new.BsdFindAdapter())
e8bc0 0a 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 50 68 70 41 64 61 70 74 65 72 28 29 2c 20 .->addAdapter(new.PhpAdapter(),.
e8be0 2d 35 30 29 0a 2d 3e 73 65 74 41 64 61 70 74 65 72 28 27 70 68 70 27 29 0a 3b 0a 7d 0a 0a 0a 0a -50).->setAdapter('php').;.}....
e8c00 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 63 72 65 61 .....public.static.function.crea
e8c20 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 7d 0a 0a 0a te().{.return.new.static();.}...
e8c40 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 64 61 70 74 65 .......public.function.addAdapte
e8c60 72 28 41 64 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 r(AdapterInterface.$adapter,.$pr
e8c80 69 6f 72 69 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 iority.=.0).{.$this->adapters[$a
e8ca0 64 61 70 74 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 dapter->getName()].=.array(.'ada
e8cc0 70 74 65 72 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 pter'.=>.$adapter,.'priority'.=>
e8ce0 20 24 70 72 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 .$priority,.'selected'.=>.false,
e8d00 0a 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 70 74 65 72 73 28 .);..return.$this->sortAdapters(
e8d20 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 75 73 65 42 65 );.}.......public.function.useBe
e8d40 73 74 41 64 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 stAdapter().{.$this->resetAdapte
e8d60 72 53 65 6c 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 rSelection();..return.$this->sor
e8d80 74 41 64 61 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 tAdapters();.}...........public.
e8da0 66 75 6e 63 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 function.setAdapter($name).{.if.
e8dc0 28 21 69 73 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 (!isset($this->adapters[$name]))
e8de0 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
e8e00 65 70 74 69 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 eption(sprintf('Adapter."%s".doe
e8e20 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 s.not.exist.',.$name));.}..$this
e8e40 2d 3e 72 65 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 ->resetAdapterSelection();.$this
e8e60 2d 3e 61 64 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 ->adapters[$name]['selected'].=.
e8e80 74 72 75 65 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 true;..return.$this->sortAdapter
e8ea0 73 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 72 65 6d s();.}.......public.function.rem
e8ec0 6f 76 65 41 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 oveAdapters().{.$this->adapters.
e8ee0 3d 20 61 72 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 =.array();..return.$this;.}.....
e8f00 0a 0a 70 75 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 ..public.function.getAdapters().
e8f20 7b 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 6d 61 70 28 {.return.array_values(array_map(
e8f40 66 75 6e 63 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 function.(array.$adapter).{.retu
e8f60 72 6e 20 24 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 rn.$adapter['adapter'];.},.$this
e8f80 2d 3e 61 64 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 ->adapters));.}.........public.f
e8fa0 75 6e 63 74 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 unction.directories().{.$this->m
e8fc0 6f 64 65 20 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 ode.=.Iterator\FileTypeFilterIte
e8fe0 72 61 74 6f 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 rator::ONLY_DIRECTORIES;..return
e9000 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
e9020 6e 20 66 69 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 n.files().{.$this->mode.=.Iterat
e9040 6f 72 5c 46 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 or\FileTypeFilterIterator::ONLY_
e9060 46 49 4c 45 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 FILES;..return.$this;.}.........
e9080 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 65 70 74 68 28 ..........public.function.depth(
e90a0 24 6c 65 76 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 $level).{.$this->depths[].=.new.
e90c0 43 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 28 24 6c 65 76 Comparator\NumberComparator($lev
e90e0 65 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a el);..return.$this;.}...........
e9100 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 61 74 65 28 ...........public.function.date(
e9120 24 64 61 74 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 $date).{.$this->dates[].=.new.Co
e9140 6d 70 61 72 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 mparator\DateComparator($date);.
e9160 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;.}................
e9180 0a 0a 0a 70 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 ...public.function.name($pattern
e91a0 29 0a 7b 0a 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 ).{.$this->names[].=.$pattern;..
e91c0 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c return.$this;.}.............publ
e91e0 69 63 20 66 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 ic.function.notName($pattern).{.
e9200 24 74 68 69 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 $this->notNames[].=.$pattern;..r
e9220 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 70 75 eturn.$this;.}................pu
e9240 62 6c 69 63 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 blic.function.contains($pattern)
e9260 0a 7b 0a 24 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 .{.$this->contains[].=.$pattern;
e9280 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;.}...............
e92a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 70 61 .public.function.notContains($pa
e92c0 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 ttern).{.$this->notContains[].=.
e92e0 24 70 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 $pattern;..return.$this;.}......
e9300 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 70 61 74 68 ............public.function.path
e9320 28 24 70 61 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 ($pattern).{.$this->paths[].=.$p
e9340 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;.}........
e9360 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 74 50 61 74 ..........public.function.notPat
e9380 68 28 24 70 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 h($pattern).{.$this->notPaths[].
e93a0 3d 20 24 70 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 =.$pattern;..return.$this;.}....
e93c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 ..............public.function.si
e93e0 7a 65 28 24 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 ze($size).{.$this->sizes[].=.new
e9400 20 43 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 28 24 73 69 .Comparator\NumberComparator($si
e9420 7a 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ze);..return.$this;.}...........
e9440 0a 0a 70 75 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 ..public.function.exclude($dirs)
e9460 0a 7b 0a 24 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 .{.$this->exclude.=.array_merge(
e9480 24 74 68 69 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 $this->exclude,.(array).$dirs);.
e94a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .return.$this;.}.............pub
e94c0 6c 69 63 20 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 lic.function.ignoreDotFiles($ign
e94e0 6f 72 65 44 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 oreDotFiles).{.if.($ignoreDotFil
e9500 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 3d 20 73 74 61 74 69 63 3a 3a 49 es).{.$this->ignore.|=.static::I
e9520 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d GNORE_DOT_FILES;.}.else.{.$this-
e9540 3e 69 67 6e 6f 72 65 20 26 3d 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 >ignore.&=.~static::IGNORE_DOT_F
e9560 49 4c 45 53 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 ILES;.}..return.$this;.}........
e9580 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 56 43 53 28 24 .....public.function.ignoreVCS($
e95a0 69 67 6e 6f 72 65 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 ignoreVCS).{.if.($ignoreVCS).{.$
e95c0 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 3d 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 this->ignore.|=.static::IGNORE_V
e95e0 43 53 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 CS_FILES;.}.else.{.$this->ignore
e9600 20 26 3d 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d .&=.~static::IGNORE_VCS_FILES;.}
e9620 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ..return.$this;.}.........public
e9640 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 43 53 50 61 74 74 65 72 6e 28 24 .static.function.addVCSPattern($
e9660 70 61 74 74 65 72 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 pattern).{.foreach.((array).$pat
e9680 74 65 72 6e 20 61 73 20 24 70 29 20 7b 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 tern.as.$p).{.self::$vcsPatterns
e96a0 5b 5d 20 3d 20 24 70 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 20 3d [].=.$p;.}..self::$vcsPatterns.=
e96c0 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 .array_unique(self::$vcsPatterns
e96e0 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 20 66 75 6e 63 );.}.................public.func
e9700 74 69 6f 6e 20 73 6f 72 74 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 tion.sort(\Closure.$closure).{.$
e9720 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 this->sort.=.$closure;..return.$
e9740 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 this;.}.............public.funct
e9760 69 6f 6e 20 73 6f 72 74 42 79 4e 61 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d ion.sortByName().{.$this->sort.=
e9780 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 .Iterator\SortableIterator::SORT
e97a0 5f 42 59 5f 4e 41 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 _BY_NAME;..return.$this;.}......
e97c0 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 42 79 54 79 70 .......public.function.sortByTyp
e97e0 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 72 e().{.$this->sort.=.Iterator\Sor
e9800 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 45 3b 0a 0a 72 65 tableIterator::SORT_BY_TYPE;..re
e9820 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 70 75 62 6c turn.$this;.}...............publ
e9840 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 ic.function.sortByAccessedTime()
e9860 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 .{.$this->sort.=.Iterator\Sortab
e9880 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 44 5f 54 49 4d leIterator::SORT_BY_ACCESSED_TIM
e98a0 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a E;..return.$this;.}.............
e98c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 43 68 61 6e 67 65 ....public.function.sortByChange
e98e0 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 dTime().{.$this->sort.=.Iterator
e9900 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 43 48 41 4e 47 \SortableIterator::SORT_BY_CHANG
e9920 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ED_TIME;..return.$this;.}.......
e9940 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 42 79 4d 6f ........public.function.sortByMo
e9960 64 69 66 69 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 difiedTime().{.$this->sort.=.Ite
e9980 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f rator\SortableIterator::SORT_BY_
e99a0 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a MODIFIED_TIME;..return.$this;.}.
e99c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 ...............public.function.f
e99e0 69 6c 74 65 72 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 ilter(\Closure.$closure).{.$this
e9a00 2d 3e 66 69 6c 74 65 72 73 5b 5d 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 ->filters[].=.$closure;..return.
e9a20 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
e9a40 20 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 .followLinks().{.$this->followLi
e9a60 6e 6b 73 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a nks.=.true;..return.$this;.}....
e9a80 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 .......public.function.ignoreUnr
e9aa0 65 61 64 61 62 6c 65 44 69 72 73 28 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 eadableDirs($ignore.=.true).{.$t
e9ac0 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 28 62 6f 6f his->ignoreUnreadableDirs.=.(boo
e9ae0 6c 29 20 24 69 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 l).$ignore;..return.$this;.}....
e9b00 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 6e 28 24 64 69 72 .........public.function.in($dir
e9b20 73 29 0a 7b 0a 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 s).{.$resolvedDirs.=.array();..f
e9b40 6f 72 65 61 63 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 oreach.((array).$dirs.as.$dir).{
e9b60 0a 69 66 20 28 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 .if.(is_dir($dir)).{.$resolvedDi
e9b80 72 73 5b 5d 20 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 rs[].=.$dir;.}.elseif.($glob.=.g
e9ba0 6c 6f 62 28 24 64 69 72 2c 20 47 4c 4f 42 5f 42 52 41 43 45 20 7c 20 47 4c 4f 42 5f 4f 4e 4c 59 lob($dir,.GLOB_BRACE.|.GLOB_ONLY
e9bc0 44 49 52 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 DIR)).{.$resolvedDirs.=.array_me
e9be0 72 67 65 28 24 72 65 73 6f 6c 76 65 64 44 69 72 73 2c 20 24 67 6c 6f 62 29 3b 0a 7d 20 65 6c 73 rge($resolvedDirs,.$glob);.}.els
e9c00 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 e.{.throw.new.\InvalidArgumentEx
e9c20 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 64 69 72 65 63 74 ception(sprintf('The."%s".direct
e9c40 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a ory.does.not.exist.',.$dir));.}.
e9c60 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 }..$this->dirs.=.array_merge($th
e9c80 69 73 2d 3e 64 69 72 73 2c 20 24 72 65 73 6f 6c 76 65 64 44 69 72 73 29 3b 0a 0a 72 65 74 75 72 is->dirs,.$resolvedDirs);..retur
e9ca0 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 n.$this;.}...........public.func
e9cc0 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 tion.getIterator().{.if.(0.===.c
e9ce0 6f 75 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 ount($this->dirs).&&.0.===.count
e9d00 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ($this->iterators)).{.throw.new.
e9d20 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 63 61 6c 6c 20 6f \LogicException('You.must.call.o
e9d40 6e 65 20 6f 66 20 69 6e 28 29 20 6f 72 20 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 73 20 62 ne.of.in().or.append().methods.b
e9d60 65 66 6f 72 65 20 69 74 65 72 61 74 69 6e 67 20 6f 76 65 72 20 61 20 46 69 6e 64 65 72 2e 27 29 efore.iterating.over.a.Finder.')
e9d80 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 72 73 ;.}..if.(1.===.count($this->dirs
e9da0 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 ).&&.0.===.count($this->iterator
e9dc0 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 s)).{.return.$this->searchInDire
e9de0 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 64 69 72 73 5b 30 5d 29 3b 0a 7d 0a 0a 24 69 74 65 72 61 ctory($this->dirs[0]);.}..$itera
e9e00 74 6f 72 20 3d 20 6e 65 77 20 5c 41 70 70 65 6e 64 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 tor.=.new.\AppendIterator();.for
e9e20 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 69 74 each.($this->dirs.as.$dir).{.$it
e9e40 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 erator->append($this->searchInDi
e9e60 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 rectory($dir));.}..foreach.($thi
e9e80 73 2d 3e 69 74 65 72 61 74 6f 72 73 20 61 73 20 24 69 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 s->iterators.as.$it).{.$iterator
e9ea0 2d 3e 61 70 70 65 6e 64 28 24 69 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 ->append($it);.}..return.$iterat
e9ec0 6f 72 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 or;.}.............public.functio
e9ee0 6e 20 61 70 70 65 6e 64 28 24 69 74 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 65 72 61 n.append($iterator).{.if.($itera
e9f00 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 tor.instanceof.\IteratorAggregat
e9f20 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 e).{.$this->iterators[].=.$itera
e9f40 74 6f 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 tor->getIterator();.}.elseif.($i
e9f60 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 20 7b 0a terator.instanceof.\Iterator).{.
e9f80 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a $this->iterators[].=.$iterator;.
e9fa0 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 20 5c }.elseif.($iterator.instanceof.\
e9fc0 54 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 69 73 5f 61 72 72 61 79 28 24 69 74 65 72 61 74 6f Traversable.||.is_array($iterato
e9fe0 72 29 29 20 7b 0a 24 69 74 20 3d 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 29 r)).{.$it.=.new.\ArrayIterator()
ea000 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 29 20 7b ;.foreach.($iterator.as.$file).{
ea020 0a 24 69 74 2d 3e 61 70 70 65 6e 64 28 24 66 69 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 53 .$it->append($file.instanceof.\S
ea040 70 6c 46 69 6c 65 49 6e 66 6f 20 3f 20 24 66 69 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c 46 69 6c plFileInfo.?.$file.:.new.\SplFil
ea060 65 49 6e 66 6f 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 eInfo($file));.}.$this->iterator
ea080 73 5b 5d 20 3d 20 24 69 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 s[].=.$it;.}.else.{.throw.new.\I
ea0a0 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 65 72 3a nvalidArgumentException('Finder:
ea0c0 3a 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 6e 74 20 :append().method.wrong.argument.
ea0e0 74 79 70 65 2e 27 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 type.');.}..return.$this;.}.....
ea100 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 ..public.function.count().{.retu
ea120 72 6e 20 69 74 65 72 61 74 6f 72 5f 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 74 65 72 rn.iterator_count($this->getIter
ea140 61 74 6f 72 28 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 ator());.}.....private.function.
ea160 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 75 61 73 6f 72 74 28 24 74 68 69 73 2d 3e 61 sortAdapters().{.uasort($this->a
ea180 64 61 70 74 65 72 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 61 2c 20 61 72 72 dapters,.function.(array.$a,.arr
ea1a0 61 79 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 7c 7c 20 24 ay.$b).{.if.($a['selected'].||.$
ea1c0 62 5b 27 73 65 6c 65 63 74 65 64 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 5b 27 73 65 6c 65 b['selected']).{.return.$a['sele
ea1e0 63 74 65 64 27 5d 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 5b 27 70 cted'].?.-1.:.1;.}..return.$a['p
ea200 72 69 6f 72 69 74 79 27 5d 20 3e 20 24 62 5b 27 70 72 69 6f 72 69 74 79 27 5d 20 3f 20 2d 31 20 riority'].>.$b['priority'].?.-1.
ea220 3a 20 31 3b 0a 7d 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 :.1;.});..return.$this;.}.......
ea240 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 ..private.function.searchInDirec
ea260 74 6f 72 79 28 24 64 69 72 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f tory($dir).{.if.(static::IGNORE_
ea280 56 43 53 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 56 43 VCS_FILES.===.(static::IGNORE_VC
ea2a0 53 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 68 69 S_FILES.&.$this->ignore)).{.$thi
ea2c0 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e s->exclude.=.array_merge($this->
ea2e0 65 78 63 6c 75 64 65 2c 20 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a exclude,.self::$vcsPatterns);.}.
ea300 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 3d .if.(static::IGNORE_DOT_FILES.==
ea320 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 26 20 24 74 =.(static::IGNORE_DOT_FILES.&.$t
ea340 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b his->ignore)).{.$this->notPaths[
ea360 5d 20 3d 20 27 23 28 5e 7c 2f 29 5c 2e 2e 2b 28 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 66 6f 72 65 61 ].=.'#(^|/)\..+(/|$)#';.}..forea
ea380 63 68 20 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 61 73 20 24 61 64 61 70 74 65 72 29 ch.($this->adapters.as.$adapter)
ea3a0 20 7b 0a 69 66 20 28 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 2d 3e 69 73 53 75 .{.if.($adapter['adapter']->isSu
ea3c0 70 70 6f 72 74 65 64 28 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 0a pported()).{.try.{.return.$this.
ea3e0 2d 3e 62 75 69 6c 64 41 64 61 70 74 65 72 28 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 ->buildAdapter($adapter['adapter
ea400 27 5d 29 0a 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 3b 0a 7d ']).->searchInDirectory($dir);.}
ea420 20 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 65 29 20 7b .catch.(ExceptionInterface.$e).{
ea440 0a 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 .}.}.}..throw.new.\RuntimeExcept
ea460 69 6f 6e 28 27 4e 6f 20 73 75 70 70 6f 72 74 65 64 20 61 64 61 70 74 65 72 20 66 6f 75 6e 64 2e ion('No.supported.adapter.found.
ea480 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 6e 20 62 75 69 ');.}.......private.function.bui
ea4a0 6c 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 ldAdapter(AdapterInterface.$adap
ea4c0 74 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 61 64 61 70 74 65 72 0a 2d 3e 73 65 74 46 6f 6c 6c ter).{.return.$adapter.->setFoll
ea4e0 6f 77 4c 69 6e 6b 73 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 2d 3e 73 65 owLinks($this->followLinks).->se
ea500 74 44 65 70 74 68 73 28 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 0a 2d 3e 73 65 74 4d 6f 64 65 tDepths($this->depths).->setMode
ea520 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 0a 2d 3e 73 65 74 45 78 63 6c 75 64 65 28 24 74 68 69 73 ($this->mode).->setExclude($this
ea540 2d 3e 65 78 63 6c 75 64 65 29 0a 2d 3e 73 65 74 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 61 6d ->exclude).->setNames($this->nam
ea560 65 73 29 0a 2d 3e 73 65 74 4e 6f 74 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 es).->setNotNames($this->notName
ea580 73 29 0a 2d 3e 73 65 74 43 6f 6e 74 61 69 6e 73 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 s).->setContains($this->contains
ea5a0 29 0a 2d 3e 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e ).->setNotContains($this->notCon
ea5c0 74 61 69 6e 73 29 0a 2d 3e 73 65 74 53 69 7a 65 73 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 0a tains).->setSizes($this->sizes).
ea5e0 2d 3e 73 65 74 44 61 74 65 73 28 24 74 68 69 73 2d 3e 64 61 74 65 73 29 0a 2d 3e 73 65 74 46 69 ->setDates($this->dates).->setFi
ea600 6c 74 65 72 73 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 0a 2d 3e 73 65 74 53 6f 72 74 28 lters($this->filters).->setSort(
ea620 24 74 68 69 73 2d 3e 73 6f 72 74 29 0a 2d 3e 73 65 74 50 61 74 68 28 24 74 68 69 73 2d 3e 70 61 $this->sort).->setPath($this->pa
ea640 74 68 73 29 0a 2d 3e 73 65 74 4e 6f 74 50 61 74 68 28 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 ths).->setNotPath($this->notPath
ea660 73 29 0a 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 74 68 69 73 2d s).->ignoreUnreadableDirs($this-
ea680 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 >ignoreUnreadableDirs);.}.....pr
ea6a0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 ivate.function.resetAdapterSelec
ea6c0 74 69 6f 6e 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 72 61 79 tion().{.$this->adapters.=.array
ea6e0 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 70 72 6f 70 65 72 74 69 65 73 _map(function.(array.$properties
ea700 29 20 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 66 61 ).{.$properties['selected'].=.fa
ea720 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 70 65 72 74 69 65 73 3b 0a 7d 2c 20 24 74 68 lse;..return.$properties;.},.$th
ea740 69 73 2d 3e 61 64 61 70 74 65 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a is->adapters);.}.}.<?php........
ea760 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 ...namespace.Symfony\Component\F
ea780 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b inder\Shell;.....class.Command.{
ea7a0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 65 6e 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ....private.$parent;.....private
ea7c0 20 24 62 69 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c .$bits.=.array();.....private.$l
ea7e0 61 62 65 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 72 abels.=.array();.....private.$er
ea800 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rorHandler;.......public.functio
ea820 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 n.__construct(Command.$parent.=.
ea840 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 20 3d 20 24 70 61 72 65 6e 74 3b null).{.$this->parent.=.$parent;
ea860 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 .}.......public.function.__toStr
ea880 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 3b 0a 7d 0a ing().{.return.$this->join();.}.
ea8a0 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 63 ........public.static.function.c
ea8c0 72 65 61 74 65 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a reate(Command.$parent.=.null).{.
ea8e0 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 70 61 72 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a return.new.self($parent);.}.....
ea900 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 65 73 63 61 70 ....public.static.function.escap
ea920 65 28 24 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 63 6d e($input).{.return.escapeshellcm
ea940 64 28 24 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 73 74 61 74 d($input);.}.........public.stat
ea960 69 63 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 ic.function.quote($input).{.retu
ea980 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a rn.escapeshellarg($input);.}....
ea9a0 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 62 69 74 29 0a 7b .....public.function.add($bit).{
ea9c0 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 24 62 69 74 3b 0a 0a 72 65 74 75 72 6e 20 24 .$this->bits[].=.$bit;..return.$
ea9e0 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.
eaa00 74 6f 70 28 24 62 69 74 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d top($bit).{.array_unshift($this-
eaa20 3e 62 69 74 73 2c 20 24 62 69 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c >bits,.$bit);..foreach.($this->l
eaa40 61 62 65 6c 73 20 61 73 20 24 6c 61 62 65 6c 20 3d 3e 20 24 69 6e 64 65 78 29 20 7b 0a 24 74 68 abels.as.$label.=>.$index).{.$th
eaa60 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 2b 3d 20 31 3b 0a 7d 0a 0a 72 65 74 75 is->labels[$label].+=.1;.}..retu
eaa80 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 74 rn.$this;.}.........public.funct
eaaa0 69 6f 6e 20 61 72 67 28 24 61 72 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 ion.arg($arg).{.$this->bits[].=.
eaac0 73 65 6c 66 3a 3a 71 75 6f 74 65 28 24 61 72 67 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 self::quote($arg);..return.$this
eaae0 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 6d 64 28 ;.}.........public.function.cmd(
eab00 24 65 73 63 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 65 73 $esc).{.$this->bits[].=.self::es
eab20 63 61 70 65 28 24 65 73 63 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a cape($esc);..return.$this;.}....
eab40 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 28 24 6c 61 62 65 .......public.function.ins($labe
eab60 6c 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 l).{.if.(isset($this->labels[$la
eab80 62 65 6c 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 78 63 65 70 bel])).{.throw.new.\RuntimeExcep
eaba0 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 22 20 61 6c 72 65 61 64 79 tion(sprintf('Label."%s".already
eabc0 20 65 78 69 73 74 73 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 .exists.',.$label));.}..$this->b
eabe0 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 29 3b 0a 24 74 68 its[].=.self::create($this);.$th
eac00 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 is->labels[$label].=.count($this
eac20 2d 3e 62 69 74 73 29 2d 31 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 ->bits)-1;..return.$this->bits[$
eac40 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a this->labels[$label]];.}........
eac60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6c 61 62 65 6c 29 0a 7b ...public.function.get($label).{
eac80 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c .if.(!isset($this->labels[$label
eaca0 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 78 63 65 70 74 69 6f ])).{.throw.new.\RuntimeExceptio
eacc0 6e 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 n(sprintf('Label."%s".does.not.e
eace0 78 69 73 74 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 xist.',.$label));.}..return.$thi
ead00 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 5d 5d 3b 0a s->bits[$this->labels[$label]];.
ead20 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 6e 64 28 29 0a }.........public.function.end().
ead40 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 29 20 7b 0a {.if.(null.===.$this->parent).{.
ead60 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 61 6c throw.new.\RuntimeException('Cal
ead80 6c 69 6e 67 20 65 6e 64 20 6f 6e 20 72 6f 6f 74 20 63 6f 6d 6d 61 6e 64 20 64 6f 65 73 6e 5c 27 ling.end.on.root.command.doesn\'
eada0 74 20 6d 61 6b 65 20 73 65 6e 73 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 t.make.sense.');.}..return.$this
eadc0 2d 3e 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 63 74 69 6f ->parent;.}.......public.functio
eade0 6e 20 6c 65 6e 67 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d n.length().{.return.count($this-
eae00 3e 62 69 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >bits);.}.......public.function.
eae20 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 5c 43 6c 6f 73 75 72 65 20 24 65 72 72 6f 72 48 setErrorHandler(\Closure.$errorH
eae40 61 6e 64 6c 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 20 3d 20 andler).{.$this->errorHandler.=.
eae60 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a $errorHandler;..return.$this;.}.
eae80 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 48 61 6e 64 ....public.function.getErrorHand
eaea0 6c 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c ler().{.return.$this->errorHandl
eaec0 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 74 69 6f 6e 20 65 78 er;.}.........public.function.ex
eaee0 65 63 75 74 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 65 72 72 6f 72 48 61 6e ecute().{.if.(null.===.$errorHan
eaf00 64 6c 65 72 20 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 dler.=.$this->errorHandler).{.ex
eaf20 65 63 28 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 ec($this->join(),.$output);.}.el
eaf40 73 65 20 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 se.{.$process.=.proc_open($this-
eaf60 3e 6a 6f 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 >join(),.array(0.=>.array('pipe'
eaf80 2c 20 27 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 ,.'r'),.1.=>.array('pipe',.'w'),
eafa0 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 2c 20 24 70 69 70 65 .2.=>.array('pipe',.'w')),.$pipe
eafc0 73 29 3b 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 s);.$output.=.preg_split('~(\r\n
eafe0 7c 5c 72 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 |\r|\n)~',.stream_get_contents($
eb000 70 69 70 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 pipes[1]),.-1,.PREG_SPLIT_NO_EMP
eb020 54 59 29 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 TY);..if.($error.=.stream_get_co
eb040 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 32 5d 29 29 20 7b 0a 24 65 72 72 6f 72 48 61 6e 64 6c ntents($pipes[2])).{.$errorHandl
eb060 65 72 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 er($error);.}..proc_close($proce
eb080 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 20 3f 3a 20 61 72 72 61 79 28 ss);.}..return.$output.?:.array(
eb0a0 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 6a 6f 69 6e 28 );.}.......public.function.join(
eb0c0 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 66 69 ).{.return.implode('.',.array_fi
eb0e0 6c 74 65 72 28 0a 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 62 69 74 29 20 lter(.array_map(function.($bit).
eb100 7b 0a 72 65 74 75 72 6e 20 24 62 69 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 6e 64 {.return.$bit.instanceof.Command
eb120 20 3f 20 24 62 69 74 2d 3e 6a 6f 69 6e 28 29 20 3a 20 28 24 62 69 74 20 3f 3a 20 6e 75 6c 6c 29 .?.$bit->join().:.($bit.?:.null)
eb140 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 62 69 74 73 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 62 69 ;.},.$this->bits),.function.($bi
eb160 74 29 20 7b 20 72 65 74 75 72 6e 20 6e 75 6c 6c 20 21 3d 3d 20 24 62 69 74 3b 20 7d 0a 29 29 3b t).{.return.null.!==.$bit;.}.));
eb180 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 .}..........public.function.addA
eb1a0 74 49 6e 64 65 78 28 24 62 69 74 2c 20 24 69 6e 64 65 78 29 0a 7b 0a 61 72 72 61 79 5f 73 70 6c tIndex($bit,.$index).{.array_spl
eb1c0 69 63 65 28 24 74 68 69 73 2d 3e 62 69 74 73 2c 20 24 69 6e 64 65 78 2c 20 30 2c 20 24 62 69 74 ice($this->bits,.$index,.0,.$bit
eb1e0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a );..return.$this;.}.}.<?php.....
eb200 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
eb220 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a t\Finder\Shell;.....class.Shell.
eb240 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 55 4e 49 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 {.const.TYPE_UNIX.=.1;.const.TYP
eb260 45 5f 44 41 52 57 49 4e 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 43 59 47 57 49 4e 20 E_DARWIN.=.2;.const.TYPE_CYGWIN.
eb280 3d 20 33 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 57 49 4e 44 4f 57 53 20 3d 20 34 3b 0a 63 6f 6e =.3;.const.TYPE_WINDOWS.=.4;.con
eb2a0 73 74 20 54 59 50 45 5f 42 53 44 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 79 st.TYPE_BSD.=.5;.....private.$ty
eb2c0 70 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 67 65 74 54 79 70 pe;.......public.function.getTyp
eb2e0 65 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 79 70 65 29 20 e().{.if.(null.===.$this->type).
eb300 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 54 79 70 65 {.$this->type.=.$this->guessType
eb320 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a ();.}..return.$this->type;.}....
eb340 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 43 6f 6d 6d 61 6e 64 .....public.function.testCommand
eb360 28 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 ($command).{.if.(!function_exist
eb380 73 28 27 65 78 65 63 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 s('exec')).{.return.false;.}....
eb3a0 24 74 65 73 74 43 6f 6d 6d 61 6e 64 20 3d 20 27 77 68 69 63 68 20 27 3b 0a 69 66 20 28 73 65 6c $testCommand.=.'which.';.if.(sel
eb3c0 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 2d 3e 74 79 70 65 29 f::TYPE_WINDOWS.===.$this->type)
eb3e0 20 7b 0a 24 74 65 73 74 43 6f 6d 6d 61 6e 64 20 3d 20 27 77 68 65 72 65 20 27 3b 0a 7d 0a 0a 24 .{.$testCommand.=.'where.';.}..$
eb400 63 6f 6d 6d 61 6e 64 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 63 6d 64 28 24 63 6f 6d 6d 61 6e command.=.escapeshellcmd($comman
eb420 64 29 3b 0a 0a 65 78 65 63 28 24 74 65 73 74 43 6f 6d 6d 61 6e 64 2e 24 63 6f 6d 6d 61 6e 64 2c d);..exec($testCommand.$command,
eb440 20 24 6f 75 74 70 75 74 2c 20 24 63 6f 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 .$output,.$code);..return.0.===.
eb460 24 63 6f 64 65 20 26 26 20 63 6f 75 6e 74 28 24 6f 75 74 70 75 74 29 20 3e 20 30 3b 0a 7d 0a 0a $code.&&.count($output).>.0;.}..
eb480 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 54 79 70 65 28 .....private.function.guessType(
eb4a0 29 0a 7b 0a 24 6f 73 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 50 48 50 5f 4f 53 29 3b 0a 0a 69 ).{.$os.=.strtolower(PHP_OS);..i
eb4c0 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 63 79 67 77 69 6e f.(false.!==.strpos($os,.'cygwin
eb4e0 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 43 59 47 57 49 4e 3b 0a ')).{.return.self::TYPE_CYGWIN;.
eb500 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 64 61 }..if.(false.!==.strpos($os,.'da
eb520 72 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 44 41 52 57 rwin')).{.return.self::TYPE_DARW
eb540 49 4e 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 28 24 6f 73 2c IN;.}..if.(false.!==.strpos($os,
eb560 20 27 62 73 64 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 42 53 44 .'bsd')).{.return.self::TYPE_BSD
eb580 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 77 69 6e 27 ;.}..if.(0.===.strpos($os,.'win'
eb5a0 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 3b 0a )).{.return.self::TYPE_WINDOWS;.
eb5c0 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 55 4e 49 58 3b 0a 7d 0a 7d 0a 3c }..return.self::TYPE_UNIX;.}.}.<
eb5e0 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
eb600 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 3b 0a 0a 0a \Component\Finder\Expression;...
eb620 0a 0a 63 6c 61 73 73 20 52 65 67 65 78 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e ..class.Regex.implements.ValueIn
eb640 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 53 54 41 52 54 5f 46 4c 41 47 20 3d 20 27 5e 27 terface.{.const.START_FLAG.=.'^'
eb660 3b 0a 63 6f 6e 73 74 20 45 4e 44 5f 46 4c 41 47 20 3d 20 27 24 27 3b 0a 63 6f 6e 73 74 20 42 4f ;.const.END_FLAG.=.'$';.const.BO
eb680 55 4e 44 41 52 59 20 3d 20 27 7e 27 3b 0a 63 6f 6e 73 74 20 4a 4f 4b 45 52 20 3d 20 27 2e 2a 27 UNDARY.=.'~';.const.JOKER.=.'.*'
eb6a0 3b 0a 63 6f 6e 73 74 20 45 53 43 41 50 49 4e 47 20 3d 20 27 5c 5c 27 3b 0a 0a 0a 0a 0a 70 72 69 ;.const.ESCAPING.=.'\\';.....pri
eb6c0 76 61 74 65 20 24 70 61 74 74 65 72 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 vate.$pattern;.....private.$opti
eb6e0 6f 6e 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 46 6c 61 67 3b 0a 0a 0a 0a ons;.....private.$startFlag;....
eb700 0a 70 72 69 76 61 74 65 20 24 65 6e 64 46 6c 61 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 .private.$endFlag;.....private.$
eb720 73 74 61 72 74 4a 6f 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6e 64 4a 6f 6b 65 startJoker;.....private.$endJoke
eb740 72 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 75 6e 63 74 69 6f r;.........public.static.functio
eb760 6e 20 63 72 65 61 74 65 28 24 65 78 70 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 n.create($expr).{.if.(preg_match
eb780 28 27 2f 5e 28 2e 7b 33 2c 7d 3f 29 28 5b 69 6d 73 78 75 41 44 55 5d 2a 29 24 2f 27 2c 20 24 65 ('/^(.{3,}?)([imsxuADU]*)$/',.$e
eb7a0 78 70 72 2c 20 24 6d 29 29 20 7b 0a 24 73 74 61 72 74 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 xpr,.$m)).{.$start.=.substr($m[1
eb7c0 5d 2c 20 30 2c 20 31 29 3b 0a 24 65 6e 64 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 2d ],.0,.1);.$end.=.substr($m[1],.-
eb7e0 31 29 3b 0a 0a 69 66 20 28 0a 28 24 73 74 61 72 74 20 3d 3d 3d 20 24 65 6e 64 20 26 26 20 21 70 1);..if.(.($start.===.$end.&&.!p
eb800 72 65 67 5f 6d 61 74 63 68 28 27 2f 5b 2a 3f 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f 27 reg_match('/[*?[:alnum:].\\\\]/'
eb820 2c 20 24 73 74 61 72 74 29 29 0a 7c 7c 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b 27 20 26 26 ,.$start)).||.($start.===.'{'.&&
eb840 20 24 65 6e 64 20 3d 3d 3d 20 27 7d 27 29 0a 7c 7c 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 28 .$end.===.'}').||.($start.===.'(
eb860 27 20 26 26 20 24 65 6e 64 20 3d 3d 3d 20 27 29 27 29 0a 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 '.&&.$end.===.')').).{.return.ne
eb880 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 29 2c 20 24 6d 5b w.self(substr($m[1],.1,.-1),.$m[
eb8a0 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 5c 49 6e 76 61 6c 2],.$end);.}.}..throw.new.\Inval
eb8c0 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 20 65 78 70 72 65 idArgumentException('Given.expre
eb8e0 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 0a 0a 0a 0a 0a 0a ssion.is.not.a.regex.');.}......
eb900 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 .public.function.__construct($pa
eb920 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 69 6d 69 74 65 72 ttern,.$options.=.'',.$delimiter
eb940 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 65 6c 69 6d 69 74 .=.null).{.if.(null.!==.$delimit
eb960 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 6c 61 63 65 28 27 er).{...$pattern.=.str_replace('
eb980 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 2c 20 24 70 61 74 \\'.$delimiter,.$delimiter,.$pat
eb9a0 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 65 72 6e 28 24 70 tern);.}..$this->parsePattern($p
eb9c0 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 24 6f 70 74 69 6f attern);.$this->options.=.$optio
eb9e0 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 5f 5f 74 6f 53 74 ns;.}.....public.function.__toSt
eba00 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 64 65 72 28 29 3b ring().{.return.$this->render();
eba20 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 28 29 0a .}.....public.function.render().
eba40 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 74 68 69 73 2d 3e {.return.self::BOUNDARY..$this->
eba60 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 4e 44 41 52 59 0a renderPattern()..self::BOUNDARY.
eba80 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 6c 69 63 20 66 75 .$this->options;.}.....public.fu
ebaa0 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 65 74 75 72 6e 20 nction.renderPattern().{.return.
ebac0 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 53 54 41 52 54 5f ($this->startFlag.?.self::START_
ebae0 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 6f 6b 65 72 20 3f FLAG.:.'')..($this->startJoker.?
ebb00 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 70 6c 61 63 65 28 .self::JOKER.:.'')..str_replace(
ebb20 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 3a 42 4f 55 4e 44 self::BOUNDARY,.'\\'.self::BOUND
ebb40 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 69 73 2d 3e 65 6e ARY,.$this->pattern)..($this->en
ebb60 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 0a 2e 28 24 74 68 dJoker.?.self::JOKER.:.'')..($th
ebb80 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 41 47 20 3a 20 27 is->endFlag.?.self::END_FLAG.:.'
ebba0 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 69 73 43 61 73 65 ');.}.....public.function.isCase
ebbc0 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 73 2d 3e 68 61 73 Sensitive().{.return.!$this->has
ebbe0 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 66 75 6e 63 74 69 Option('i');.}.....public.functi
ebc00 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 65 73 73 69 6f 6e on.getType().{.return.Expression
ebc20 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 20 66 75 6e 63 74 ::TYPE_REGEX;.}.....public.funct
ebc40 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 2d 3e 70 61 74 74 ion.prepend($expr).{.$this->patt
ebc60 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 3b 0a 0a 72 65 74 ern.=.$expr.$this->pattern;..ret
ebc80 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
ebca0 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 74 74 65 72 6e 20 .append($expr).{.$this->pattern.
ebcc0 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 0a 0a 0a 0a 0a 0a .=.$expr;..return.$this;.}......
ebce0 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 6f 70 74 69 .public.function.hasOption($opti
ebd00 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 70 6f 73 28 24 74 on).{.return.false.!==.strpos($t
ebd20 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 0a 0a 0a 0a 0a 0a his->options,.$option);.}.......
ebd40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f public.function.addOption($optio
ebd60 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 28 24 6f 70 74 69 n).{.if.(!$this->hasOption($opti
ebd80 6f 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 2e 3d 20 24 6f 70 74 69 6f 6e on)).{.$this->options..=.$option
ebda0 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 70 75 62 6c 69 ;.}..return.$this;.}.......publi
ebdc0 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 74 69 6f 6e 29 c.function.removeOption($option)
ebde0 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 6c 61 63 65 28 .{.$this->options.=.str_replace(
ebe00 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 29 3b 0a 0a 72 $option,.'',.$this->options);..r
ebe20 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 eturn.$this;.}.......public.func
ebe40 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 67 29 0a 7b 0a tion.setStartFlag($startFlag).{.
ebe60 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 61 67 3b 0a 0a $this->startFlag.=.$startFlag;..
ebe80 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
ebea0 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 20 24 74 68 69 ion.hasStartFlag().{.return.$thi
ebec0 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 63 20 66 75 6e s->startFlag;.}.......public.fun
ebee0 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 7b 0a 24 74 68 ction.setEndFlag($endFlag).{.$th
ebf00 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 61 67 3b 0a 0a is->endFlag.=.(bool).$endFlag;..
ebf20 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
ebf40 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 74 68 69 73 2d ion.hasEndFlag().{.return.$this-
ebf60 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 6e 63 74 69 6f >endFlag;.}.......public.functio
ebf80 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 29 0a 7b 0a 24 n.setStartJoker($startJoker).{.$
ebfa0 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 6b 65 72 3b 0a this->startJoker.=.$startJoker;.
ebfc0 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 63 .return.$this;.}.....public.func
ebfe0 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 72 6e 20 24 74 tion.hasStartJoker().{.return.$t
ec000 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 62 6c 69 63 20 his->startJoker;.}.......public.
ec020 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 6b 65 72 29 0a function.setEndJoker($endJoker).
ec040 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 24 65 6e 64 4a {.$this->endJoker.=.(bool).$endJ
ec060 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 70 75 62 6c 69 oker;..return.$this;.}.....publi
ec080 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 72 65 74 75 72 c.function.hasEndJoker().{.retur
ec0a0 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 70 75 62 6c 69 n.$this->endJoker;.}.......publi
ec0c0 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 65 70 6c 61 63 c.function.replaceJokers($replac
ec0e0 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 6e 20 28 24 73 ement).{.$replace.=.function.($s
ec100 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 7b 0a 24 73 75 ubject).use.($replacement).{.$su
ec120 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 63 65 20 3d 20 bject.=.$subject[0];.$replace.=.
ec140 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 2c 20 27 5c 5c 0.===.substr_count($subject,.'\\
ec160 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 73 74 72 5f 72 ').%.2;..return.$replace.?.str_r
ec180 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 73 75 62 6a 65 eplace('.',.$replacement,.$subje
ec1a0 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 70 61 74 74 65 ct).:.$subject;.};..$this->patte
ec1c0 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 27 7e 5b 5c 5c rn.=.preg_replace_callback('~[\\
ec1e0 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 3e 70 61 74 74 \\]*\\.~',.$replace,.$this->patt
ec200 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 70 72 69 76 61 ern);..return.$this;.}.....priva
ec220 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 61 74 74 65 72 te.function.parsePattern($patter
ec240 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 20 73 65 6c 66 n).{.if.($this->startFlag.=.self
ec260 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 74 74 65 72 6e ::START_FLAG.===.substr($pattern
ec280 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 72 28 24 70 61 ,.0,.1)).{.$pattern.=.substr($pa
ec2a0 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 61 72 74 4a 6f ttern,.1);.}..if.($this->startJo
ec2c0 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 72 28 24 70 61 ker.=.self::JOKER.===.substr($pa
ec2e0 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 73 75 62 73 74 ttern,.0,.2)).{.$pattern.=.subst
ec300 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 73 2d 3e 65 6e r($pattern,.2);.}..if.($this->en
ec320 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 20 73 75 62 73 dFlag.=.(self::END_FLAG.===.subs
ec340 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 53 43 41 50 49 tr($pattern,.-1).&&.self::ESCAPI
ec360 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 20 2d 31 29 29 NG.!==.substr($pattern,.-2,.-1))
ec380 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 65 72 6e 2c 20 ).{.$pattern.=.substr($pattern,.
ec3a0 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 6b 65 72 20 3d 0,.-1);.}..if.($this->endJoker.=
ec3c0 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 61 74 74 65 72 .(self::JOKER.===.substr($patter
ec3e0 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 3d 20 73 75 62 n,.-2).&&.self::ESCAPING.!==.sub
ec400 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 70 61 74 74 65 str($pattern,.-3,.-2))).{.$patte
ec420 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 29 3b 0a 7d 0a rn.=.substr($pattern,.0,.-2);.}.
ec440 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 0a 7d 0a 7d 0a .$this->pattern.=.$pattern;.}.}.
ec460 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
ec480 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 3b 0a 0a y\Component\Finder\Expression;..
ec4a0 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 6c 75 65 49 6e ...class.Glob.implements.ValueIn
ec4c0 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 72 6e 3b 0a 0a terface.{....private.$pattern;..
ec4e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 ...public.function.__construct($
ec500 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 20 24 70 61 74 pattern).{.$this->pattern.=.$pat
ec520 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 20 72 65 6e 64 tern;.}.....public.function.rend
ec540 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 6e 3b 0a 7d 0a er().{.return.$this->pattern;.}.
ec560 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 65 72 ....public.function.renderPatter
ec580 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 3b 0a 7d 0a 0a n().{.return.$this->pattern;.}..
ec5a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 ...public.function.getType().{.r
ec5c0 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 3b 0a 7d 0a 0a eturn.Expression::TYPE_GLOB;.}..
ec5e0 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 6e 73 69 74 69 ...public.function.isCaseSensiti
ec600 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 75 62 6c 69 63 ve().{.return.true;.}.....public
ec620 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
ec640 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
ec660 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
ec680 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
ec6a0 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;.}
ec6c0 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 70 61 6e 64 61 .......public.function.isExpanda
ec6e0 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 72 70 6f 73 28 ble().{.return.false.!==.strpos(
ec700 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 73 65 20 21 3d $this->pattern,.'{').&&.false.!=
ec720 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 27 29 3b 0a 7d =.strpos($this->pattern,.'}');.}
ec740 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 65 67 65 78 28 ........public.function.toRegex(
ec760 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
ec780 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
ec7a0 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;.$
ec7c0 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
ec7e0 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 72 6e 29 3b 0a eGlob.=.strlen($this->pattern);.
ec800 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 3b 20 24 69 2b for.($i.=.0;.$i.<.$sizeGlob;.$i+
ec820 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 24 69 5d 3b 0a +).{.$car.=.$this->pattern[$i];.
ec840 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 63 74 4c 65 61 if.($firstByte).{.if.($strictLea
ec860 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 24 72 65 67 65 dingDot.&&.'.'.!==.$car).{.$rege
ec880 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 42 79 74 65 20 x..=.'(?=[^\.])';.}..$firstByte.
ec8a0 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 72 29 20 7b 0a =.false;.}..if.('/'.===.$car).{.
ec8c0 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 2e 27 20 3d 3d $firstByte.=.true;.}..if.('.'.==
ec8e0 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 29 27 20 3d 3d =.$car.||.'('.===.$car.||.')'.==
ec900 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 2b 27 20 3d 3d =.$car.||.'|'.===.$car.||.'+'.==
ec920 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 24 27 20 3d 3d =.$car.||.'^'.===.$car.||.'$'.==
ec940 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 22 3b 0a 7d 20 =.$car).{.$regex..=."\\$car";.}.
ec960 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 67 65 78 20 2e elseif.('*'.===.$car).{.$regex..
ec980 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 69 63 74 57 69 =.$escaping.?.'\\*'.:.($strictWi
ec9a0 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 27 29 3b 0a 7d ldcardSlash.?.'[^/]*'.:.'.*');.}
ec9c0 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 65 67 65 78 20 .elseif.('?'.===.$car).{.$regex.
ec9e0 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 72 69 63 74 57 .=.$escaping.?.'\\?'.:.($strictW
eca00 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 29 3b 0a 7d 20 ildcardSlash.?.'[^/]'.:.'.');.}.
eca20 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 67 65 78 20 2e elseif.('{'.===.$car).{.$regex..
eca40 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 69 66 20 28 21 =.$escaping.?.'\\{'.:.'(';.if.(!
eca60 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 7d 0a 7d 20 65 $escaping).{.++$inCurlies;.}.}.e
eca80 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 75 72 6c 69 65 lseif.('}'.===.$car.&&.$inCurlie
ecaa0 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 27 7d 27 20 3a s).{.$regex..=.$escaping.?.'}'.:
ecac0 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 69 6e 43 75 72 .')';.if.(!$escaping).{.--$inCur
ecae0 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 63 61 72 20 26 lies;.}.}.elseif.(','.===.$car.&
ecb00 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 63 61 70 &.$inCurlies).{.$regex..=.$escap
ecb20 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 27 5c 5c 27 20 ing.?.','.:.'|';.}.elseif.('\\'.
ecb40 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 7b 0a 24 72 65 ===.$car).{.if.($escaping).{.$re
ecb60 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 66 61 6c 73 65 gex..=.'\\\\';.$escaping.=.false
ecb80 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 3b 0a 7d 0a 0a ;.}.else.{.$escaping.=.true;.}..
ecba0 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 3d 20 24 63 61 continue;.}.else.{.$regex..=.$ca
ecbc0 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 72 65 74 75 72 r;.}.$escaping.=.false;.}..retur
ecbe0 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 3b 0a 7d 0a 7d n.new.Regex('^'.$regex.'$');.}.}
ecc00 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
ecc20 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 3b 0a ny\Component\Finder\Expression;.
ecc40 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 65 6e 74 73 20 ....class.Expression.implements.
ecc60 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 5f 52 45 47 45 ValueInterface.{.const.TYPE_REGE
ecc80 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 0a 0a 0a 0a 0a X.=.1;.const.TYPE_GLOB.=.2;.....
ecca0 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 63 20 73 74 61 private.$value;.......public.sta
eccc0 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 72 65 74 tic.function.create($expr).{.ret
ecce0 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 70 75 62 6c 69 urn.new.self($expr);.}.....publi
ecd00 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 72 29 0a 7b 0a c.function.__construct($expr).{.
ecd20 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 3a 63 72 65 61 try.{.$this->value.=.Regex::crea
ecd40 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 64 41 72 67 75 te($expr);.}.catch.(\InvalidArgu
ecd60 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 76 61 6c 75 65 mentException.$e).{.$this->value
ecd80 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 0a 70 75 62 6c .=.new.Glob($expr);.}.}.....publ
ecda0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 ic.function.__toString().{.retur
ecdc0 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 62 6c 69 63 20 n.$this->render();.}.....public.
ecde0 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 24 74 68 69 73 function.render().{.return.$this
ece00 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 62 6c 69 63 20 ->value->render();.}.....public.
ece20 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 65 74 75 72 function.renderPattern().{.retur
ece40 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 72 6e 28 29 3b n.$this->value->renderPattern();
ece60 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 6e .}.....public.function.isCaseSen
ece80 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 6c 75 65 2d 3e sitive().{.return.$this->value->
ecea0 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 62 6c 69 63 20 isCaseSensitive();.}.....public.
ecec0 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
ecee0 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 6c 69 s->value->getType();.}.....publi
ecf00 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 24 74 68 69 c.function.prepend($expr).{.$thi
ecf20 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 72 65 74 75 72 s->value->prepend($expr);..retur
ecf40 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 61 n.$this;.}.....public.function.a
ecf60 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 2d 3e 61 70 70 ppend($expr).{.$this->value->app
ecf80 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 7d 0a 0a 0a 0a end($expr);..return.$this;.}....
ecfa0 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 7b 0a 72 65 74 .public.function.isRegex().{.ret
ecfc0 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 69 73 2d 3e urn.self::TYPE_REGEX.===.$this->
ecfe0 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 6c 69 63 20 66 value->getType();.}.....public.f
ed000 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 65 6c 66 3a 3a unction.isGlob().{.return.self::
ed020 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 3e 67 65 74 54 TYPE_GLOB.===.$this->value->getT
ed040 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 69 6f 6e 20 67 ype();.}.......public.function.g
ed060 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 4c 4f 42 20 21 etGlob().{.if.(self::TYPE_GLOB.!
ed080 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 20 7b 0a 74 68 ==.$this->value->getType()).{.th
ed0a0 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 67 65 78 20 63 row.new.\LogicException('Regex.c
ed0c0 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 62 2e 27 29 3b an\'t.be.transformed.to.glob.');
ed0e0 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 0a 0a 0a 0a 70 .}..return.$this->value;.}.....p
ed100 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 0a 72 65 74 75 ublic.function.getRegex().{.retu
ed120 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 69 73 2d 3e 76 rn.self::TYPE_REGEX.===.$this->v
ed140 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 6c 75 65 20 3a alue->getType().?.$this->value.:
ed160 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 0a 7d 0a 3c 3f .$this->value->toRegex();.}.}.<?
ed180 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\
ed1a0 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 3b 0a 0a 0a 0a Component\Finder\Expression;....
ed1c0 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 0a 0a 0a 0a 0a .interface.ValueInterface.{.....
ed1e0 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 0a 0a 0a 0a 0a .public.function.render();......
ed200 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 65 72 6e 28 29 .public.function.renderPattern()
ed220 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 61 73 65 53 65 ;.......public.function.isCaseSe
ed240 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 63 74 69 6f 6e nsitive();.......public.function
ed260 20 67 65 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .getType();.......public.functio
ed280 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 6c 69 63 20 66 n.prepend($expr);.......public.f
ed2a0 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 70 68 70 0a 0a unction.append($expr);.}.<?php..
ed2c0 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
ed2e0 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 74 65 72 66 61 nent\Finder\Adapter;.....interfa
ed300 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 70 75 62 6c 69 ce.AdapterInterface.{......publi
ed320 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 6c 6f c.function.setFollowLinks($follo
ed340 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 69 6f 6e 20 73 wLinks);.......public.function.s
ed360 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 20 66 75 6e 63 etMode($mode);.......public.func
ed380 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 3b tion.setExclude(array.$exclude);
ed3a0 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 70 74 68 73 .......public.function.setDepths
ed3c0 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 69 63 20 66 75 (array.$depths);.......public.fu
ed3e0 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 73 29 3b 0a 0a nction.setNames(array.$names);..
ed400 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 6d 65 73 .....public.function.setNotNames
ed420 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 62 6c 69 63 20 (array.$notNames);.......public.
ed440 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 24 63 6f 6e 74 function.setContains(array.$cont
ed460 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 6e 20 73 65 74 ains);.......public.function.set
ed480 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 69 6e 73 29 3b NotContains(array.$notContains);
ed4a0 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 69 7a 65 73 28 .......public.function.setSizes(
ed4c0 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 20 66 75 6e 63 array.$sizes);.......public.func
ed4e0 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 3b 0a 0a 0a 0a tion.setDates(array.$dates);....
ed500 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 72 73 28 61 72 ...public.function.setFilters(ar
ed520 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 20 66 75 6e 63 ray.$filters);.......public.func
ed540 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 70 75 62 6c 69 tion.setSort($sort);.......publi
ed560 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 61 74 68 73 29 c.function.setPath(array.$paths)
ed580 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 50 61 ;.......public.function.setNotPa
ed5a0 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 70 75 62 6c 69 th(array.$notPaths);.......publi
ed5c0 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 73 28 c.function.ignoreUnreadableDirs(
ed5e0 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 69 63 20 66 75 $ignore.=.true);.......public.fu
ed600 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 69 72 29 3b 0a nction.searchInDirectory($dir);.
ed620 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 70 6f 72 74 65 ......public.function.isSupporte
ed640 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 67 65 74 4e 61 d();.......public.function.getNa
ed660 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 me();.}.<?php...........namespac
ed680 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
ed6a0 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
ed6c0 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
ed6e0 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
ed700 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
ed720 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
ed740 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
ed760 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 64 61 70 74 65 ssion;.......class.BsdFindAdapte
ed780 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.{.
ed7a0 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
ed7c0 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 74 65 63 74 65 eturn.'bsd_find';.}.....protecte
ed7e0 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 6e 20 d.function.canBeUsed().{.return.
ed800 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 79 70 65 28 29 in_array($this->shell->getType()
ed820 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 65 6c 6c 3a 3a ,.array(Shell::TYPE_BSD,.Shell::
ed840 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 6e 42 65 55 73 TYPE_DARWIN)).&&.parent::canBeUs
ed860 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 69 6f 6e 20 62 ed();.}.....protected.function.b
ed880 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 63 6f 6d 6d 61 uildFormatSorting(Command.$comma
ed8a0 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 20 7b 0a 63 61 nd,.$sort).{.switch.($sort).{.ca
ed8c0 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 4e 41 4d se.SortableIterator::SORT_BY_NAM
ed8e0 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 64 64 28 27 7c E:.$command->ins('sort')->add('|
ed900 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 61 62 6c 65 49 .sort');..return;.case.SortableI
ed920 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 6d 61 74 20 3d terator::SORT_BY_TYPE:.$format.=
ed940 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 65 49 74 65 72 .'%HT';.break;.case.SortableIter
ed960 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 3a 0a 24 66 6f ator::SORT_BY_ACCESSED_TIME:.$fo
ed980 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 72 74 61 62 6c rmat.=.'%a';.break;.case.Sortabl
ed9a0 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 3a eIterator::SORT_BY_CHANGED_TIME:
ed9c0 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 65 20 53 6f 72 .$format.=.'%c';.break;.case.Sor
ed9e0 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 5f tableIterator::SORT_BY_MODIFIED_
eda00 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 3b 0a 64 65 66 TIME:.$format.=.'%m';.break;.def
eda20 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 ault:.throw.new.\InvalidArgument
eda40 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 73 6f 72 74 20 Exception(sprintf('Unknown.sort.
eda60 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 24 63 6f 6d 6d options:.%s.',.$sort));.}..$comm
eda80 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 2d 30 20 73 74 and.->add('-print0.|.xargs.-0.st
edaa0 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 27 29 0a 2d 3e at.-f').->arg($format.'%t%N').->
edac0 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 0a 0a 0a 0a 0a add('|.sort.|.cut.-f.2');.}.....
edae0 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 64 43 6f 6d 6d protected.function.buildFindComm
edb00 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 0a 7b 0a 70 61 and(Command.$command,.$dir).{.pa
edb20 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 6d 61 6e 64 2c rent::buildFindCommand($command,
edb40 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 3b 0a 0a 72 65 .$dir)->addAtIndex('-E',.1);..re
edb60 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 74 65 64 20 66 turn.$command;.}.....protected.f
edb80 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 6e 67 28 43 6f unction.buildContentFiltering(Co
edba0 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 61 69 6e 73 2c mmand.$command,.array.$contains,
edbc0 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 63 6f 6e 74 61 .$not.=.false).{.foreach.($conta
edbe0 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 45 78 70 72 65 ins.as.$contain).{.$expr.=.Expre
edc00 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 20 24 63 6f 6d ssion::create($contain);....$com
edc20 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 27 27 29 0a 2d mand.->add('|.grep.-v.\'^$\'').-
edc40 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 29 0a 2d 3e 61 >add('|.xargs.-I{}.grep.-I').->a
edc60 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 20 6e 75 dd($expr->isCaseSensitive().?.nu
edc80 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 3a 20 27 ll.:.'-i').->add($not.?.'-L'.:.'
edca0 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 3e 72 65 -l').->add('-Ee')->arg($expr->re
edcc0 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 7d 0a 7d nderPattern()).->add('{}').;.}.}
edce0 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
edd00 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 3b 0a 0a fony\Component\Finder\Adapter;..
edd20 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 68 65 use.Symfony\Component\Finder\She
edd40 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 6e 65 6e 74 5c ll\Shell;.use.Symfony\Component\
edd60 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 66 6f 6e Finder\Shell\Command;.use.Symfon
edd80 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 6f 72 74 y\Component\Finder\Iterator\Sort
edda0 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 70 6f 6e ableIterator;.use.Symfony\Compon
eddc0 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 73 73 69 6f 6e ent\Finder\Expression\Expression
edde0 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 72 20 65 78 74 ;.......class.GnuFindAdapter.ext
ede00 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 0a 0a 0a 70 75 ends.AbstractFindAdapter.{....pu
ede20 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
ede40 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 64 20 66 75 6e .'gnu_find';.}.....protected.fun
ede60 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 6d 6d 61 6e 64 ction.buildFormatSorting(Command
ede80 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 28 24 73 6f 72 .$command,.$sort).{.switch.($sor
edea0 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 3a 53 4f 52 54 t).{.case.SortableIterator::SORT
edec0 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 72 74 27 29 2d _BY_NAME:.$command->ins('sort')-
edee0 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 73 65 20 53 6f >add('|.sort');..return;.case.So
edf00 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 45 3a 0a 24 66 rtableIterator::SORT_BY_TYPE:.$f
edf20 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 6f 72 74 61 62 ormat.=.'%y';.break;.case.Sortab
edf40 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 44 5f 54 49 4d leIterator::SORT_BY_ACCESSED_TIM
edf60 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 63 61 73 65 20 E:.$format.=.'%A@';.break;.case.
edf80 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 48 41 4e 47 45 SortableIterator::SORT_BY_CHANGE
edfa0 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 65 61 6b 3b 0a D_TIME:.$format.=.'%C@';.break;.
edfc0 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 4d case.SortableIterator::SORT_BY_M
edfe0 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 40 27 3b 0a 62 ODIFIED_TIME:.$format.=.'%T@';.b
ee000 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 6e 76 61 6c 69 reak;.default:.throw.new.\Invali
ee020 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 55 6e 6b 6e dArgumentException(sprintf('Unkn
ee040 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 72 74 29 29 3b own.sort.options:.%s.',.$sort));
ee060 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 2d 3e 61 64 64 .}..$command.->get('find').->add
ee080 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 20 25 68 2f 25 ('-printf').->arg($format.'.%h/%
ee0a0 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 29 0a 2d 3e 61 f\\n').->add('|.sort.|.cut').->a
ee0c0 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 0a 0a 0a 0a 0a rg('-d.').->arg('-f2-').;.}.....
ee0e0 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 64 28 29 0a 7b protected.function.canBeUsed().{
ee100 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 70 65 28 29 20 .return.$this->shell->getType().
ee120 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 65 6e 74 3a 3a ===.Shell::TYPE_UNIX.&&.parent::
ee140 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 64 20 66 75 6e canBeUsed();.}.....protected.fun
ee160 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 61 6e 64 20 24 ction.buildFindCommand(Command.$
ee180 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 65 6e 74 3a 3a command,.$dir).{.return.parent::
ee1a0 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 29 buildFindCommand($command,.$dir)
ee1c0 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 65 6e 64 65 64 ->add('-regextype.posix-extended
ee1e0 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 ');.}.....protected.function.bui
ee200 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 24 63 6f 6d 6d ldContentFiltering(Command.$comm
ee220 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 3d 20 66 61 6c and,.array.$contains,.$not.=.fal
ee240 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 20 24 63 6f 6e se).{.foreach.($contains.as.$con
ee260 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 3a 63 72 65 61 tain).{.$expr.=.Expression::crea
ee280 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 3e 61 64 64 28 te($contain);....$command.->add(
ee2a0 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 2d 3e 61 64 64 '|.xargs.-I{}.-r.grep.-I').->add
ee2c0 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 6e 75 6c 6c ($expr->isCaseSensitive().?.null
ee2e0 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 3a 20 27 2d 6c .:.'-i').->add($not.?.'-L'.:.'-l
ee300 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 3e 72 65 6e 64 ').->add('-Ee')->arg($expr->rend
ee320 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 7d 0a 7d 0a 7d erPattern()).->add('{}').;.}.}.}
ee340 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
ee360 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 3b 0a 0a 0a 0a ny\Component\Finder\Adapter;....
ee380 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 64 61 70 74 65 ...abstract.class.AbstractAdapte
ee3a0 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 63 65 0a 7b 0a r.implements.AdapterInterface.{.
ee3c0 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 6c 73 65 3b 0a protected.$followLinks.=.false;.
ee3e0 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 74 65 64 20 24 protected.$mode.=.0;.protected.$
ee400 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 78 44 65 70 74 minDepth.=.0;.protected.$maxDept
ee420 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 24 65 78 63 6c h.=.PHP_INT_MAX;.protected.$excl
ee440 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 61 6d 65 73 20 ude.=.array();.protected.$names.
ee460 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 6d 65 73 20 3d =.array();.protected.$notNames.=
ee480 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 6e 73 20 3d 20 .array();.protected.$contains.=.
ee4a0 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 61 69 6e 73 20 array();.protected.$notContains.
ee4c0 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 20 3d 20 61 72 =.array();.protected.$sizes.=.ar
ee4e0 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 72 72 61 79 28 ray();.protected.$dates.=.array(
ee500 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 61 79 28 29 3b );.protected.$filters.=.array();
ee520 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 72 6f 74 65 63 .protected.$sort.=.false;.protec
ee540 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 63 74 65 64 20 ted.$paths.=.array();.protected.
ee560 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 74 65 64 20 24 $notPaths.=.array();.protected.$
ee580 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 65 3b 0a 0a 70 ignoreUnreadableDirs.=.false;..p
ee5a0 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 20 3d 20 61 72 rivate.static.$areSupported.=.ar
ee5c0 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 69 73 53 75 70 ray();.....public.function.isSup
ee5e0 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 65 74 4e 61 6d ported().{.$name.=.$this->getNam
ee600 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 28 24 6e 61 6d e();..if.(!array_key_exists($nam
ee620 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 73 65 6c 66 3a e,.self::$areSupported)).{.self:
ee640 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 69 73 2d 3e 63 :$areSupported[$name].=.$this->c
ee660 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 3a 24 61 72 65 anBeUsed();.}..return.self::$are
ee680 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 6c 69 63 20 66 Supported[$name];.}.....public.f
ee6a0 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 6c 6f 77 4c 69 unction.setFollowLinks($followLi
ee6c0 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 20 24 66 6f 6c nks).{.$this->followLinks.=.$fol
ee6e0 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 0a 0a 0a 0a 70 lowLinks;..return.$this;.}.....p
ee700 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 65 29 0a 7b 0a ublic.function.setMode($mode).{.
ee720 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 6e 20 24 74 68 $this->mode.=.$mode;..return.$th
ee740 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 65 70 is;.}.....public.function.setDep
ee760 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 3e 6d 69 6e 44 ths(array.$depths).{.$this->minD
ee780 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 20 50 48 50 5f epth.=.0;.$this->maxDepth.=.PHP_
ee7a0 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 61 73 20 24 63 INT_MAX;..foreach.($depths.as.$c
ee7c0 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 72 61 74 6f 72 omparator).{.switch.($comparator
ee7e0 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 3a 0a 24 74 68 ->getOperator()).{.case.'>':.$th
ee800 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 3e 67 65 74 54 is->minDepth.=.$comparator->getT
ee820 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 3d 27 3a 0a 24 arget().+.1;.break;.case.'>=':.$
ee840 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 3e 67 65 this->minDepth.=.$comparator->ge
ee860 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 0a 24 74 68 69 tTarget();.break;.case.'<':.$thi
ee880 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 67 65 74 54 61 s->maxDepth.=.$comparator->getTa
ee8a0 72 67 65 74 28 29 20 2d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 74 rget().-.1;.break;.case.'<=':.$t
ee8c0 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 67 65 74 his->maxDepth.=.$comparator->get
ee8e0 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 74 68 69 73 2d Target();.break;.default:.$this-
ee900 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 20 3d 20 24 63 >minDepth.=.$this->maxDepth.=.$c
ee920 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 0a 0a 72 65 74 omparator->getTarget();.}.}..ret
ee940 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
ee960 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 0a 7b 0a 24 74 .setExclude(array.$exclude).{.$t
ee980 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 65 74 75 72 6e his->exclude.=.$exclude;..return
ee9a0 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 65 .$this;.}.....public.function.se
ee9c0 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 73 2d 3e 6e 61 tNames(array.$names).{.$this->na
ee9e0 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 3b 0a 7d 0a 0a mes.=.$names;..return.$this;.}..
eea00 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 6d 65 73 28 61 ...public.function.setNotNames(a
eea20 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 74 4e 61 6d 65 rray.$notNames).{.$this->notName
eea40 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 73 3b 0a 7d 0a s.=.$notNames;..return.$this;.}.
eea60 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 61 69 6e 73 28 ....public.function.setContains(
eea80 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 6f 6e 74 61 69 array.$contains).{.$this->contai
eeaa0 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 69 73 3b 0a 7d ns.=.$contains;..return.$this;.}
eeac0 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 43 6f 6e 74 61 .....public.function.setNotConta
eeae0 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 74 68 69 73 2d ins(array.$notContains).{.$this-
eeb00 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 3b 0a 0a 72 65 >notContains.=.$notContains;..re
eeb20 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 6f turn.$this;.}.....public.functio
eeb40 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 24 74 68 69 73 n.setSizes(array.$sizes).{.$this
eeb60 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 74 68 69 73 3b ->sizes.=.$sizes;..return.$this;
eeb80 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 61 74 65 73 28 .}.....public.function.setDates(
eeba0 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 73 20 3d 20 24 array.$dates).{.$this->dates.=.$
eebc0 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 0a 70 75 62 6c dates;..return.$this;.}.....publ
eebe0 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 79 20 24 66 69 ic.function.setFilters(array.$fi
eec00 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 66 69 6c 74 65 lters).{.$this->filters.=.$filte
eec20 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 62 6c 69 63 20 rs;..return.$this;.}.....public.
eec40 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 74 68 69 73 2d function.setSort($sort).{.$this-
eec60 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 73 3b 0a 7d 0a >sort.=.$sort;..return.$this;.}.
eec80 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 28 61 72 72 61 ....public.function.setPath(arra
eeca0 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 24 70 61 74 68 y.$paths).{.$this->paths.=.$path
eecc0 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 6c 69 63 20 66 s;..return.$this;.}.....public.f
eece0 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 6f 74 50 61 74 unction.setNotPath(array.$notPat
eed00 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 74 50 61 74 68 hs).{.$this->notPaths.=.$notPath
eed20 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 6c 69 63 20 66 s;..return.$this;.}.....public.f
eed40 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 73 28 24 69 67 unction.ignoreUnreadableDirs($ig
eed60 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 65 55 6e 72 65 nore.=.true).{.$this->ignoreUnre
eed80 61 64 61 62 6c 65 44 69 72 73 20 3d 20 28 62 6f 6f 6c 29 20 24 69 67 6e 6f 72 65 3b 0a 0a 72 65 adableDirs.=.(bool).$ignore;..re
eeda0 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 61 62 73 74 72 61 turn.$this;.}.............abstra
eedc0 63 74 20 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 64 28 ct.protected.function.canBeUsed(
eede0 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
eee00 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 3b ymfony\Component\Finder\Adapter;
eee20 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 45 ..use.Symfony\Component\Finder\E
eee40 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 0a xception\AccessDeniedException;.
eee60 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
eee80 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 5c 46 69 6e rator;.use.Symfony\Component\Fin
eeea0 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 43 6f 6d der\Shell\Shell;.use.Symfony\Com
eeec0 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 73 73 ponent\Finder\Expression\Express
eeee0 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 6e 64 65 ion;.use.Symfony\Component\Finde
eef00 72 5c 53 68 65 6c 6c 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 r\Shell\Command;.use.Symfony\Com
eef20 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
eef40 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
eef60 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
eef80 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
eefa0 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
eefc0 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
eefe0 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().{.$
ef000 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();.}....
ef020 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
ef040 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
ef060 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
ef080 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.===
ef0a0 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
ef0c0 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
ef0e0 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
ef100 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
ef120 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-
ef140 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
ef160 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
ef180 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
ef1a0 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
ef1c0 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.!==.
ef1e0 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('-
ef200 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.
ef220 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
ef240 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.=
ef260 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
ef280 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
ef2a0 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.=
ef2c0 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
ef2e0 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
ef300 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
ef320 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,.$
ef340 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
ef360 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,.$
ef380 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
ef3a0 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
ef3c0 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
ef3e0 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);.$
ef400 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,
ef420 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
ef440 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').&&
ef460 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
ef480 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
ef4a0 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
ef4c0 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
ef4e0 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.&&.(
ef500 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
ef520 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(
ef540 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
ef560 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);.$
ef580 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
ef5a0 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);.}.
ef5c0 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
ef5e0 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);.}..
ef600 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
ef620 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
ef640 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
ef660 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
ef680 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);.}.);.
ef6a0 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
ef6c0 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
ef6e0 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(
ef700 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.
ef720 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
ef740 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
ef760 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\
ef780 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($
ef7a0 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
ef7c0 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.
ef7e0 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
ef800 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
ef820 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
ef840 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);.}.
ef860 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
ef880 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
ef8a0 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);
ef8c0 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
ef8e0 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
ef900 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
ef920 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
ef940 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();.}
ef960 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
ef980 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
ef9a0 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
ef9c0 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
ef9e0 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
efa00 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
efa20 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($
efa40 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');...}......
efa60 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
efa80 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
efaa0 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.===.
efac0 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
efae0 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)-
efb00 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.$
efb20 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
efb40 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
efb60 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
efb80 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
efba0 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
efbc0 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-
efbe0 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
efc00 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
efc20 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().?.'/'.:.'/[^/]*
efc40 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
efc60 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('
efc80 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(
efca0 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
efcc0 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
efce0 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($
efd00 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
efd20 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
efd40 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')
efd60 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().?.'
efd80 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
efda0 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-
efdc0 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
efde0 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
efe00 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,.$
efe20 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($
efe40 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
efe60 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('(
efe80 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
efea0 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
efec0 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()
efee0 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
eff00 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
eff20 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
eff40 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())
eff60 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();.$
eff80 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
effa0 6c 61 67 28 29 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 29 2e 44 49 52 45 43 54 4f lag().?.preg_quote($dir).DIRECTO
effc0 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3a 20 27 2e 2a 27 29 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 RY_SEPARATOR.:.'.*')->setEndJoke
effe0 72 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 29 29 3b 0a 7d 20 65 6c 73 65 r(!$regex->hasEndFlag());.}.else
f0000 20 7b 0a 24 65 78 70 72 2d 3e 70 72 65 70 65 6e 64 28 27 2a 27 29 2d 3e 61 70 70 65 6e 64 28 27 .{.$expr->prepend('*')->append('
f0020 2a 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 *');.}..$command.->add($i.>.0.?.
f0040 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 52 65 67 '-or'.:.null).->add($expr->isReg
f0060 65 78 28 29 0a 3f 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 ex().?.($expr->isCaseSensitive()
f0080 20 3f 20 27 2d 72 65 67 65 78 27 20 3a 20 27 2d 69 72 65 67 65 78 27 29 0a 3a 20 28 24 65 78 70 .?.'-regex'.:.'-iregex').:.($exp
f00a0 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 70 61 74 68 27 20 3a r->isCaseSensitive().?.'-path'.:
f00c0 20 27 2d 69 70 61 74 68 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 .'-ipath').).->arg($expr->render
f00e0 50 61 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 63 6d 64 28 27 29 27 Pattern());.}..$command->cmd(')'
f0100 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 );.}......private.function.build
f0120 53 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c SizesFiltering(Command.$command,
f0140 20 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 69 7a 65 73 .array.$sizes).{.foreach.($sizes
f0160 20 61 73 20 24 69 20 3d 3e 20 24 73 69 7a 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 .as.$i.=>.$size).{.$command->add
f0180 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 73 77 69 74 63 ($i.>.0.?.'-and'.:.null);..switc
f01a0 68 20 28 24 73 69 7a 65 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 h.($size->getOperator()).{.case.
f01c0 27 3c 3d 27 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 28 24 '<=':.$command->add('-size.-'.($
f01e0 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 29 2e 27 63 27 29 3b 0a 62 72 65 size->getTarget().+.1).'c');.bre
f0200 61 6b 3b 0a 63 61 73 65 20 27 3e 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
f0220 69 7a 65 20 2b 27 2e 28 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 29 2e ize.+'.($size->getTarget().-.1).
f0240 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 'c');.break;.case.'>':.$command-
f0260 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 >add('-size.+'.$size->getTarget(
f0280 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f 6d 6d 61 ).'c');.break;.case.'!=':.$comma
f02a0 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 nd->add('-size.-'.$size->getTarg
f02c0 65 74 28 29 2e 27 63 27 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 et().'c');.$command->add('-size.
f02e0 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 61 +'.$size->getTarget().'c');.brea
f0300 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e k;.case.'<':.default:.$command->
f0320 61 64 64 28 27 2d 73 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 add('-size.-'.$size->getTarget()
f0340 2e 27 63 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 .'c');.}.}.}......private.functi
f0360 6f 6e 20 62 75 69 6c 64 44 61 74 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 on.buildDatesFiltering(Command.$
f0380 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 command,.array.$dates).{.foreach
f03a0 20 28 24 64 61 74 65 73 20 61 73 20 24 69 20 3d 3e 20 24 64 61 74 65 29 20 7b 0a 24 63 6f 6d 6d .($dates.as.$i.=>.$date).{.$comm
f03c0 61 6e 64 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 and->add($i.>.0.?.'-and'.:.null)
f03e0 3b 0a 0a 24 6d 69 6e 73 20 3d 20 28 69 6e 74 29 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 2d 24 ;..$mins.=.(int).round((time()-$
f0400 64 61 74 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 20 2f 20 36 30 29 3b 0a 0a 69 66 20 28 30 date->getTarget())./.60);..if.(0
f0420 20 3e 20 24 6d 69 6e 73 29 20 7b 0a 0a 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 20 2d 6d .>.$mins).{...$command->add('.-m
f0440 6d 69 6e 20 2d 30 27 29 3b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 min.-0');...return;.}..switch.($
f0460 64 61 74 65 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 3c 3d 27 date->getOperator()).{.case.'<='
f0480 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 28 24 6d 69 6e 73 :.$command->add('-mmin.+'.($mins
f04a0 20 2d 20 31 29 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 63 6f 6d 6d 61 .-.1));.break;.case.'>=':.$comma
f04c0 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2d 27 2e 28 24 6d 69 6e 73 20 2b 20 31 29 29 3b 0a nd->add('-mmin.-'.($mins.+.1));.
f04e0 62 72 65 61 6b 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 break;.case.'>':.$command->add('
f0500 2d 6d 6d 69 6e 20 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d -mmin.-'.$mins);.break;.case.'!=
f0520 27 3a 0a 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 ':.$command->add('-mmin.+'.$mins
f0540 2e 27 20 2d 6f 72 20 2d 6d 6d 69 6e 20 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 .'.-or.-mmin.-'.$mins);.break;.c
f0560 61 73 65 20 27 3c 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 ase.'<':.default:.$command->add(
f0580 27 2d 6d 6d 69 6e 20 2b 27 2e 24 6d 69 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 '-mmin.+'.$mins);.}.}.}........p
f05a0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 72 74 69 6e 67 28 43 6f 6d rivate.function.buildSorting(Com
f05c0 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 mand.$command,.$sort).{.$this->b
f05e0 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 uildFormatSorting($command,.$sor
f0600 74 29 3b 0a 7d 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 t);.}......abstract.protected.fu
f0620 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 6d 6d 61 6e nction.buildFormatSorting(Comman
f0640 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 d.$command,.$sort);.......abstra
f0660 63 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 43 6f 6e 74 65 ct.protected.function.buildConte
f0680 6e 74 46 69 6c 74 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 ntFiltering(Command.$command,.ar
f06a0 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a ray.$contains,.$not.=.false);.}.
f06c0 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
f06e0 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 3b 0a 0a 75 73 65 y\Component\Finder\Adapter;..use
f0700 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 .Symfony\Component\Finder\Iterat
f0720 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 41 64 61 70 74 65 72 20 65 78 74 65 6e or;.......class.PhpAdapter.exten
f0740 64 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ds.AbstractAdapter.{....public.f
f0760 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 69 72 29 0a unction.searchInDirectory($dir).
f0780 7b 0a 24 66 6c 61 67 73 20 3d 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 {.$flags.=.\RecursiveDirectoryIt
f07a0 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 erator::SKIP_DOTS;..if.($this->f
f07c0 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 6c 61 67 73 20 7c 3d 20 5c 52 65 63 75 72 73 69 ollowLinks).{.$flags.|=.\Recursi
f07e0 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 46 4f 4c 4c 4f 57 5f 53 59 4d 4c veDirectoryIterator::FOLLOW_SYML
f0800 49 4e 4b 53 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 INKS;.}..$iterator.=.new.\Recurs
f0820 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 0a 6e 65 77 20 49 74 65 72 61 74 6f iveIteratorIterator(.new.Iterato
f0840 72 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 28 24 64 69 r\RecursiveDirectoryIterator($di
f0860 72 2c 20 24 66 6c 61 67 73 2c 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 r,.$flags,.$this->ignoreUnreadab
f0880 6c 65 44 69 72 73 29 2c 0a 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 leDirs),.\RecursiveIteratorItera
f08a0 74 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 0a 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d tor::SELF_FIRST.);..if.($this->m
f08c0 69 6e 44 65 70 74 68 20 3e 20 30 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3c inDepth.>.0.||.$this->maxDepth.<
f08e0 20 50 48 50 5f 49 4e 54 5f 4d 41 58 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 .PHP_INT_MAX).{.$iterator.=.new.
f0900 49 74 65 72 61 74 6f 72 5c 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f Iterator\DepthRangeFilterIterato
f0920 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 2c 20 24 74 r($iterator,.$this->minDepth,.$t
f0940 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 6f his->maxDepth);.}..if.($this->mo
f0960 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 46 de).{.$iterator.=.new.Iterator\F
f0980 69 6c 65 54 79 70 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 ileTypeFilterIterator($iterator,
f09a0 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 .$this->mode);.}..if.($this->exc
f09c0 6c 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 lude).{.$iterator.=.new.Iterator
f09e0 5c 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 \ExcludeDirectoryFilterIterator(
f0a00 24 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 $iterator,.$this->exclude);.}..i
f0a20 66 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d f.($this->names.||.$this->notNam
f0a40 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 es).{.$iterator.=.new.Iterator\F
f0a60 69 6c 65 6e 61 6d 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 ilenameFilterIterator($iterator,
f0a80 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b .$this->names,.$this->notNames);
f0aa0 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 .}..if.($this->contains.||.$this
f0ac0 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 ->notContains).{.$iterator.=.new
f0ae0 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 .Iterator\FilecontentFilterItera
f0b00 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 tor($iterator,.$this->contains,.
f0b20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 $this->notContains);.}..if.($thi
f0b40 73 2d 3e 73 69 7a 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 s->sizes).{.$iterator.=.new.Iter
f0b60 61 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 ator\SizeRangeFilterIterator($it
f0b80 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 erator,.$this->sizes);.}..if.($t
f0ba0 68 69 73 2d 3e 64 61 74 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 his->dates).{.$iterator.=.new.It
f0bc0 65 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 erator\DateRangeFilterIterator($
f0be0 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 iterator,.$this->dates);.}..if.(
f0c00 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 20 3d 20 6e 65 $this->filters).{.$iterator.=.ne
f0c20 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 61 74 6f 72 28 w.Iterator\CustomFilterIterator(
f0c40 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 0a 7d 0a 0a 69 $iterator,.$this->filters);.}..i
f0c60 66 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 f.($this->sort).{.$iteratorAggre
f0c80 67 61 74 65 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 gate.=.new.Iterator\SortableIter
f0ca0 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 ator($iterator,.$this->sort);.$i
f0cc0 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 terator.=.$iteratorAggregate->ge
f0ce0 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 74 68 73 tIterator();.}..if.($this->paths
f0d00 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 .||.$this->notPaths).{.$iterator
f0d20 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 .=.new.Iterator\PathFilterIterat
f0d40 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 73 2c 20 24 74 68 69 or($iterator,.$this->paths,.$thi
f0d60 73 2d 3e 6e 6f 74 50 61 74 68 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f s->notPaths);.}..return.$iterato
f0d80 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 4e 61 6d 65 r;.}.....public.function.getName
f0da0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 70 68 70 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ().{.return.'php';.}.....protect
f0dc0 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 6e ed.function.canBeUsed().{.return
f0de0 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
f0e00 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a pace.Symfony\Component\Finder;..
f0e20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 ......................class.Glob
f0e40 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 .{..........public.static.functi
f0e60 6f 6e 20 74 6f 52 65 67 65 78 28 24 67 6c 6f 62 2c 20 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 on.toRegex($glob,.$strictLeading
f0e80 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 Dot.=.true,.$strictWildcardSlash
f0ea0 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 .=.true).{.$firstByte.=.true;.$e
f0ec0 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b scaping.=.false;.$inCurlies.=.0;
f0ee0 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e .$regex.=.'';.$sizeGlob.=.strlen
f0f00 28 24 67 6c 6f 62 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 ($glob);.for.($i.=.0;.$i.<.$size
f0f20 47 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 61 72 20 3d 20 24 67 6c 6f 62 5b 24 69 5d 3b 0a Glob;.$i++).{.$car.=.$glob[$i];.
f0f40 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 63 74 4c 65 61 if.($firstByte).{.if.($strictLea
f0f60 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 24 72 65 67 65 dingDot.&&.'.'.!==.$car).{.$rege
f0f80 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 42 79 74 65 20 x..=.'(?=[^\.])';.}..$firstByte.
f0fa0 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 72 29 20 7b 0a =.false;.}..if.('/'.===.$car).{.
f0fc0 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 2e 27 20 3d 3d $firstByte.=.true;.}..if.('.'.==
f0fe0 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 29 27 20 3d 3d =.$car.||.'('.===.$car.||.')'.==
f1000 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 2b 27 20 3d 3d =.$car.||.'|'.===.$car.||.'+'.==
f1020 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 24 27 20 3d 3d =.$car.||.'^'.===.$car.||.'$'.==
f1040 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 22 3b 0a 7d 20 =.$car).{.$regex..=."\\$car";.}.
f1060 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 67 65 78 20 2e elseif.('*'.===.$car).{.$regex..
f1080 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 69 63 74 57 69 =.$escaping.?.'\\*'.:.($strictWi
f10a0 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 27 29 3b 0a 7d ldcardSlash.?.'[^/]*'.:.'.*');.}
f10c0 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 65 67 65 78 20 .elseif.('?'.===.$car).{.$regex.
f10e0 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 72 69 63 74 57 .=.$escaping.?.'\\?'.:.($strictW
f1100 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 29 3b 0a 7d 20 ildcardSlash.?.'[^/]'.:.'.');.}.
f1120 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 67 65 78 20 2e elseif.('{'.===.$car).{.$regex..
f1140 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 69 66 20 28 21 =.$escaping.?.'\\{'.:.'(';.if.(!
f1160 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 7d 0a 7d 20 65 $escaping).{.++$inCurlies;.}.}.e
f1180 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 75 72 6c 69 65 lseif.('}'.===.$car.&&.$inCurlie
f11a0 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 27 7d 27 20 3a s).{.$regex..=.$escaping.?.'}'.:
f11c0 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 69 6e 43 75 72 .')';.if.(!$escaping).{.--$inCur
f11e0 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 63 61 72 20 26 lies;.}.}.elseif.(','.===.$car.&
f1200 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 63 61 70 &.$inCurlies).{.$regex..=.$escap
f1220 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 27 5c 5c 27 20 ing.?.','.:.'|';.}.elseif.('\\'.
f1240 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 7b 0a 24 72 65 ===.$car).{.if.($escaping).{.$re
f1260 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 66 61 6c 73 65 gex..=.'\\\\';.$escaping.=.false
f1280 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 3b 0a 7d 0a 0a ;.}.else.{.$escaping.=.true;.}..
f12a0 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 3d 20 24 63 61 continue;.}.else.{.$regex..=.$ca
f12c0 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 72 65 74 75 72 r;.}.$escaping.=.false;.}..retur
f12e0 6e 20 27 23 5e 27 2e 24 72 65 67 65 78 2e 27 24 23 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a n.'#^'.$regex.'$#';.}.}.<?php...
f1300 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
f1320 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ent\Finder\Iterator;.......class
f1340 20 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 .DepthRangeFilterIterator.extend
f1360 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 6d 69 6e 44 s.FilterIterator.{.private.$minD
f1380 65 70 74 68 20 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 epth.=.0;.........public.functio
f13a0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 n.__construct(\RecursiveIterator
f13c0 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 Iterator.$iterator,.$minDepth.=.
f13e0 30 2c 20 24 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 29 0a 7b 0a 24 74 0,.$maxDepth.=.PHP_INT_MAX).{.$t
f1400 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 6d 69 6e 44 65 70 74 68 3b 0a 24 69 74 65 72 his->minDepth.=.$minDepth;.$iter
f1420 61 74 6f 72 2d 3e 73 65 74 4d 61 78 44 65 70 74 68 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3d 3d ator->setMaxDepth(PHP_INT_MAX.==
f1440 3d 20 24 6d 61 78 44 65 70 74 68 20 3f 20 2d 31 20 3a 20 24 6d 61 78 44 65 70 74 68 29 3b 0a 0a =.$maxDepth.?.-1.:.$maxDepth);..
f1460 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a parent::__construct($iterator);.
f1480 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 }.......public.function.accept()
f14a0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f .{.return.$this->getInnerIterato
f14c0 72 28 29 2d 3e 67 65 74 44 65 70 74 68 28 29 20 3e 3d 20 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 r()->getDepth().>=.$this->minDep
f14e0 74 68 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 th;.}.}.<?php...........namespac
f1500 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 e.Symfony\Component\Finder\Itera
f1520 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f tor;.......class.SortableIterato
f1540 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 0a r.implements.\IteratorAggregate.
f1560 7b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 {.const.SORT_BY_NAME.=.1;.const.
f1580 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f SORT_BY_TYPE.=.2;.const.SORT_BY_
f15a0 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 ACCESSED_TIME.=.3;.const.SORT_BY
f15c0 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 _CHANGED_TIME.=.4;.const.SORT_BY
f15e0 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 20 35 3b 0a 0a 70 72 69 76 61 74 65 20 24 69 74 _MODIFIED_TIME.=.5;..private.$it
f1600 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a erator;.private.$sort;..........
f1620 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 54 72 61 public.function.__construct(\Tra
f1640 76 65 72 73 61 62 6c 65 20 24 69 74 65 72 61 74 6f 72 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 versable.$iterator,.$sort).{.$th
f1660 69 73 2d 3e 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 0a 69 66 20 28 73 is->iterator.=.$iterator;..if.(s
f1680 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 elf::SORT_BY_NAME.===.$sort).{.$
f16a0 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b this->sort.=.function.($a,.$b).{
f16c0 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 .return.strcmp($a->getRealpath()
f16e0 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 ,.$b->getRealpath());.};.}.elsei
f1700 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 3d 3d 20 24 73 6f 72 74 29 f.(self::SORT_BY_TYPE.===.$sort)
f1720 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,.$
f1740 62 29 20 7b 0a 69 66 20 28 24 61 2d 3e 69 73 44 69 72 28 29 20 26 26 20 24 62 2d 3e 69 73 46 69 b).{.if.($a->isDir().&&.$b->isFi
f1760 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 61 2d le()).{.return.-1;.}.elseif.($a-
f1780 3e 69 73 46 69 6c 65 28 29 20 26 26 20 24 62 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 >isFile().&&.$b->isDir()).{.retu
f17a0 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 rn.1;.}..return.strcmp($a->getRe
f17c0 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b alpath(),.$b->getRealpath());.};
f17e0 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 41 43 43 45 53 53 45 .}.elseif.(self::SORT_BY_ACCESSE
f1800 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 D_TIME.===.$sort).{.$this->sort.
f1820 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 =.function.($a,.$b).{.return.($a
f1840 2d 3e 67 65 74 41 54 69 6d 65 28 29 20 2d 20 24 62 2d 3e 67 65 74 41 54 69 6d 65 28 29 29 3b 0a ->getATime().-.$b->getATime());.
f1860 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 43 48 41 4e 47 };.}.elseif.(self::SORT_BY_CHANG
f1880 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 ED_TIME.===.$sort).{.$this->sort
f18a0 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 .=.function.($a,.$b).{.return.($
f18c0 61 2d 3e 67 65 74 43 54 69 6d 65 28 29 20 2d 20 24 62 2d 3e 67 65 74 43 54 69 6d 65 28 29 29 3b a->getCTime().-.$b->getCTime());
f18e0 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 4d 4f 44 49 .};.}.elseif.(self::SORT_BY_MODI
f1900 46 49 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f FIED_TIME.===.$sort).{.$this->so
f1920 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 rt.=.function.($a,.$b).{.return.
f1940 28 24 61 2d 3e 67 65 74 4d 54 69 6d 65 28 29 20 2d 20 24 62 2d 3e 67 65 74 4d 54 69 6d 65 28 29 ($a->getMTime().-.$b->getMTime()
f1960 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 73 6f 72 );.};.}.elseif.(is_callable($sor
f1980 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 74 3b 0a 7d 20 65 6c 73 t)).{.$this->sort.=.$sort;.}.els
f19a0 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 e.{.throw.new.\InvalidArgumentEx
f19c0 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 20 74 61 ception('The.SortableIterator.ta
f19e0 6b 65 73 20 61 20 50 48 50 20 63 61 6c 6c 61 62 6c 65 20 6f 72 20 61 20 76 61 6c 69 64 20 62 75 kes.a.PHP.callable.or.a.valid.bu
f1a00 69 6c 74 2d 69 6e 20 73 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 20 61 73 20 61 6e 20 61 72 67 75 ilt-in.sort.algorithm.as.an.argu
f1a20 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ment.');.}.}..public.function.ge
f1a40 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 24 61 72 72 61 79 20 3d 20 69 74 65 72 61 74 6f 72 5f tIterator().{.$array.=.iterator_
f1a60 74 6f 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 2c 20 74 72 75 65 29 3b to_array($this->iterator,.true);
f1a80 0a 75 61 73 6f 72 74 28 24 61 72 72 61 79 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 0a 72 .uasort($array,.$this->sort);..r
f1aa0 65 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 61 72 72 61 79 29 eturn.new.\ArrayIterator($array)
f1ac0 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.
f1ae0 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
f1b00 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 r;........class.FilecontentFilte
f1b20 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 rIterator.extends.MultiplePcreFi
f1b40 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 lterIterator.{......public.funct
f1b60 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 74 63 68 ion.accept().{.if.(!$this->match
f1b80 52 65 67 65 78 70 73 20 26 26 20 21 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 Regexps.&&.!$this->noMatchRegexp
f1ba0 73 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 69 6e 66 6f 20 3d s).{.return.true;.}..$fileinfo.=
f1bc0 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 66 69 6c 65 69 6e 66 .$this->current();..if.($fileinf
f1be0 6f 2d 3e 69 73 44 69 72 28 29 20 7c 7c 20 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 52 65 61 64 o->isDir().||.!$fileinfo->isRead
f1c00 61 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 74 able()).{.return.false;.}..$cont
f1c20 65 6e 74 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 3b 0a ent.=.$fileinfo->getContents();.
f1c40 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d if.(!$content).{.return.false;.}
f1c60 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 78 ....foreach.($this->noMatchRegex
f1c80 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 24 ps.as.$regex).{.if.(preg_match($
f1ca0 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 regex,.$content)).{.return.false
f1cc0 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 68 69 ;.}.}....$match.=.true;.if.($thi
f1ce0 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 6c 73 s->matchRegexps).{.$match.=.fals
f1d00 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 73 20 e;.foreach.($this->matchRegexps.
f1d20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 as.$regex).{.if.(preg_match($reg
f1d40 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a ex,.$content)).{.return.true;.}.
f1d60 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 }.}..return.$match;.}.........pr
f1d80 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b otected.function.toRegex($str).{
f1da0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 74 72 29 20 3f 20 24 .return.$this->isRegex($str).?.$
f1dc0 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 72 2c 20 27 2f 27 29 2e str.:.'/'.preg_quote($str,.'/').
f1de0 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 '/';.}.}.<?php...........namespa
f1e00 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
f1e20 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e ator;..use.Symfony\Component\Fin
f1e40 64 65 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c der\SplFileInfo;.......class.Fil
f1e60 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 41 72 72 61 79 49 74 65 ePathsIterator.extends.\ArrayIte
f1e80 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 3b 0a 0a 0a 0a rator.{....private.$baseDir;....
f1ea0 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 4c 65 6e 67 74 68 3b 0a 0a 0a 0a 0a 70 72 69 .private.$baseDirLength;.....pri
f1ec0 76 61 74 65 20 24 73 75 62 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 75 62 50 vate.$subPath;.....private.$subP
f1ee0 61 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a athname;.....private.$current;..
f1f00 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(
f1f20 61 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 62 61 73 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d array.$paths,.$baseDir).{.$this-
f1f40 3e 62 61 73 65 44 69 72 20 3d 20 24 62 61 73 65 44 69 72 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 >baseDir.=.$baseDir;.$this->base
f1f60 44 69 72 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 62 61 73 65 44 69 72 29 3b 0a 0a 70 DirLength.=.strlen($baseDir);..p
f1f80 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 73 29 3b 0a 7d 0a 0a 0a arent::__construct($paths);.}...
f1fa0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 61 6c 6c 28 24 6e 61 6d .....public.function.__call($nam
f1fc0 65 2c 20 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a 72 65 74 75 72 6e 20 63 61 e,.array.$arguments).{.return.ca
f1fe0 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 61 72 72 61 79 28 24 74 68 69 73 2d 3e ll_user_func_array(array($this->
f2000 63 75 72 72 65 6e 74 28 29 2c 20 24 6e 61 6d 65 29 2c 20 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a current(),.$name),.$arguments);.
f2020 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 6e 74 28 }.......public.function.current(
f2040 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 3b 0a 7d 0a 0a 0a 0a ).{.return.$this->current;.}....
f2060 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 6e 20 .public.function.key().{.return.
f2080 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 3b 0a 7d $this->current->getPathname();.}
f20a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 70 61 72 65 6e ..public.function.next().{.paren
f20c0 74 3a 3a 6e 65 78 74 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 t::next();.$this->buildPropertie
f20e0 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 s();.}..public.function.rewind()
f2100 0a 7b 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c .{.parent::rewind();.$this->buil
f2120 64 50 72 6f 70 65 72 74 69 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 dProperties();.}.....public.func
f2140 74 69 6f 6e 20 67 65 74 53 75 62 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getSubPath().{.return.$this
f2160 2d 3e 73 75 62 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ->subPath;.}.....public.function
f2180 20 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .getSubPathname().{.return.$this
f21a0 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 ->subPathname;.}..private.functi
f21c0 6f 6e 20 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 0a 7b 0a 24 61 62 73 6f 6c 75 74 65 on.buildProperties().{.$absolute
f21e0 50 61 74 68 20 3d 20 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 Path.=.parent::current();..if.($
f2200 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 62 73 6f 6c 75 this->baseDir.===.substr($absolu
f2220 74 65 50 61 74 68 2c 20 30 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e 67 74 68 29 tePath,.0,.$this->baseDirLength)
f2240 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 6c 74 72 69 6d 28 73 ).{.$this->subPathname.=.ltrim(s
f2260 75 62 73 74 72 28 24 61 62 73 6f 6c 75 74 65 50 61 74 68 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 ubstr($absolutePath,.$this->base
f2280 44 69 72 4c 65 6e 67 74 68 29 2c 20 27 2f 5c 5c 27 29 3b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 DirLength),.'/\\');.$dir.=.dirna
f22a0 6d 65 28 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 73 me($this->subPathname);.$this->s
f22c0 75 62 50 61 74 68 20 3d 20 27 2e 27 20 3d 3d 3d 20 24 64 69 72 20 3f 20 27 27 20 3a 20 24 64 69 ubPath.=.'.'.===.$dir.?.''.:.$di
f22e0 72 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 20 3d 20 24 74 68 r;.}.else.{.$this->subPath.=.$th
f2300 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 27 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e is->subPathname.=.'';.}..$this->
f2320 63 75 72 72 65 6e 74 20 3d 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f 28 70 61 72 65 6e 74 current.=.new.SplFileInfo(parent
f2340 3a 3a 63 75 72 72 65 6e 74 28 29 2c 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 2c 20 24 74 68 ::current(),.$this->subPath,.$th
f2360 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a is->subPathname);.}.}.<?php.....
f2380 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
f23a0 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 5c t\Finder\Iterator;..use.Symfony\
f23c0 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 5c 4e 75 6d 62 Component\Finder\Comparator\Numb
f23e0 65 72 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 69 7a 65 52 61 erComparator;.......class.SizeRa
f2400 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 ngeFilterIterator.extends.Filter
f2420 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 Iterator.{.private.$comparators.
f2440 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f =.array();........public.functio
f2460 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f n.__construct(\Iterator.$iterato
f2480 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e r,.array.$comparators).{.$this->
f24a0 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 comparators.=.$comparators;..par
f24c0 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a ent::__construct($iterator);.}..
f24e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a .....public.function.accept().{.
f2500 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 $fileinfo.=.$this->current();.if
f2520 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e .(!$fileinfo->isFile()).{.return
f2540 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d .true;.}..$filesize.=.$fileinfo-
f2560 3e 67 65 74 53 69 7a 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 >getSize();.foreach.($this->comp
f2580 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d arators.as.$compare).{.if.(!$com
f25a0 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 73 69 7a 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 pare->test($filesize)).{.return.
f25c0 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 3f 70 false;.}.}..return.true;.}.}.<?p
f25e0 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
f2600 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;.......
f2620 63 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 class.ExcludeDirectoryFilterIter
f2640 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 70 72 ator.extends.FilterIterator.{.pr
f2660 69 76 61 74 65 20 24 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a ivate.$patterns.=.array();......
f2680 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 ..public.function.__construct(\I
f26a0 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 64 69 72 65 63 74 terator.$iterator,.array.$direct
f26c0 6f 72 69 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 20 61 ories).{.foreach.($directories.a
f26e0 73 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 5b s.$directory).{.$this->patterns[
f2700 5d 20 3d 20 27 23 28 5e 7c 2f 29 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 65 63 74 6f ].=.'#(^|/)'.preg_quote($directo
f2720 72 79 2c 20 27 23 27 29 2e 27 28 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f ry,.'#').'(/|$)#';.}..parent::__
f2740 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 construct($iterator);.}.......pu
f2760 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 70 61 74 68 20 3d blic.function.accept().{.$path.=
f2780 20 24 74 68 69 73 2d 3e 69 73 44 69 72 28 29 20 3f 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 .$this->isDir().?.$this->current
f27a0 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 20 3a 20 24 74 68 69 ()->getRelativePathname().:.$thi
f27c0 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 68 28 29 3b s->current()->getRelativePath();
f27e0 0a 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 .$path.=.strtr($path,.'\\',.'/')
f2800 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 20 61 73 20 24 70 ;.foreach.($this->patterns.as.$p
f2820 61 74 74 65 72 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 attern).{.if.(preg_match($patter
f2840 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a n,.$path)).{.return.false;.}.}..
f2860 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.true;.}.}.<?php..........
f2880 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
f28a0 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 der\Iterator;.........abstract.c
f28c0 6c 61 73 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c lass.FilterIterator.extends.\Fil
f28e0 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 terIterator.{.......public.funct
f2900 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 ion.rewind().{.$iterator.=.$this
f2920 3b 0a 77 68 69 6c 65 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 4f ;.while.($iterator.instanceof.\O
f2940 75 74 65 72 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 20 3d uterIterator).{.$innerIterator.=
f2960 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 3b 0a .$iterator->getInnerIterator();.
f2980 0a 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 .if.($innerIterator.instanceof.R
f29a0 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 29 20 7b 0a 69 66 20 ecursiveDirectoryIterator).{.if.
f29c0 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 69 73 52 65 77 69 6e 64 61 62 6c 65 28 29 29 ($innerIterator->isRewindable())
f29e0 20 7b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 24 69 6e 6e 65 .{.$innerIterator->next();.$inne
f2a00 72 49 74 65 72 61 74 6f 72 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 rIterator->rewind();.}.}.elseif.
f2a20 28 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 20 69 ($iterator->getInnerIterator().i
f2a40 6e 73 74 61 6e 63 65 6f 66 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 29 20 7b nstanceof.\FilesystemIterator).{
f2a60 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e .$iterator->getInnerIterator()->
f2a80 6e 65 78 74 28 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 next();.$iterator->getInnerItera
f2aa0 74 6f 72 28 29 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 tor()->rewind();.}.$iterator.=.$
f2ac0 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a iterator->getInnerIterator();.}.
f2ae0 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a .parent::rewind();.}.}.<?php....
f2b00 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
f2b20 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
f2b40 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 45 78 70 \Component\Finder\Expression\Exp
f2b60 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 4d 75 ression;.......abstract.class.Mu
f2b80 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 ltiplePcreFilterIterator.extends
f2ba0 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 .FilterIterator.{.protected.$mat
f2bc0 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 chRegexps.=.array();.protected.$
f2be0 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a noMatchRegexps.=.array();.......
f2c00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 ..public.function.__construct(\I
f2c20 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 6d 61 74 63 68 50 terator.$iterator,.array.$matchP
f2c40 61 74 74 65 72 6e 73 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 29 atterns,.array.$noMatchPatterns)
f2c60 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 .{.foreach.($matchPatterns.as.$p
f2c80 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 attern).{.$this->matchRegexps[].
f2ca0 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 66 =.$this->toRegex($pattern);.}..f
f2cc0 6f 72 65 61 63 68 20 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 oreach.($noMatchPatterns.as.$pat
f2ce0 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 tern).{.$this->noMatchRegexps[].
f2d00 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 70 =.$this->toRegex($pattern);.}..p
f2d20 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d arent::__construct($iterator);.}
f2d40 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 .........protected.function.isRe
f2d60 67 65 78 28 24 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 gex($str).{.return.Expression::c
f2d80 72 65 61 74 65 28 24 73 74 72 29 2d 3e 69 73 52 65 67 65 78 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a reate($str)->isRegex();.}.......
f2da0 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 74 6f ..abstract.protected.function.to
f2dc0 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e Regex($str);.}.<?php...........n
f2de0 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 amespace.Symfony\Component\Finde
f2e00 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 73 74 6f r\Iterator;..........class.Custo
f2e20 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 mFilterIterator.extends.FilterIt
f2e40 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 erator.{.private.$filters.=.arra
f2e60 79 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 6e 20 5f 5f y();..........public.function.__
f2e80 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 20 61 construct(\Iterator.$iterator,.a
f2ea0 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 rray.$filters).{.foreach.($filte
f2ec0 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c rs.as.$filter).{.if.(!is_callabl
f2ee0 65 28 24 66 69 6c 74 65 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 e($filter)).{.throw.new.\Invalid
f2f00 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 48 50 20 63 ArgumentException('Invalid.PHP.c
f2f20 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d allback.');.}.}.$this->filters.=
f2f40 20 24 66 69 6c 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 .$filters;..parent::__construct(
f2f60 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 63 74 $iterator);.}.......public.funct
f2f80 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 ion.accept().{.$fileinfo.=.$this
f2fa0 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 ->current();..foreach.($this->fi
f2fc0 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d lters.as.$filter).{.if.(false.==
f2fe0 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 66 69 6c 74 65 72 2c 20 24 66 69 6c 65 69 =.call_user_func($filter,.$filei
f3000 6e 66 6f 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 nfo)).{.return.false;.}.}..retur
f3020 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 n.true;.}.}.<?php...........name
f3040 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 space.Symfony\Component\Finder\I
f3060 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c terator;..use.Symfony\Component\
f3080 46 69 6e 64 65 72 5c 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 Finder\Expression\Expression;...
f30a0 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 ....class.FilenameFilterIterator
f30c0 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 .extends.MultiplePcreFilterItera
f30e0 74 6f 72 0a 7b 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 tor.{......public.function.accep
f3100 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 t().{.$filename.=.$this->current
f3120 28 29 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 ()->getFilename();....foreach.($
f3140 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 this->noMatchRegexps.as.$regex).
f3160 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 {.if.(preg_match($regex,.$filena
f3180 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 me)).{.return.false;.}.}....$mat
f31a0 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 ch.=.true;.if.($this->matchRegex
f31c0 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 ps).{.$match.=.false;.foreach.($
f31e0 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a this->matchRegexps.as.$regex).{.
f3200 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
f3220 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 )).{.return.true;.}.}.}..return.
f3240 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 $match;.}............protected.f
f3260 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 unction.toRegex($str).{.return.E
f3280 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 67 65 74 52 65 67 65 xpression::create($str)->getRege
f32a0 78 28 29 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a x()->render();.}.}.<?php........
f32c0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 ...namespace.Symfony\Component\F
f32e0 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 5c 43 6f 6d inder\Iterator;..use.Symfony\Com
f3300 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 44 61 74 65 43 6f 6d ponent\Finder\Comparator\DateCom
f3320 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 52 61 6e 67 65 46 69 parator;.......class.DateRangeFi
f3340 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 lterIterator.extends.FilterItera
f3360 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 tor.{.private.$comparators.=.arr
f3380 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 5f 5f 63 ay();........public.function.__c
f33a0 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 20 61 72 onstruct(\Iterator.$iterator,.ar
f33c0 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 ray.$comparators).{.$this->compa
f33e0 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a rators.=.$comparators;..parent::
f3400 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a __construct($iterator);.}.......
f3420 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 6c 65 public.function.accept().{.$file
f3440 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 21 66 info.=.$this->current();..if.(!f
f3460 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 52 65 61 6c 50 61 74 ile_exists($fileinfo->getRealPat
f3480 68 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 66 69 6c 65 64 61 h())).{.return.false;.}..$fileda
f34a0 74 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a 66 6f 72 65 te.=.$fileinfo->getMTime();.fore
f34c0 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 ach.($this->comparators.as.$comp
f34e0 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 are).{.if.(!$compare->test($file
f3500 64 61 74 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 date)).{.return.false;.}.}..retu
f3520 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d rn.true;.}.}.<?php...........nam
f3540 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\
f3560 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 54 79 70 65 46 69 Iterator;.......class.FileTypeFi
f3580 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 lterIterator.extends.FilterItera
f35a0 74 6f 72 0a 7b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 tor.{.const.ONLY_FILES.=.1;.cons
f35c0 74 20 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 t.ONLY_DIRECTORIES.=.2;..private
f35e0 20 24 6d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f .$mode;........public.function._
f3600 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 20 _construct(\Iterator.$iterator,.
f3620 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 70 $mode).{.$this->mode.=.$mode;..p
f3640 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d arent::__construct($iterator);.}
f3660 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a .......public.function.accept().
f3680 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a {.$fileinfo.=.$this->current();.
f36a0 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 28 if.(self::ONLY_DIRECTORIES.===.(
f36c0 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 68 69 73 2d 3e self::ONLY_DIRECTORIES.&.$this->
f36e0 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a mode).&&.$fileinfo->isFile()).{.
f3700 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 4f 4e return.false;.}.elseif.(self::ON
f3720 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 26 LY_FILES.===.(self::ONLY_FILES.&
f3740 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 44 69 .$this->mode).&&.$fileinfo->isDi
f3760 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 r()).{.return.false;.}..return.t
f3780 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
f37a0 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
f37c0 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e ator;..use.Symfony\Component\Fin
f37e0 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 65 70 74 der\Exception\AccessDeniedExcept
f3800 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 6e 64 65 ion;.use.Symfony\Component\Finde
f3820 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 63 75 72 r\SplFileInfo;.......class.Recur
f3840 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 52 siveDirectoryIterator.extends.\R
f3860 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 0a 7b 0a 0a 0a 0a 70 ecursiveDirectoryIterator.{....p
f3880 72 69 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 3b 0a 0a 0a rivate.$ignoreUnreadableDirs;...
f38a0 0a 0a 70 72 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 ..private.$rewindable;..........
f38c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 .public.function.__construct($pa
f38e0 74 68 2c 20 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 th,.$flags,.$ignoreUnreadableDir
f3900 73 20 3d 20 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 s.=.false).{.if.($flags.&.(self:
f3920 3a 43 55 52 52 45 4e 54 5f 41 53 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 3a 3a 43 55 52 :CURRENT_AS_PATHNAME.|.self::CUR
f3940 52 45 4e 54 5f 41 53 5f 53 45 4c 46 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 RENT_AS_SELF)).{.throw.new.\Runt
f3960 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 20 6f 6e 6c 79 imeException('This.iterator.only
f3980 20 73 75 70 70 6f 72 74 20 72 65 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 61 73 20 66 69 .support.returning.current.as.fi
f39a0 6c 65 69 6e 66 6f 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 leinfo.');.}..parent::__construc
f39c0 74 28 24 70 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 t($path,.$flags);.$this->ignoreU
f39e0 6e 72 65 61 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 nreadableDirs.=.$ignoreUnreadabl
f3a00 65 44 69 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 eDirs;.}.......public.function.c
f3a20 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 urrent().{.return.new.SplFileInf
f3a40 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 o(parent::current()->getPathname
f3a60 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 28 29 2c 20 24 74 68 69 73 2d 3e (),.$this->getSubPath(),.$this->
f3a80 67 65 74 53 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 getSubPathname());.}.......publi
f3aa0 63 20 66 75 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 c.function.getChildren().{.try.{
f3ac0 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 68 69 6c 64 72 65 6e .$children.=.parent::getChildren
f3ae0 28 29 3b 0a 0a 69 66 20 28 24 63 68 69 6c 64 72 65 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 ();..if.($children.instanceof.se
f3b00 6c 66 29 20 7b 0a 0a 20 24 63 68 69 6c 64 72 65 6e 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 lf).{...$children->ignoreUnreada
f3b20 62 6c 65 44 69 72 73 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c bleDirs.=.$this->ignoreUnreadabl
f3b40 65 44 69 72 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 20 63 61 eDirs;.}..return.$children;.}.ca
f3b60 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 tch.(\UnexpectedValueException.$
f3b80 65 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 e).{.if.($this->ignoreUnreadable
f3ba0 44 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 Dirs).{...return.new.\RecursiveA
f3bc0 72 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 rrayIterator(array());.}.else.{.
f3be0 74 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 throw.new.AccessDeniedException(
f3c00 24 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 $e->getMessage(),.$e->getCode(),
f3c20 20 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 .$e);.}.}.}.....public.function.
f3c40 72 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 rewind().{.if.(false.===.$this->
f3c60 69 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 isRewindable()).{.return;.}....p
f3c80 61 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 arent::next();..parent::rewind()
f3ca0 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 52 65 77 69 ;.}.......public.function.isRewi
f3cc0 6e 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 ndable().{.if.(null.!==.$this->r
f3ce0 65 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 ewindable).{.return.$this->rewin
f3d00 64 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 dable;.}..if.(false.!==.$stream.
f3d20 3d 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 =.@opendir($this->getPath())).{.
f3d40 24 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 $infos.=.stream_get_meta_data($s
f3d60 74 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 tream);.closedir($stream);..if.(
f3d80 24 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 $infos['seekable']).{.return.$th
f3da0 69 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 is->rewindable.=.true;.}.}..retu
f3dc0 72 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 rn.$this->rewindable.=.false;.}.
f3de0 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
f3e00 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;..
f3e20 0a 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 ......class.PathFilterIterator.e
f3e40 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f xtends.MultiplePcreFilterIterato
f3e60 72 0a 7b 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 r.{......public.function.accept(
f3e80 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()
f3ea0 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 27 5c ->getRelativePathname();..if.('\
f3ec0 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 66 \'.===.DIRECTORY_SEPARATOR).{.$f
f3ee0 69 6c 65 6e 61 6d 65 20 3d 20 73 74 72 74 72 28 24 66 69 6c 65 6e 61 6d 65 2c 20 27 5c 5c 27 2c ilename.=.strtr($filename,.'\\',
f3f00 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 .'/');.}....foreach.($this->noMa
f3f20 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 tchRegexps.as.$regex).{.if.(preg
f3f40 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 20 7b 0a 72 65 74 _match($regex,.$filename)).{.ret
f3f60 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b urn.false;.}.}....$match.=.true;
f3f80 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 .if.($this->matchRegexps).{.$mat
f3fa0 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 ch.=.false;.foreach.($this->matc
f3fc0 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d hRegexps.as.$regex).{.if.(preg_m
f3fe0 61 74 63 68 28 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 atch($regex,.$filename)).{.retur
f4000 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 3b 0a 7d 0a n.true;.}.}.}..return.$match;.}.
f4020 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 6f ...............protected.functio
f4040 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.toRegex($str).{.return.$this->
f4060 69 73 52 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 isRegex($str).?.$str.:.'/'.preg_
f4080 71 75 6f 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 quote($str,.'/').'/';.}.}.<?php.
f40a0 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
f40c0 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 onent\Finder\Comparator;.......c
f40e0 6c 61 73 73 20 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 lass.DateComparator.extends.Comp
f4100 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 20 arator.{........public.function.
f4120 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 6d __construct($test).{.if.(!preg_m
f4140 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 atch('#^\s*(==|!=|[<>]=?|after|s
f4160 69 6e 63 65 7c 62 65 66 6f 72 65 7c 75 6e 74 69 6c 29 3f 5c 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 ince|before|until)?\s*(.+?)\s*$#
f4180 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 i',.$test,.$matches)).{.throw.ne
f41a0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
f41c0 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 ntf('Don\'t.understand."%s".as.a
f41e0 20 64 61 74 65 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a .date.test.',.$test));.}..try.{.
f4200 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 65 73 5b 32 $date.=.new.\DateTime($matches[2
f4220 5d 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 ]);.$target.=.$date->format('U')
f4240 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 74 68 72 6f ;.}.catch.(\Exception.$e).{.thro
f4260 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(
f4280 73 70 72 69 6e 74 66 28 27 22 25 73 22 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 64 61 74 sprintf('"%s".is.not.a.valid.dat
f42a0 65 2e 27 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 e.',.$matches[2]));.}..$operator
f42c0 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 .=.isset($matches[1]).?.$matches
f42e0 5b 31 5d 20 3a 20 27 3d 3d 27 3b 0a 69 66 20 28 27 73 69 6e 63 65 27 20 3d 3d 3d 20 24 6f 70 65 [1].:.'==';.if.('since'.===.$ope
f4300 72 61 74 6f 72 20 7c 7c 20 27 61 66 74 65 72 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 rator.||.'after'.===.$operator).
f4320 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3e 27 3b 0a 7d 0a 0a 69 66 20 28 27 75 6e 74 69 6c {.$operator.=.'>';.}..if.('until
f4340 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 62 65 66 6f 72 65 27 20 3d 3d 3d 20 '.===.$operator.||.'before'.===.
f4360 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a $operator).{.$operator.=.'<';.}.
f4380 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 3b 0a .$this->setOperator($operator);.
f43a0 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 7d 0a 7d 0a 3c $this->setTarget($target);.}.}.<
f43c0 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
f43e0 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 0a 0a \Component\Finder\Comparator;...
f4400 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 4e 75 6d 62 65 72 ....................class.Number
f4420 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a Comparator.extends.Comparator.{.
f4440 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
f4460 63 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c ct($test).{.if.(!preg_match('#^\
f4480 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 29 3f 5c 73 2a 28 5b 30 2d 39 5c 2e 5d 2b 29 5c 73 s*(==|!=|[<>]=?)?\s*([0-9\.]+)\s
f44a0 2a 28 5b 6b 6d 67 5d 69 3f 29 3f 5c 73 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 *([kmg]i?)?\s*$#i',.$test,.$matc
f44c0 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 hes)).{.throw.new.\InvalidArgume
f44e0 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 ntException(sprintf('Don\'t.unde
f4500 72 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 6e 75 6d 62 65 72 20 74 65 73 74 2e 27 2c 20 rstand."%s".as.a.number.test.',.
f4520 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 32 $test));.}..$target.=.$matches[2
f4540 5d 3b 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 61 72 67 65 74 29 29 20 7b 0a 74 ];.if.(!is_numeric($target)).{.t
f4560 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
f4580 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6e 75 6d 62 65 72 20 22 25 73 22 2e on(sprintf('Invalid.number."%s".
f45a0 27 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 ',.$target));.}.if.(isset($match
f45c0 65 73 5b 33 5d 29 29 20 7b 0a 0a 20 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 es[3])).{...switch.(strtolower($
f45e0 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 63 61 73 65 20 27 6b 27 3a 0a 24 74 61 72 67 65 74 matches[3])).{.case.'k':.$target
f4600 20 2a 3d 20 31 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6b 69 27 3a 0a 24 74 61 72 .*=.1000;.break;.case.'ki':.$tar
f4620 67 65 74 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 27 3a 0a 24 74 get.*=.1024;.break;.case.'m':.$t
f4640 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d arget.*=.1000000;.break;.case.'m
f4660 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b i':.$target.*=.1024*1024;.break;
f4680 0a 63 61 73 65 20 27 67 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 30 30 30 .case.'g':.$target.*=.1000000000
f46a0 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 ;.break;.case.'gi':.$target.*=.1
f46c0 30 32 34 2a 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 024*1024*1024;.break;.}.}..$this
f46e0 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 ->setTarget($target);.$this->set
f4700 4f 70 65 72 61 74 6f 72 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d Operator(isset($matches[1]).?.$m
f4720 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a atches[1].:.'==');.}.}.<?php....
f4740 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
f4760 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 nt\Finder\Comparator;.......clas
f4780 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 61 72 67 65 74 3b 0a s.Comparator.{.private.$target;.
f47a0 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 0a 0a 0a 0a 0a 0a private.$operator.=.'==';.......
f47c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 public.function.getTarget().{.re
f47e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c turn.$this->target;.}.......publ
f4800 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 0a 7b ic.function.setTarget($target).{
f4820 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a .$this->target.=.$target;.}.....
f4840 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 6f 72 28 29 0a ..public.function.getOperator().
f4860 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a {.return.$this->operator;.}.....
f4880 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 65 72 61 74 6f 72 28 ....public.function.setOperator(
f48a0 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 21 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 $operator).{.if.(!$operator).{.$
f48c0 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 operator.=.'==';.}..if.(!in_arra
f48e0 79 28 24 6f 70 65 72 61 74 6f 72 2c 20 61 72 72 61 79 28 27 3e 27 2c 20 27 3c 27 2c 20 27 3e 3d y($operator,.array('>',.'<',.'>=
f4900 27 2c 20 27 3c 3d 27 2c 20 27 3d 3d 27 2c 20 27 21 3d 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e ',.'<=',.'==',.'!='))).{.throw.n
f4920 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
f4940 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f 72 20 22 25 73 22 2e 27 2c 20 24 intf('Invalid.operator."%s".',.$
f4960 6f 70 65 72 61 74 6f 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d operator));.}..$this->operator.=
f4980 20 24 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$operator;.}.........public.fun
f49a0 63 74 69 6f 6e 20 74 65 73 74 28 24 74 65 73 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 ction.test($test).{.switch.($thi
f49c0 73 2d 3e 6f 70 65 72 61 74 6f 72 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 72 65 74 75 72 6e 20 s->operator).{.case.'>':.return.
f49e0 24 74 65 73 74 20 3e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3e 3d 27 $test.>.$this->target;.case.'>='
f4a00 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b :.return.$test.>=.$this->target;
f4a20 0a 63 61 73 65 20 27 3c 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3c 20 24 74 68 69 73 2d .case.'<':.return.$test.<.$this-
f4a40 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 >target;.case.'<=':.return.$test
f4a60 20 3c 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 72 65 .<=.$this->target;.case.'!=':.re
f4a80 74 75 72 6e 20 24 74 65 73 74 20 21 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a turn.$test.!=.$this->target;.}..
f4aa0 72 65 74 75 72 6e 20 24 74 65 73 74 20 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d return.$test.==.$this->target;.}
f4ac0 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
f4ae0 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 69 6f 6e 3b fony\Component\Finder\Exception;
f4b00 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e .....class.AccessDeniedException
f4b20 20 65 78 74 65 6e 64 73 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 .extends.\UnexpectedValueExcepti
f4b40 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 on.{.}.<?php...........namespace
f4b60 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
f4b80 69 6f 6e 3b 0a 0a 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 ion;.....interface.ExceptionInte
f4ba0 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 67 65 74 41 64 rface.{....public.function.getAd
f4bc0 61 70 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 apter();.}.<?php...........names
f4be0 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
f4c00 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 70 65 72 61 74 69 6f 6e 4e 6f 74 50 ception;.....class.OperationNotP
f4c20 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 64 61 70 74 65 72 ermitedException.extends.Adapter
f4c40 46 61 69 6c 75 72 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 FailureException.{.}.<?php......
f4c60 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
f4c80 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\
f4ca0 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
f4cc0 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 64 61 70 74 65 72 46 61 Interface;.......class.AdapterFa
f4ce0 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 ilureException.extends.\RuntimeE
f4d00 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 xception.implements.ExceptionInt
f4d20 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 64 61 70 74 65 72 3b 0a 0a 0a erface.{....private.$adapter;...
f4d40 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(
f4d60 41 64 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 6d 65 73 73 AdapterInterface.$adapter,.$mess
f4d80 61 67 65 20 3d 20 6e 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 age.=.null,.\Exception.$previous
f4da0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 20 3d 20 24 61 64 61 .=.null).{.$this->adapter.=.$ada
f4dc0 70 74 65 72 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 pter;.parent::__construct($messa
f4de0 67 65 20 3f 3a 20 27 53 65 61 72 63 68 20 66 61 69 6c 65 64 20 77 69 74 68 20 22 27 2e 24 61 64 ge.?:.'Search.failed.with."'.$ad
f4e00 61 70 74 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 22 20 61 64 61 70 74 65 72 2e 27 2c 20 24 apter->getName().'".adapter.',.$
f4e20 70 72 65 76 69 6f 75 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 previous);.}.....public.function
f4e40 20 67 65 74 41 64 61 70 74 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 .getAdapter().{.return.$this->ad
f4e60 61 70 74 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 apter;.}.}.<?php...........names
f4e80 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
f4ea0 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ception;..use.Symfony\Component\
f4ec0 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 3b Finder\Adapter\AdapterInterface;
f4ee0 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 68 .use.Symfony\Component\Finder\Sh
f4f00 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 43 6f 6d 6d ell\Command;.....class.ShellComm
f4f20 61 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 64 61 70 andFailureException.extends.Adap
f4f40 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 terFailureException.{....private
f4f60 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$command;.......public.function
f4f80 20 5f 5f 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 .__construct(AdapterInterface.$a
f4fa0 64 61 70 74 65 72 2c 20 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 5c 45 78 63 65 70 dapter,.Command.$command,.\Excep
f4fc0 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 24 74 68 69 73 2d 3e tion.$previous.=.null).{.$this->
f4fe0 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f command.=.$command;.parent::__co
f5000 6e 73 74 72 75 63 74 28 24 61 64 61 70 74 65 72 2c 20 27 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 nstruct($adapter,.'Shell.command
f5020 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 6a 6f 69 6e 28 29 2e 27 22 2e .failed:."'.$command->join().'".
f5040 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 63 20 66 75 6e 63 ',.$previous);.}.....public.func
f5060 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 20 24 74 68 69 73 tion.getCommand().{.return.$this
f5080 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 ->command;.}.}.Copyright.(c).200
f50a0 34 2d 32 30 31 35 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 0a 0a 50 65 72 6d 69 73 73 4-2015.Fabien.Potencier..Permiss
f50c0 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 20 63 ion.is.hereby.granted,.free.of.c
f50e0 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 20 61 harge,.to.any.person.obtaining.a
f5100 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 6f 63 .copy.of.this.software.and.assoc
f5120 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 20 22 iated.documentation.files.(the."
f5140 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 74 77 Software"),.to.deal.in.the.Softw
f5160 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 64 69 are.without.restriction,.includi
f5180 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 74 73 ng.without.limitation.the.rights
f51a0 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 70 75 .to.use,.copy,.modify,.merge,.pu
f51c0 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 20 61 blish,.distribute,.sublicense,.a
f51e0 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 61 72 nd/or.sell.copies.of.the.Softwar
f5200 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 6f 6d e,.and.to.permit.persons.to.whom
f5220 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 64 6f .the.Software.is.furnished.to.do
f5240 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 63 6f .so,.subject.to.the.following.co
f5260 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 20 6e nditions:..The.above.copyright.n
f5280 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 63 65 otice.and.this.permission.notice
f52a0 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 65 73 .shall.be.included.in.all.copies
f52c0 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 65 20 .or.substantial.portions.of.the.
f52e0 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 56 49 Software...THE.SOFTWARE.IS.PROVI
f5300 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 4f 46 DED."AS.IS",.WITHOUT.WARRANTY.OF
f5320 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 20 49 .ANY.KIND,.EXPRESS.OR.IMPLIED,.I
f5340 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 45 20 NCLUDING.BUT.NOT.LIMITED.TO.THE.
f5360 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 0a 46 WARRANTIES.OF.MERCHANTABILITY,.F
f5380 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 45 20 ITNESS.FOR.A.PARTICULAR.PURPOSE.
f53a0 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 4e 54 AND.NONINFRINGEMENT..IN.NO.EVENT
f53c0 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 54 20 .SHALL.THE.AUTHORS.OR.COPYRIGHT.
f53e0 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 4d 2c HOLDERS.BE.LIABLE.FOR.ANY.CLAIM,
f5400 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 48 45 .DAMAGES.OR.OTHER.LIABILITY,.WHE
f5420 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 20 54 THER.IN.AN.ACTION.OF.CONTRACT,.T
f5440 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 2c 0a ORT.OR.OTHERWISE,.ARISING.FROM,.
f5460 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 48 45 OUT.OF.OR.IN.CONNECTION.WITH.THE
f5480 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 44 45 .SOFTWARE.OR.THE.USE.OR.OTHER.DE
f54a0 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 3c 3f 70 68 70 0a 0a 0a ALINGS.IN.THE.SOFTWARE..<?php...
f54c0 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
f54e0 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 49 ent\Finder;.......class.SplFileI
f5500 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 61 nfo.extends.\SplFileInfo.{.priva
f5520 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 74 te.$relativePath;.private.$relat
f5540 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 63 ivePathname;.........public.func
f5560 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 76 tion.__construct($file,.$relativ
f5580 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 65 ePath,.$relativePathname).{.pare
f55a0 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 72 nt::__construct($file);.$this->r
f55c0 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 68 elativePath.=.$relativePath;.$th
f55e0 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 65 is->relativePathname.=.$relative
f5600 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 6f Pathname;.}.......public.functio
f5620 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 68 n.getRelativePath().{.return.$th
f5640 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 63 is->relativePath;.}.......public
f5660 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 0a .function.getRelativePathname().
f5680 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 65 {.return.$this->relativePathname
f56a0 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 43 ;.}.........public.function.getC
f56c0 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 72 ontents().{.$level.=.error_repor
f56e0 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 6e ting(0);.$content.=.file_get_con
f5700 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 72 tents($this->getPathname());.err
f5720 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 20 or_reporting($level);.if.(false.
f5740 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 67 ===.$content).{.$error.=.error_g
f5760 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 63 et_last();.throw.new.\RuntimeExc
f5780 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 65 eption($error['message']);.}..re
f57a0 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 turn.$content;.}.}.Copyright.(c)
f57c0 20 32 30 31 31 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e .2011.Jordi.Boggiano..Permission
f57e0 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 20 63 68 61 72 .is.hereby.granted,.free.of.char
f5800 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 20 61 20 63 6f ge,.to.any.person.obtaining.a.co
f5820 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 6f 63 69 61 74 py.of.this.software.and.associat
f5840 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 20 22 53 6f 66 ed.documentation.files.(the."Sof
f5860 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 74 77 61 72 65 tware"),.to.deal.in.the.Software
f5880 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 64 69 6e 67 20 .without.restriction,.including.
f58a0 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 74 73 0a 74 6f without.limitation.the.rights.to
f58c0 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 70 75 62 6c 69 .use,.copy,.modify,.merge,.publi
f58e0 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 20 61 6e 64 2f sh,.distribute,.sublicense,.and/
f5900 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 61 72 65 2c 20 or.sell.copies.of.the.Software,.
f5920 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 6f 6d 20 74 68 and.to.permit.persons.to.whom.th
f5940 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 64 6f 20 73 6f e.Software.is.furnished.to.do.so
f5960 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 63 6f 6e 64 69 ,.subject.to.the.following.condi
f5980 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 20 6e 6f 74 69 tions:..The.above.copyright.noti
f59a0 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 63 65 20 73 68 ce.and.this.permission.notice.sh
f59c0 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 65 73 20 6f 72 all.be.included.in.all.copies.or
f59e0 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 65 20 53 6f 66 .substantial.portions.of.the.Sof
f5a00 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 56 49 44 45 44 tware...THE.SOFTWARE.IS.PROVIDED
f5a20 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 4f 46 20 41 4e ."AS.IS",.WITHOUT.WARRANTY.OF.AN
f5a40 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 20 49 4e 43 4c Y.KIND,.EXPRESS.OR.IMPLIED,.INCL
f5a60 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 45 20 57 41 52 UDING.BUT.NOT.LIMITED.TO.THE.WAR
f5a80 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 0a 46 49 54 4e RANTIES.OF.MERCHANTABILITY,.FITN
f5aa0 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 45 20 41 4e 44 ESS.FOR.A.PARTICULAR.PURPOSE.AND
f5ac0 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 4e 54 20 53 48 .NONINFRINGEMENT..IN.NO.EVENT.SH
f5ae0 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 54 20 48 4f 4c ALL.THE.AUTHORS.OR.COPYRIGHT.HOL
f5b00 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 4d 2c 20 44 41 DERS.BE.LIABLE.FOR.ANY.CLAIM,.DA
f5b20 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 48 45 54 48 45 MAGES.OR.OTHER.LIABILITY,.WHETHE
f5b40 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 20 54 4f 52 54 R.IN.AN.ACTION.OF.CONTRACT,.TORT
f5b60 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 2c 0a 4f 55 54 .OR.OTHERWISE,.ARISING.FROM,.OUT
f5b80 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 48 45 20 53 4f .OF.OR.IN.CONNECTION.WITH.THE.SO
f5ba0 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 44 45 41 4c 49 FTWARE.OR.THE.USE.OR.OTHER.DEALI
f5bc0 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a NGS.IN.THE.SOFTWARE..<?php......
f5be0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 .....namespace.Seld\JsonLint;..c
f5c00 6c 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 lass.Undefined.{.}.<?php........
f5c20 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 75 73 65 20 ...namespace.Seld\JsonLint;.use.
f5c40 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
f5c60 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
f5c80 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
f5ca0 5f 4b 45 59 53 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 50 41 52 53 45 5f 54 4f 5f 41 53 53 4f 43 20 _KEYS.=.2;.const.PARSE_TO_ASSOC.
f5cc0 3d 20 34 3b 0a 0a 70 72 69 76 61 74 65 20 24 6c 65 78 65 72 3b 0a 0a 70 72 69 76 61 74 65 20 24 =.4;..private.$lexer;..private.$
f5ce0 66 6c 61 67 73 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 flags;.private.$stack;.private.$
f5d00 76 73 74 61 63 6b 3b 20 0a 20 70 72 69 76 61 74 65 20 24 6c 73 74 61 63 6b 3b 20 0a 0a 70 72 69 vstack;...private.$lstack;...pri
f5d20 76 61 74 65 20 24 73 79 6d 62 6f 6c 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d vate.$symbols.=.array(.'error'.=
f5d40 3e 20 32 2c 0a 27 4a 53 4f 4e 53 74 72 69 6e 67 27 20 3d 3e 20 33 2c 0a 27 53 54 52 49 4e 47 27 >.2,.'JSONString'.=>.3,.'STRING'
f5d60 20 3d 3e 20 34 2c 0a 27 4a 53 4f 4e 4e 75 6d 62 65 72 27 20 3d 3e 20 35 2c 0a 27 4e 55 4d 42 45 .=>.4,.'JSONNumber'.=>.5,.'NUMBE
f5d80 52 27 20 3d 3e 20 36 2c 0a 27 4a 53 4f 4e 4e 75 6c 6c 4c 69 74 65 72 61 6c 27 20 3d 3e 20 37 2c R'.=>.6,.'JSONNullLiteral'.=>.7,
f5da0 0a 27 4e 55 4c 4c 27 20 3d 3e 20 38 2c 0a 27 4a 53 4f 4e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 61 .'NULL'.=>.8,.'JSONBooleanLitera
f5dc0 6c 27 20 3d 3e 20 39 2c 0a 27 54 52 55 45 27 20 3d 3e 20 31 30 2c 0a 27 46 41 4c 53 45 27 20 3d l'.=>.9,.'TRUE'.=>.10,.'FALSE'.=
f5de0 3e 20 31 31 2c 0a 27 4a 53 4f 4e 54 65 78 74 27 20 3d 3e 20 31 32 2c 0a 27 4a 53 4f 4e 56 61 6c >.11,.'JSONText'.=>.12,.'JSONVal
f5e00 75 65 27 20 3d 3e 20 31 33 2c 0a 27 45 4f 46 27 20 3d 3e 20 31 34 2c 0a 27 4a 53 4f 4e 4f 62 6a ue'.=>.13,.'EOF'.=>.14,.'JSONObj
f5e20 65 63 74 27 20 3d 3e 20 31 35 2c 0a 27 4a 53 4f 4e 41 72 72 61 79 27 20 3d 3e 20 31 36 2c 0a 27 ect'.=>.15,.'JSONArray'.=>.16,.'
f5e40 7b 27 20 3d 3e 20 31 37 2c 0a 27 7d 27 20 3d 3e 20 31 38 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 {'.=>.17,.'}'.=>.18,.'JSONMember
f5e60 4c 69 73 74 27 20 3d 3e 20 31 39 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 27 20 3d 3e 20 32 30 2c List'.=>.19,.'JSONMember'.=>.20,
f5e80 0a 27 3a 27 20 3d 3e 20 32 31 2c 0a 27 2c 27 20 3d 3e 20 32 32 2c 0a 27 5b 27 20 3d 3e 20 32 33 .':'.=>.21,.','.=>.22,.'['.=>.23
f5ea0 2c 0a 27 5d 27 20 3d 3e 20 32 34 2c 0a 27 4a 53 4f 4e 45 6c 65 6d 65 6e 74 4c 69 73 74 27 20 3d ,.']'.=>.24,.'JSONElementList'.=
f5ec0 3e 20 32 35 2c 0a 27 24 61 63 63 65 70 74 27 20 3d 3e 20 30 2c 0a 27 24 65 6e 64 27 20 3d 3e 20 >.25,.'$accept'.=>.0,.'$end'.=>.
f5ee0 31 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 65 72 6d 69 6e 61 6c 73 5f 20 3d 20 61 72 72 1,.);..private.$terminals_.=.arr
f5f00 61 79 28 0a 32 20 3d 3e 20 22 65 72 72 6f 72 22 2c 0a 34 20 3d 3e 20 22 53 54 52 49 4e 47 22 2c ay(.2.=>."error",.4.=>."STRING",
f5f20 0a 36 20 3d 3e 20 22 4e 55 4d 42 45 52 22 2c 0a 38 20 3d 3e 20 22 4e 55 4c 4c 22 2c 0a 31 30 20 .6.=>."NUMBER",.8.=>."NULL",.10.
f5f40 3d 3e 20 22 54 52 55 45 22 2c 0a 31 31 20 3d 3e 20 22 46 41 4c 53 45 22 2c 0a 31 34 20 3d 3e 20 =>."TRUE",.11.=>."FALSE",.14.=>.
f5f60 22 45 4f 46 22 2c 0a 31 37 20 3d 3e 20 22 7b 22 2c 0a 31 38 20 3d 3e 20 22 7d 22 2c 0a 32 31 20 "EOF",.17.=>."{",.18.=>."}",.21.
f5f80 3d 3e 20 22 3a 22 2c 0a 32 32 20 3d 3e 20 22 2c 22 2c 0a 32 33 20 3d 3e 20 22 5b 22 2c 0a 32 34 =>.":",.22.=>.",",.23.=>."[",.24
f5fa0 20 3d 3e 20 22 5d 22 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 64 75 63 74 69 6f 6e .=>."]",.);..private.$production
f5fc0 73 5f 20 3d 20 61 72 72 61 79 28 0a 30 2c 0a 61 72 72 61 79 28 33 2c 20 31 29 2c 0a 61 72 72 61 s_.=.array(.0,.array(3,.1),.arra
f5fe0 79 28 35 2c 20 31 29 2c 0a 61 72 72 61 79 28 37 2c 20 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 y(5,.1),.array(7,.1),.array(9,.1
f6000 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 32 2c 20 32 29 2c 0a 61 72 ),.array(9,.1),.array(12,.2),.ar
f6020 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 ray(13,.1),.array(13,.1),.array(
f6040 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 13,.1),.array(13,.1),.array(13,.
f6060 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 35 2c 20 32 29 2c 0a 1),.array(13,.1),.array(15,.2),.
f6080 61 72 72 61 79 28 31 35 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 30 2c 20 33 29 2c 0a 61 72 72 61 array(15,.3),.array(20,.3),.arra
f60a0 79 28 31 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 39 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 36 y(19,.1),.array(19,.3),.array(16
f60c0 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 31 29 ,.2),.array(16,.3),.array(25,.1)
f60e0 2c 0a 61 72 72 61 79 28 32 35 2c 20 33 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 61 62 6c ,.array(25,.3).);..private.$tabl
f6100 65 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 e.=.array(array(3.=>.5,.4.=>.arr
f6120 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 ay(1,12),.5.=>.6,.6.=>.array(1,1
f6140 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3),.7.=>.3,.8.=>.array(1,9),.9.=
f6160 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 >.4,.10.=>.array(1,10),.11.=>.ar
f6180 72 61 79 28 31 2c 31 31 29 2c 20 31 32 20 3d 3e 20 31 2c 20 31 33 20 3d 3e 20 32 2c 20 31 35 20 ray(1,11),.12.=>.1,.13.=>.2,.15.
f61a0 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 =>.7,.16.=>.8,.17.=>.array(1,14)
f61c0 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 20 3d ,.23.=>.array(1,15)),.array(.1.=
f61e0 3e 20 61 72 72 61 79 28 33 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 >.array(3)),.array(.14.=>.array(
f6200 31 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 1,16)),.array(.14.=>.array(2,7),
f6220 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 .18.=>.array(2,7),.22.=>.array(2
f6240 2c 37 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 29 2c 20 61 72 72 61 79 28 20 31 ,7),.24.=>.array(2,7)),.array(.1
f6260 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 4.=>.array(2,8),.18.=>.array(2,8
f6280 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 ),.22.=>.array(2,8),.24.=>.array
f62a0 28 32 2c 38 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c (2,8)),.array(.14.=>.array(2,9),
f62c0 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 .18.=>.array(2,9),.22.=>.array(2
f62e0 2c 39 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 29 2c 20 61 72 72 61 79 28 20 31 ,9),.24.=>.array(2,9)),.array(.1
f6300 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 4.=>.array(2,10),.18.=>.array(2,
f6320 31 30 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 32 34 20 3d 3e 20 61 72 10),.22.=>.array(2,10),.24.=>.ar
f6340 72 61 79 28 32 2c 31 30 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 ray(2,10)),.array(.14.=>.array(2
f6360 2c 31 31 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 32 32 20 3d 3e 20 61 ,11),.18.=>.array(2,11),.22.=>.a
f6380 72 72 61 79 28 32 2c 31 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 29 2c 20 rray(2,11),.24.=>.array(2,11)),.
f63a0 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 31 38 20 3d 3e 20 array(.14.=>.array(2,12),.18.=>.
f63c0 61 72 72 61 79 28 32 2c 31 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 array(2,12),.22.=>.array(2,12),.
f63e0 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 24.=>.array(2,12)),.array(.14.=>
f6400 20 61 72 72 61 79 28 32 2c 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 .array(2,3),.18.=>.array(2,3),.2
f6420 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 2.=>.array(2,3),.24.=>.array(2,3
f6440 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 31 38 20 )),.array(.14.=>.array(2,4),.18.
f6460 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c =>.array(2,4),.22.=>.array(2,4),
f6480 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e .24.=>.array(2,4)),.array(.14.=>
f64a0 20 61 72 72 61 79 28 32 2c 35 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 .array(2,5),.18.=>.array(2,5),.2
f64c0 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 2.=>.array(2,5),.24.=>.array(2,5
f64e0 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 31 38 20 )),.array(.14.=>.array(2,1),.18.
f6500 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c =>.array(2,1),.21.=>.array(2,1),
f6520 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 .22.=>.array(2,1),.24.=>.array(2
f6540 2c 31 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 31 ,1)),.array(.14.=>.array(2,2),.1
f6560 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 8.=>.array(2,2),.22.=>.array(2,2
f6580 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d ),.24.=>.array(2,2)),.array(.3.=
f65a0 3e 20 32 30 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 72 >.20,.4.=>.array(1,12),.18.=>.ar
f65c0 72 61 79 28 31 2c 31 37 29 2c 20 31 39 20 3d 3e 20 31 38 2c 20 32 30 20 3d 3e 20 31 39 20 29 2c ray(1,17),.19.=>.18,.20.=>.19.),
f65e0 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 .array(.3.=>.5,.4.=>.array(1,12)
f6600 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e ,.5.=>.6,.6.=>.array(1,13),.7.=>
f6620 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 .3,.8.=>.array(1,9),.9.=>.4,.10.
f6640 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 =>.array(1,10),.11.=>.array(1,11
f6660 29 2c 20 31 33 20 3d 3e 20 32 33 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 ),.13.=>.23,.15.=>.7,.16.=>.8,.1
f6680 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 7.=>.array(1,14),.23.=>.array(1,
f66a0 31 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 31 29 2c 20 32 35 20 3d 3e 20 32 32 15),.24.=>.array(1,21),.25.=>.22
f66c0 20 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 36 29 29 2c 20 61 72 72 .),.array(.1.=>.array(2,6)),.arr
f66e0 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 ay(.14.=>.array(2,13),.18.=>.arr
f6700 61 79 28 32 2c 31 33 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 32 34 20 ay(2,13),.22.=>.array(2,13),.24.
f6720 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 =>.array(2,13)),.array(.18.=>.ar
f6740 72 61 79 28 31 2c 32 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 35 29 29 2c 20 61 ray(1,24),.22.=>.array(1,25)),.a
f6760 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 36 29 2c 20 32 32 20 3d 3e 20 61 rray(.18.=>.array(2,16),.22.=>.a
f6780 72 72 61 79 28 32 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 32 31 20 3d 3e 20 61 72 72 61 79 28 rray(2,16)),.array(.21.=>.array(
f67a0 31 2c 32 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 1,26)),.array(.14.=>.array(2,18)
f67c0 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 ,.18.=>.array(2,18),.22.=>.array
f67e0 28 32 2c 31 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 29 2c 20 61 72 72 61 (2,18),.24.=>.array(2,18)),.arra
f6800 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 y(.22.=>.array(1,28),.24.=>.arra
f6820 79 28 31 2c 32 37 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 y(1,27)),.array(.22.=>.array(2,2
f6840 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 31 0),.24.=>.array(2,20)),.array(.1
f6860 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 4.=>.array(2,14),.18.=>.array(2,
f6880 31 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 32 34 20 3d 3e 20 61 72 14),.22.=>.array(2,14),.24.=>.ar
f68a0 72 61 79 28 32 2c 31 34 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 32 30 2c 20 34 20 3d 3e ray(2,14)),.array(.3.=>.20,.4.=>
f68c0 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 32 30 20 3d 3e 20 32 39 20 29 2c 20 61 72 72 61 79 28 .array(1,12),.20.=>.29.),.array(
f68e0 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 .3.=>.5,.4.=>.array(1,12),.5.=>.
f6900 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 6,.6.=>.array(1,13),.7.=>.3,.8.=
f6920 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 >.array(1,9),.9.=>.4,.10.=>.arra
f6940 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d y(1,10),.11.=>.array(1,11),.13.=
f6960 3e 20 33 30 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 >.30,.15.=>.7,.16.=>.8,.17.=>.ar
f6980 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 ray(1,14),.23.=>.array(1,15)),.a
f69a0 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 31 38 20 3d 3e 20 61 rray(.14.=>.array(2,19),.18.=>.a
f69c0 72 72 61 79 28 32 2c 31 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 32 rray(2,19),.22.=>.array(2,19),.2
f69e0 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 4.=>.array(2,19)),.array(.3.=>.5
f6a00 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e ,.4.=>.array(1,12),.5.=>.6,.6.=>
f6a20 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 .array(1,13),.7.=>.3,.8.=>.array
f6a40 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 (1,9),.9.=>.4,.10.=>.array(1,10)
f6a60 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 33 31 2c 20 31 ,.11.=>.array(1,11),.13.=>.31,.1
f6a80 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
f6aa0 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
f6ac0 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 8.=>.array(2,17),.22.=>.array(2,
f6ae0 31 37 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 2c 20 17)),.array(.18.=>.array(2,15),.
f6b00 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 22.=>.array(2,15)),.array(.22.=>
f6b20 20 61 72 72 61 79 28 32 2c 32 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 31 29 29 .array(2,21),.24.=>.array(2,21))
f6b40 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 20 3d 20 ,.);..private.$defaultActions.=.
f6b60 61 72 72 61 79 28 0a 31 36 20 3d 3e 20 61 72 72 61 79 28 32 2c 20 36 29 0a 29 3b 0a 0a 0a 0a 0a array(.16.=>.array(2,.6).);.....
f6b80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6e 74 28 24 69 6e 70 75 74 29 0a 7b 0a .public.function.lint($input).{.
f6ba0 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 69 6e 70 75 74 29 3b 0a 7d 20 63 61 try.{.$this->parse($input);.}.ca
f6bc0 74 63 68 20 28 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 tch.(ParsingException.$e).{.retu
f6be0 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rn.$e;.}.}.......public.function
f6c00 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 74 68 .parse($input,.$flags.=.0).{.$th
f6c20 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 3e 66 is->failOnBOM($input);..$this->f
f6c40 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 20 61 lags.=.$flags;..$this->stack.=.a
f6c60 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 28 6e rray(0);.$this->vstack.=.array(n
f6c80 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 0a 0a ull);.$this->lstack.=.array();..
f6ca0 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 79 79 $yytext.=.'';.$yylineno.=.0;.$yy
f6cc0 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 52 52 leng.=.0;.$recovering.=.0;.$TERR
f6ce0 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 72 20 OR.=.2;.$EOF.=.1;..$this->lexer.
f6d00 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 65 74 =.new.Lexer();.$this->lexer->set
f6d20 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 2d 3e Input($input);..$yyloc.=.$this->
f6d40 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 20 3d lexer->yylloc;.$this->lstack[].=
f6d60 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 45 72 .$yyloc;..$symbol.=.null;.$preEr
f6d80 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 6c 3b rorSymbol.=.null;.$state.=.null;
f6da0 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 20 3d .$action.=.null;.$a.=.null;.$r.=
f6dc0 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 24 70 .null;.$yyval.=.new.stdClass;.$p
f6de0 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 65 20 .=.null;.$len.=.null;.$newState.
f6e00 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 53 74 =.null;.$expected.=.null;.$errSt
f6e20 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 74 61 r.=.null;..while.(true).{...$sta
f6e40 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 3e 73 te.=.$this->stack[count($this->s
f6e60 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 64 65 tack)-1];....if.(isset($this->de
f6e80 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 6f 6e faultActions[$state])).{.$action
f6ea0 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 65 5d .=.$this->defaultActions[$state]
f6ec0 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 29 20 ;.}.else.{.if.($symbol.==.null).
f6ee0 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 24 61 {.$symbol.=.$this->lex();.}...$a
f6f00 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 61 74 ction.=.isset($this->table[$stat
f6f20 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 74 61 e][$symbol]).?.$this->table[$sta
f6f40 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 28 21 te][$symbol].:.false;.}....if.(!
f6f60 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 21 24 $action.||.!$action[0]).{.if.(!$
f6f80 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 72 61 recovering).{...$expected.=.arra
f6fa0 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 61 74 y();.foreach.($this->table[$stat
f6fc0 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 65 74 e].as.$p.=>.$ignore).{.if.(isset
f6fe0 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 3e 20 ($this->terminals_[$p]).&&.$p.>.
f7000 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 2d 3e 2).{.$expected[].=."'"...$this->
f7020 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 73 73 terminals_[$p]..."'";.}.}..$mess
f7040 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 49 4e age.=.null;.if.(in_array("'STRIN
f7060 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 62 73 G'",.$expected).&&.in_array(subs
f7080 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 20 61 tr($this->lexer->match,.0,.1),.a
f70a0 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 22 49 rray('"',."'"))).{.$message.=."I
f70c0 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 62 73 nvalid.string";.if.("'".===.subs
f70e0 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 20 7b tr($this->lexer->match,.0,.1)).{
f7100 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 20 75 .$message..=.",.it.appears.you.u
f7120 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 6f 75 sed.single.quotes.instead.of.dou
f7140 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 74 63 ble.quotes";.}.elseif.(preg_matc
f7160 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 27 2c h('{".+?(\\\\[^"bfnrt/\\\\u])}',
f7180 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 74 28 .$this->lexer->getUpcomingInput(
f71a0 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 74 20 ),.$match)).{.$message..=.",.it.
f71c0 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 62 61 appears.you.have.an.unescaped.ba
f71e0 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 65 69 ckslash.at:.".$match[1];.}.elsei
f7200 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 22 29 f.(preg_match('{"(?:[^"]+|\\\\")
f7220 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 6e 67 *$}m',.$this->lexer->getUpcoming
f7240 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 61 70 Input())).{.$message..=.",.it.ap
f7260 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 20 74 pears.you.forgot.to.terminated.t
f7280 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 74 65 he.string,.or.attempted.to.write
f72a0 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 6e 76 .a.multiline.string.which.is.inv
f72c0 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 72 72 alid";.}.}..$errStr.=.'Parse.err
f72e0 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 20 22 or.on.line.'...($yylineno+1)..."
f7300 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 3e 73 :\n";.$errStr..=.$this->lexer->s
f7320 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 73 61 howPosition()..."\n";.if.($messa
f7340 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 6c 73 ge).{.$errStr..=.$message;.}.els
f7360 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 64 29 e.{.$errStr..=.(count($expected)
f7380 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 22 45 .>.1).?."Expected.one.of:.".:."E
f73a0 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 28 27 xpected:.";.$errStr..=.implode('
f73c0 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 3d 20 ,.',.$expected);.}..if.(','.===.
f73e0 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 61 73 substr(trim($this->lexer->getPas
f7400 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 20 2d tInput()),.-1)).{.$errStr..=.".-
f7420 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 74 72 .It.appears.you.have.an.extra.tr
f7440 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 45 72 ailing.comma";.}..$this->parseEr
f7460 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 24 74 ror($errStr,.array(.'text'.=>.$t
f7480 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 21 65 his->lexer->match,.'token'.=>.!e
f74a0 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 5d 29 mpty($this->terminals_[$symbol])
f74c0 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 3a 20 .?.$this->terminals_[$symbol].:.
f74e0 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 72 2d $symbol,.'line'.=>.$this->lexer-
f7500 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 78 70 >yylineno,.'loc'.=>.$yyloc,.'exp
f7520 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 69 66 ected'.=>.$expected,.));.}....if
f7540 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 62 6f .($recovering.==.3).{.if.($symbo
f7560 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 45 78 l.==.$EOF).{.throw.new.ParsingEx
f7580 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 6c 74 ception($errStr.?:.'Parsing.halt
f75a0 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 65 78 ed.');.}....$yyleng.=.$this->lex
f75c0 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 65 78 er->yyleng;.$yytext.=.$this->lex
f75e0 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 3e 6c er->yytext;.$yylineno.=.$this->l
f7600 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 2d 3e exer->yylineno;.$yyloc.=.$this->
f7620 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 2d 3e lexer->yylloc;.$symbol.=.$this->
f7640 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 66 20 lex();.}....while.(true).{...if.
f7660 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 69 73 (array_key_exists($TERROR,.$this
f7680 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 66 20 ->table[$state])).{.break;.}.if.
f76a0 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 69 6e ($state.==.0).{.throw.new.Parsin
f76c0 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 20 68 gException($errStr.?:.'Parsing.h
f76e0 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 3b 0a alted.');.}.$this->popStack(1);.
f7700 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 68 69 $state.=.$this->stack[count($thi
f7720 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 6f 6c s->stack)-1];.}..$preErrorSymbol
f7740 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 52 3b .=.$symbol;...$symbol.=.$TERROR;
f7760 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 28 24 ...$state.=.$this->stack[count($
f7780 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 65 74 this->stack)-1];.$action.=.isset
f77a0 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 29 20 ($this->table[$state][$TERROR]).
f77c0 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 5d 20 ?.$this->table[$state][$TERROR].
f77e0 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 0a 0a :.false;.$recovering.=.3;...}...
f7800 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 6f 75 .if.(is_array($action[0]).&&.cou
f7820 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 61 72 nt($action).>.1).{.throw.new.Par
f7840 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 6c 74 singException('Parse.Error:.mult
f7860 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 3a 20 iple.actions.possible.at.state:.
f7880 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 6d 62 '...$state...',.token:.'...$symb
f78a0 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 63 61 ol);.}..switch.($action[0]).{.ca
f78c0 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 6f 6c se.1:...$this->stack[].=.$symbol
f78e0 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 65 72 ;.$this->vstack[].=.$this->lexer
f7900 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 68 69 ->yytext;.$this->lstack[].=.$thi
f7920 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 5b 5d s->lexer->yylloc;.$this->stack[]
f7940 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 6c 3b .=.$action[1];...$symbol.=.null;
f7960 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 6c 65 .if.(!$preErrorSymbol).{...$yyle
f7980 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 74 65 ng.=.$this->lexer->yyleng;.$yyte
f79a0 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 6c 69 xt.=.$this->lexer->yytext;.$yyli
f79c0 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 0a 24 neno.=.$this->lexer->yylineno;.$
f79e0 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 69 66 yyloc.=.$this->lexer->yylloc;.if
f7a00 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 6e 67 .($recovering.>.0).{.$recovering
f7a20 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 65 45 --;.}.}.else.{...$symbol.=.$preE
f7a40 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 6e 75 rrorSymbol;.$preErrorSymbol.=.nu
f7a60 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 20 24 ll;.}.break;..case.2:...$len.=.$
f7a80 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 5b 31 this->productions_[$action[1]][1
f7aa0 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 73 74 ];....$yyval->token.=.$this->vst
f7ac0 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 6e 5d ack[count($this->vstack).-.$len]
f7ae0 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 20 27 ;.....$yyval->store.=.array(...'
f7b00 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 6f 75 first_line'.=>.$this->lstack[cou
f7b20 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 29 5d nt($this->lstack).-.($len.?:.1)]
f7b40 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 20 24 ['first_line'],.'last_line'.=>.$
f7b60 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b this->lstack[count($this->lstack
f7b80 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 6c 75 ).-.1]['last_line'],.'first_colu
f7ba0 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 69 73 mn'.=>.$this->lstack[count($this
f7bc0 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f ->lstack).-.($len.?:.1)]['first_
f7be0 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 69 73 column'],.'last_column'.=>.$this
f7c00 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 2d 20 ->lstack[count($this->lstack).-.
f7c20 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 69 73 1]['last_column'],.);.$r.=.$this
f7c40 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 74 2c ->performAction($yyval,.$yytext,
f7c60 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 5d 2c .$yyleng,.$yylineno,.$action[1],
f7c80 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 3b 0a .$this->vstack,.$this->lstack);.
f7ca0 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b .if.(!$r.instanceof.Undefined).{
f7cc0 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 69 73 .return.$r;.}..if.($len).{.$this
f7ce0 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 61 63 ->popStack($len);.}..$this->stac
f7d00 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 69 6f k[].=.$this->productions_[$actio
f7d20 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 24 79 n[1]][0];...$this->vstack[].=.$y
f7d40 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 20 24 yval->token;.$this->lstack[].=.$
f7d60 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 73 2d yyval->store;.$newState.=.$this-
f7d80 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 73 2d >table[$this->stack[count($this-
f7da0 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 28 24 >stack)-2]][$this->stack[count($
f7dc0 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 5b 5d this->stack)-1]];.$this->stack[]
f7de0 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 0a 0a .=.$newState;.break;..case.3:...
f7e00 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 0a 7d return.true;.}.}..return.true;.}
f7e20 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 72 28 ..protected.function.parseError(
f7e40 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 6e 67 $str,.$hash).{.throw.new.Parsing
f7e60 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 20 0a Exception($str,.$hash);.}.......
f7e80 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 6e 28 .private.function.performAction(
f7ea0 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 65 6e stdClass.$yyval,.$yytext,.$yylen
f7ec0 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 6e 73 g,.$yylineno,.$yystate,.&$tokens
f7ee0 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 31 3b ).{...$len.=.count($tokens).-.1;
f7f00 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 79 79 .switch.($yystate).{.case.1:.$yy
f7f20 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 7b 28 text.=.preg_replace_callback('{(
f7f40 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 2d 46 ?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F
f7f60 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 6e 67 0-9]{4})}',.array($this,.'string
f7f80 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 76 61 Interpolation'),.$yytext);.$yyva
f7fa0 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 65 20 l->token.=.$yytext;.break;.case.
f7fc0 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 3d 20 2:.if.(strpos($yytext,.'e').!==.
f7fe0 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 21 3d false.||.strpos($yytext,.'E').!=
f8000 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 61 74 =.false).{.$yyval->token.=.float
f8020 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 3e 74 val($yytext);.}.else.{.$yyval->t
f8040 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 3d 20 oken.=.strpos($yytext,.'.').===.
f8060 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 74 76 false.?.intval($yytext).:.floatv
f8080 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 24 79 al($yytext);.}.break;.case.3:.$y
f80a0 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 65 20 yval->token.=.null;.break;.case.
f80c0 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 3b 0a 4:.$yyval->token.=.true;.break;.
f80e0 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 0a 62 case.5:.$yyval->token.=.false;.b
f8100 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 6f 6b reak;.case.6:.return.$yyval->tok
f8120 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 0a 69 en.=.$tokens[$len-1];.case.13:.i
f8140 66 20 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 50 41 52 53 45 5f 54 4f f.($this->flags.&.self::PARSE_TO
f8160 5f 41 53 53 4f 43 29 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 _ASSOC).{.$yyval->token.=.array(
f8180 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 );.}.else.{.$yyval->token.=.new.
f81a0 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 34 3a 0a 24 79 79 76 stdClass;.}.break;.case.14:.$yyv
f81c0 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 al->token.=.$tokens[$len-1];.bre
f81e0 61 6b 3b 0a 63 61 73 65 20 31 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 ak;.case.15:.$yyval->token.=.arr
f8200 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e ay($tokens[$len-2],.$tokens[$len
f8220 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 36 3a 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 ]);.break;.case.16:.$property.=.
f8240 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 $tokens[$len][0].===.''.?.'_empt
f8260 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 69 66 20 28 24 74 68 69 y_'.:.$tokens[$len][0];.if.($thi
f8280 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 50 41 52 53 45 5f 54 4f 5f 41 53 53 4f 43 29 s->flags.&.self::PARSE_TO_ASSOC)
f82a0 20 7b 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 24 79 79 76 .{.$yyval->token.=.array();.$yyv
f82c0 61 6c 2d 3e 74 6f 6b 65 6e 5b 24 70 72 6f 70 65 72 74 79 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 al->token[$property].=.$tokens[$
f82e0 6c 65 6e 5d 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 len][1];.}.else.{.$yyval->token.
f8300 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 2d 3e 24 =.new.stdClass;.$yyval->token->$
f8320 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 31 5d 3b 0a 7d 0a 62 property.=.$tokens[$len][1];.}.b
f8340 72 65 61 6b 3b 0a 63 61 73 65 20 31 37 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 reak;.case.17:.if.($this->flags.
f8360 26 20 73 65 6c 66 3a 3a 50 41 52 53 45 5f 54 4f 5f 41 53 53 4f 43 29 20 7b 0a 24 79 79 76 61 6c &.self::PARSE_TO_ASSOC).{.$yyval
f8380 2d 3e 74 6f 6b 65 6e 20 3d 26 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 24 6b 65 79 ->token.=&.$tokens[$len-2];.$key
f83a0 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 69 66 20 28 28 24 74 68 69 73 2d .=.$tokens[$len][0];.if.(($this-
f83c0 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 >flags.&.self::DETECT_KEY_CONFLI
f83e0 43 54 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 24 6b CTS).&&.isset($tokens[$len-2][$k
f8400 65 79 5d 29 29 20 7b 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 6f ey])).{.$errStr.=.'Parse.error.o
f8420 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 20 22 3a 5c 6e 22 n.line.'...($yylineno+1)...":\n"
f8440 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 3e 73 68 6f 77 50 ;.$errStr..=.$this->lexer->showP
f8460 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 44 75 osition()..."\n";.$errStr..=."Du
f8480 70 6c 69 63 61 74 65 20 6b 65 79 3a 20 22 2e 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b plicate.key:.".$tokens[$len][0];
f84a0 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 .throw.new.ParsingException($err
f84c0 53 74 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 Str);.}.elseif.(($this->flags.&.
f84e0 73 65 6c 66 3a 3a 41 4c 4c 4f 57 5f 44 55 50 4c 49 43 41 54 45 5f 4b 45 59 53 29 20 26 26 20 69 self::ALLOW_DUPLICATE_KEYS).&&.i
f8500 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 sset($tokens[$len-2][$key])).{.$
f8520 64 75 70 6c 69 63 61 74 65 43 6f 75 6e 74 20 3d 20 31 3b 0a 64 6f 20 7b 0a 24 64 75 70 6c 69 63 duplicateCount.=.1;.do.{.$duplic
f8540 61 74 65 4b 65 79 20 3d 20 24 6b 65 79 20 2e 20 27 2e 27 20 2e 20 24 64 75 70 6c 69 63 61 74 65 ateKey.=.$key...'.'...$duplicate
f8560 43 6f 75 6e 74 2b 2b 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b Count++;.}.while.(isset($tokens[
f8580 24 6c 65 6e 2d 32 5d 5b 24 64 75 70 6c 69 63 61 74 65 4b 65 79 5d 29 29 3b 0a 24 6b 65 79 20 3d $len-2][$duplicateKey]));.$key.=
f85a0 20 24 64 75 70 6c 69 63 61 74 65 4b 65 79 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 .$duplicateKey;.}.$tokens[$len-2
f85c0 5d 5b 24 6b 65 79 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 7d 20 65 6c ][$key].=.$tokens[$len][1];.}.el
f85e0 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 se.{.$yyval->token.=.$tokens[$le
f8600 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 3d n-2];.$key.=.$tokens[$len][0].==
f8620 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 5d =.''.?.'_empty_'.:.$tokens[$len]
f8640 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 44 [0];.if.(($this->flags.&.self::D
f8660 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 74 ETECT_KEY_CONFLICTS).&&.isset($t
f8680 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 74 okens[$len-2]->{$key})).{.$errSt
f86a0 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 79 r.=.'Parse.error.on.line.'...($y
f86c0 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 24 ylineno+1)...":\n";.$errStr..=.$
f86e0 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 5c this->lexer->showPosition()..."\
f8700 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 22 n";.$errStr..=."Duplicate.key:."
f8720 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 72 .$tokens[$len][0];.throw.new.Par
f8740 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 66 singException($errStr);.}.elseif
f8760 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 55 .(($this->flags.&.self::ALLOW_DU
f8780 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 24 PLICATE_KEYS).&&.isset($tokens[$
f87a0 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 75 len-2]->{$key})).{.$duplicateCou
f87c0 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 65 nt.=.1;.do.{.$duplicateKey.=.$ke
f87e0 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 77 y...'.'...$duplicateCount++;.}.w
f8800 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 75 hile.(isset($tokens[$len-2]->$du
f8820 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 4b plicateKey));.$key.=.$duplicateK
f8840 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 74 ey;.}.$tokens[$len-2]->$key.=.$t
f8860 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 38 okens[$len][1];.}.break;.case.18
f8880 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 62 72 65 61 6b :.$yyval->token.=.array();.break
f88a0 3b 0a 63 61 73 65 20 31 39 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 ;.case.19:.$yyval->token.=.$toke
f88c0 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 30 3a 0a 24 79 79 76 ns[$len-1];.break;.case.20:.$yyv
f88e0 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 al->token.=.array($tokens[$len])
f8900 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 ;.break;.case.21:.$tokens[$len-2
f8920 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b ][].=.$tokens[$len];.$yyval->tok
f8940 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a en.=.$tokens[$len-2];.break;.}..
f8960 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 return.new.Undefined();.}..priva
f8980 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 28 te.function.stringInterpolation(
f89a0 24 6d 61 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 63 $match).{.switch.($match[0]).{.c
f89c0 61 73 65 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 5c ase.'\\\\':.return.'\\';.case.'\
f89e0 22 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 65 20 27 5c 62 27 3a 0a 72 65 74 75 72 "':.return.'"';.case.'\b':.retur
f8a00 6e 20 63 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 n.chr(8);.case.'\f':.return.chr(
f8a20 31 32 29 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 12);.case.'\n':.return."\n";.cas
f8a40 65 20 27 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 22 3b 0a 63 61 73 65 20 27 5c 74 27 3a 0a e.'\r':.return."\r";.case.'\t':.
f8a60 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 5c 2f 27 3a 0a 72 65 74 75 72 6e 20 22 return."\t";.case.'\/':.return."
f8a80 2f 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 68 74 6d 6c 5f 65 6e 74 69 74 79 5f /";.default:.return.html_entity_
f8aa0 64 65 63 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 decode('&#x'.ltrim(substr($match
f8ac0 5b 30 5d 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c 20 30 2c 20 27 55 54 46 2d 38 27 29 3b 0a [0],.2),.'0').';',.0,.'UTF-8');.
f8ae0 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 53 74 61 63 6b 28 24 }.}..private.function.popStack($
f8b00 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 n).{.$this->stack.=.array_slice(
f8b20 24 74 68 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d 20 28 32 20 2a 20 24 6e 29 29 3b 0a 24 74 $this->stack,.0,.-.(2.*.$n));.$t
f8b40 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d his->vstack.=.array_slice($this-
f8b60 3e 76 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b >vstack,.0,.-.$n);.$this->lstack
f8b80 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 2c 20 30 2c .=.array_slice($this->lstack,.0,
f8ba0 20 2d 20 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 .-.$n);.}..private.function.lex(
f8bc0 29 0a 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6c 65 78 28 29 ).{.$token.=.$this->lexer->lex()
f8be0 20 3f 3a 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 6f 6b 65 .?:.1;.....if.(!is_numeric($toke
f8c00 6e 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 79 6d 62 n)).{.$token.=.isset($this->symb
f8c20 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 ols[$token]).?.$this->symbols[$t
f8c40 6f 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 oken].:.$token;.}..return.$token
f8c60 3b 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 ;.}..private.function.failOnBOM(
f8c80 24 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 $input).{...$bom.=."\xEF\xBB\xBF
f8ca0 22 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 ";..if.(substr($input,.0,.3).===
f8cc0 20 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 .$bom).{.$this->parseError("BOM.
f8ce0 64 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 detected,.make.sure.your.input.d
f8d00 6f 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 oes.not.include.a.Unicode.Byte-O
f8d20 72 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 rder-Mark",.array());.}.}.}.<?ph
f8d40 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c p...........namespace.Seld\JsonL
f8d60 69 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 int;.......class.Lexer.{.private
f8d80 20 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 .$EOF.=.1;.private.$rules.=.arra
f8da0 79 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 y(.0.=>.'/^\s+/',.1.=>.'/^-?([0-
f8dc0 39 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 9]|[1-9][0-9]+)(\.[0-9]+)?([eE][
f8de0 2b 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 3f 3a 5c 5c +-]?[0-9]+)?\b/',.2.=>.'{^"(?:\\
f8e00 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]
f8e20 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 2b 29 2a 22 {4}|[^\0-\x09\x0a-\x1f\\\\"]+)*"
f8e40 7d 27 2c 0a 33 20 3d 3e 20 27 2f 5e 5c 7b 2f 27 2c 0a 34 20 3d 3e 20 27 2f 5e 5c 7d 2f 27 2c 0a }',.3.=>.'/^\{/',.4.=>.'/^\}/',.
f8e60 35 20 3d 3e 20 27 2f 5e 5c 5b 2f 27 2c 0a 36 20 3d 3e 20 27 2f 5e 5c 5d 2f 27 2c 0a 37 20 3d 3e 5.=>.'/^\[/',.6.=>.'/^\]/',.7.=>
f8e80 20 27 2f 5e 2c 2f 27 2c 0a 38 20 3d 3e 20 27 2f 5e 3a 2f 27 2c 0a 39 20 3d 3e 20 27 2f 5e 74 72 .'/^,/',.8.=>.'/^:/',.9.=>.'/^tr
f8ea0 75 65 5c 62 2f 27 2c 0a 31 30 20 3d 3e 20 27 2f 5e 66 61 6c 73 65 5c 62 2f 27 2c 0a 31 31 20 3d ue\b/',.10.=>.'/^false\b/',.11.=
f8ec0 3e 20 27 2f 5e 6e 75 6c 6c 5c 62 2f 27 2c 0a 31 32 20 3d 3e 20 27 2f 5e 24 2f 27 2c 0a 31 33 20 >.'/^null\b/',.12.=>.'/^$/',.13.
f8ee0 3d 3e 20 27 2f 5e 2e 2f 27 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f =>.'/^./',.);..private.$conditio
f8f00 6e 73 20 3d 20 61 72 72 61 79 28 0a 22 49 4e 49 54 49 41 4c 22 20 3d 3e 20 61 72 72 61 79 28 0a ns.=.array(."INITIAL".=>.array(.
f8f20 22 72 75 6c 65 73 22 20 3d 3e 20 61 72 72 61 79 28 30 2c 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 "rules".=>.array(0,1,2,3,4,5,6,7
f8f40 2c 38 2c 39 2c 31 30 2c 31 31 2c 31 32 2c 31 33 29 2c 0a 22 69 6e 63 6c 75 73 69 76 65 22 20 3d ,8,9,10,11,12,13),."inclusive".=
f8f60 3e 20 74 72 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 >.true,.),.);..private.$conditio
f8f80 6e 53 74 61 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 nStack;.private.$input;.private.
f8fa0 24 6d 6f 72 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 $more;.private.$done;.private.$m
f8fc0 61 74 63 68 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 atched;..public.$match;.public.$
f8fe0 79 79 6c 69 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 yylineno;.public.$yyleng;.public
f9000 20 24 79 79 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 .$yytext;.public.$yylloc;..publi
f9020 63 20 66 75 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 c.function.lex().{.$r.=.$this->n
f9040 65 78 74 28 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 ext();.if.(!$r.instanceof.Undefi
f9060 6e 65 64 29 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 ned).{.return.$r;.}..return.$thi
f9080 73 2d 3e 6c 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 s->lex();.}..public.function.set
f90a0 49 6e 70 75 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 Input($input).{.$this->input.=.$
f90c0 69 6e 70 75 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 input;.$this->more.=.false;.$thi
f90e0 73 2d 3e 64 6f 6e 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f s->done.=.false;.$this->yylineno
f9100 20 3d 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 79 79 74 .=.$this->yyleng.=.0;.$this->yyt
f9120 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 3d 20 24 74 68 69 73 2d 3e 6d 61 ext.=.$this->matched.=.$this->ma
f9140 74 63 68 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 20 tch.=.'';.$this->conditionStack.
f9160 3d 20 61 72 72 61 79 28 27 49 4e 49 54 49 41 4c 27 29 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f =.array('INITIAL');.$this->yyllo
f9180 63 20 3d 20 61 72 72 61 79 28 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 66 69 c.=.array('first_line'.=>.1,.'fi
f91a0 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 2c 20 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e rst_column'.=>.0,.'last_line'.=>
f91c0 20 31 2c 20 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 29 3b 0a 0a 72 65 74 75 72 6e .1,.'last_column'.=>.0);..return
f91e0 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 50 .$this;.}..public.function.showP
f9200 6f 73 69 74 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 osition().{.$pre.=.str_replace("
f9220 5c 6e 22 2c 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 \n",.'',.$this->getPastInput());
f9240 0a 24 63 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 6d 61 78 28 30 2c 20 73 74 72 .$c.=.str_repeat('-',.max(0,.str
f9260 6c 65 6e 28 24 70 72 65 29 20 2d 20 31 29 29 3b 20 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 20 2e len($pre).-.1));...return.$pre..
f9280 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 .str_replace("\n",.'',.$this->ge
f92a0 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 29 20 2e 20 22 5c 6e 22 20 2e 20 24 63 20 2e 20 tUpcomingInput())..."\n"...$c...
f92c0 22 5e 22 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 61 73 74 49 "^";.}..public.function.getPastI
f92e0 6e 70 75 74 28 29 0a 7b 0a 24 70 61 73 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6d nput().{.$past.=.substr($this->m
f9300 61 74 63 68 65 64 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 atched,.0,.strlen($this->matched
f9320 29 20 2d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 29 29 3b 0a 0a 72 65 74 75 ).-.strlen($this->match));..retu
f9340 72 6e 20 28 73 74 72 6c 65 6e 28 24 70 61 73 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a rn.(strlen($past).>.20.?.'...'.:
f9360 20 27 27 29 20 2e 20 73 75 62 73 74 72 28 24 70 61 73 74 2c 20 2d 32 30 29 3b 0a 7d 0a 0a 70 75 .'')...substr($past,.-20);.}..pu
f9380 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 blic.function.getUpcomingInput()
f93a0 0a 7b 0a 24 6e 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 3b 0a 69 66 20 28 73 74 72 .{.$next.=.$this->match;.if.(str
f93c0 6c 65 6e 28 24 6e 65 78 74 29 20 3c 20 32 30 29 20 7b 0a 24 6e 65 78 74 20 2e 3d 20 73 75 62 73 len($next).<.20).{.$next..=.subs
f93e0 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 30 2c 20 32 30 20 2d 20 73 74 72 6c 65 6e 28 tr($this->input,.0,.20.-.strlen(
f9400 24 6e 65 78 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 6e 65 78 74 2c $next));.}..return.substr($next,
f9420 20 30 2c 20 32 30 29 20 2e 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3e 20 32 30 20 3f 20 .0,.20)...(strlen($next).>.20.?.
f9440 27 2e 2e 2e 27 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 '...'.:.'');.}..protected.functi
f9460 6f 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 on.parseError($str,.$hash).{.thr
f9480 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 29 3b 0a 7d 0a 0a 70 72 69 76 ow.new.\Exception($str);.}..priv
f94a0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d ate.function.next().{.if.($this-
f94c0 3e 64 6f 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 69 66 >done).{.return.$this->EOF;.}.if
f94e0 20 28 21 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d .(!$this->input).{.$this->done.=
f9500 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 74 63 68 20 .true;.}..$token.=.null;.$match.
f9520 3d 20 6e 75 6c 6c 3b 0a 24 63 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 69 6e 65 73 20 3d 20 6e 75 =.null;.$col.=.null;.$lines.=.nu
f9540 6c 6c 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 6f 72 65 29 20 7b 0a 24 74 68 69 73 2d 3e ll;..if.(!$this->more).{.$this->
f9560 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a yytext.=.'';.$this->match.=.'';.
f9580 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 52 75 6c }..$rules.=.$this->getCurrentRul
f95a0 65 73 28 29 3b 0a 24 72 75 6c 65 73 4c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 73 29 3b es();.$rulesLen.=.count($rules);
f95c0 0a 0a 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 20 3c 20 24 72 75 6c 65 73 4c 65 6e 3b 20 24 69 2b ..for.($i=0;.$i.<.$rulesLen;.$i+
f95e0 2b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 +).{.if.(preg_match($this->rules
f9600 5b 24 72 75 6c 65 73 5b 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 6d 61 74 [$rules[$i]],.$this->input,.$mat
f9620 63 68 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 5c 6e 2e 2a 2f 27 2c 20 ch)).{.preg_match_all('/\n.*/',.
f9640 24 6d 61 74 63 68 5b 30 5d 2c 20 24 6c 69 6e 65 73 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 24 6c 69 $match[0],.$lines);.$lines.=.$li
f9660 6e 65 73 5b 30 5d 3b 0a 69 66 20 28 24 6c 69 6e 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 6c nes[0];.if.($lines).{.$this->yyl
f9680 69 6e 65 6e 6f 20 2b 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 ineno.+=.count($lines);.}..$this
f96a0 2d 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 0a 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d ->yylloc.=.array(.'first_line'.=
f96c0 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c >.$this->yylloc['last_line'],.'l
f96e0 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 2c 0a ast_line'.=>.$this->yylineno+1,.
f9700 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 'first_column'.=>.$this->yylloc[
f9720 27 6c 61 73 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 'last_column'],.'last_column'.=>
f9740 20 24 6c 69 6e 65 73 20 3f 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 73 5b 63 6f 75 6e 74 28 24 6c .$lines.?.strlen($lines[count($l
f9760 69 6e 65 73 29 20 2d 20 31 5d 29 20 2d 20 31 20 3a 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b ines).-.1]).-.1.:.$this->yylloc[
f9780 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 20 2b 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 'last_column'].+.strlen($match[0
f97a0 5d 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 2e 3d 20 24 6d 61 74 63 68 5b 30 ]),.);.$this->yytext..=.$match[0
f97c0 5d 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 ];.$this->match..=.$match[0];.$t
f97e0 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 79 79 74 65 his->yyleng.=.strlen($this->yyte
f9800 78 74 29 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 xt);.$this->more.=.false;.$this-
f9820 3e 69 6e 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 73 74 >input.=.substr($this->input,.st
f9840 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 rlen($match[0]));.$this->matched
f9860 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 70 ..=.$match[0];.$token.=.$this->p
f9880 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 72 75 6c 65 73 5b 24 69 5d 2c 20 24 74 68 69 73 2d 3e erformAction($rules[$i],.$this->
f98a0 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 64 conditionStack[count($this->cond
f98c0 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 29 3b 0a 69 66 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 72 itionStack)-1]);.if.($token).{.r
f98e0 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 eturn.$token;.}..return.new.Unde
f9900 66 69 6e 65 64 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d fined();.}.}..if.($this->input.=
f9920 3d 3d 20 22 22 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 0a 24 ==."").{.return.$this->EOF;.}..$
f9940 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 0a 27 4c 65 78 69 63 61 6c 20 65 72 72 6f 72 this->parseError(.'Lexical.error
f9960 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 29 .on.line.'...($this->yylineno+1)
f9980 20 2e 20 22 2e 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 20 74 65 78 74 2e 5c 6e 22 20 2e 20 24 74 ..."..Unrecognized.text.\n"...$t
f99a0 68 69 73 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 2c 0a 61 72 72 61 79 28 0a 27 74 65 78 his->showPosition(),.array(.'tex
f99c0 74 27 20 3d 3e 20 22 22 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 6c 69 6e 65 t'.=>."",.'token'.=>.null,.'line
f99e0 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 29 0a 29 3b 0a 7d 0a 0a 70 72 '.=>.$this->yylineno,.).);.}..pr
f9a00 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 29 ivate.function.getCurrentRules()
f9a20 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 69 .{.return.$this->conditions[$thi
f9a40 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 63 s->conditionStack[count($this->c
f9a60 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 0a onditionStack)-1]]['rules'];.}..
f9a80 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 24 private.function.performAction($
f9aa0 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 54 avoiding_name_collisions,.$YY_ST
f9ac0 41 52 54 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f ART).{.switch.($avoiding_name_co
f9ae0 6c 6c 69 73 69 6f 6e 73 29 20 7b 0a 63 61 73 65 20 30 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 llisions).{.case.0:.break;.case.
f9b00 31 3a 0a 72 65 74 75 72 6e 20 36 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 3a 0a 24 74 68 69 1:.return.6;.break;.case.2:.$thi
f9b20 73 2d 3e 79 79 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 79 79 74 65 78 74 s->yytext.=.substr($this->yytext
f9b40 2c 20 31 2c 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2d 32 29 3b 0a 0a 72 65 74 75 72 6e 20 34 ,.1,.$this->yyleng-2);..return.4
f9b60 3b 0a 63 61 73 65 20 33 3a 0a 72 65 74 75 72 6e 20 31 37 3b 0a 63 61 73 65 20 34 3a 0a 72 65 74 ;.case.3:.return.17;.case.4:.ret
f9b80 75 72 6e 20 31 38 3b 0a 63 61 73 65 20 35 3a 0a 72 65 74 75 72 6e 20 32 33 3b 0a 63 61 73 65 20 urn.18;.case.5:.return.23;.case.
f9ba0 36 3a 0a 72 65 74 75 72 6e 20 32 34 3b 0a 63 61 73 65 20 37 3a 0a 72 65 74 75 72 6e 20 32 32 3b 6:.return.24;.case.7:.return.22;
f9bc0 0a 63 61 73 65 20 38 3a 0a 72 65 74 75 72 6e 20 32 31 3b 0a 63 61 73 65 20 39 3a 0a 72 65 74 75 .case.8:.return.21;.case.9:.retu
f9be0 72 6e 20 31 30 3b 0a 63 61 73 65 20 31 30 3a 0a 72 65 74 75 72 6e 20 31 31 3b 0a 63 61 73 65 20 rn.10;.case.10:.return.11;.case.
f9c00 31 31 3a 0a 72 65 74 75 72 6e 20 38 3b 0a 63 61 73 65 20 31 32 3a 0a 72 65 74 75 72 6e 20 31 34 11:.return.8;.case.12:.return.14
f9c20 3b 0a 63 61 73 65 20 31 33 3a 0a 72 65 74 75 72 6e 20 27 49 4e 56 41 4c 49 44 27 3b 0a 7d 0a 7d ;.case.13:.return.'INVALID';.}.}
f9c40 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c .}.<?php...........namespace.Sel
f9c60 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 d\JsonLint;..class.ParsingExcept
f9c80 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 ion.extends.\Exception.{.protect
f9ca0 65 64 20 24 64 65 74 61 69 6c 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ed.$details;..public.function.__
f9cc0 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 64 65 74 61 69 6c 73 20 3d 20 61 construct($message,.$details.=.a
f9ce0 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 20 3d 20 24 64 65 74 61 rray()).{.$this->details.=.$deta
f9d00 69 6c 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 ils;.parent::__construct($messag
f9d20 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 44 65 74 61 69 6c e);.}..public.function.getDetail
f9d40 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 3b 0a 7d 0a 7d s().{.return.$this->details;.}.}
f9d60 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 38 2c 20 47 72 61 64 75 61 20 4e 65 74 77 .Copyright.(c).2008,.Gradua.Netw
f9d80 6f 72 6b 73 0a 41 75 74 68 6f 72 3a 20 42 72 75 6e 6f 20 50 72 69 65 74 6f 20 52 65 69 73 0a 41 orks.Author:.Bruno.Prieto.Reis.A
f9da0 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 0a 0a 0a 52 65 64 69 73 74 72 69 62 75 ll.rights.reserved....Redistribu
f9dc0 74 69 6f 6e 20 61 6e 64 20 75 73 65 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 62 69 6e 61 72 tion.and.use.in.source.and.binar
f9de0 79 20 66 6f 72 6d 73 2c 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 0a 6d 6f 64 69 66 69 63 y.forms,.with.or.without.modific
f9e00 61 74 69 6f 6e 2c 20 61 72 65 20 70 65 72 6d 69 74 74 65 64 20 70 72 6f 76 69 64 65 64 20 74 68 ation,.are.permitted.provided.th
f9e20 61 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 at.the.following.conditions.are.
f9e40 6d 65 74 3a 0a 0a 20 2a 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 6f 66 20 73 6f 75 72 met:...*.Redistributions.of.sour
f9e60 63 65 20 63 6f 64 65 20 6d 75 73 74 20 72 65 74 61 69 6e 20 74 68 65 20 61 62 6f 76 65 20 63 6f ce.code.must.retain.the.above.co
f9e80 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 74 68 69 73 0a 20 20 20 6c 69 73 74 20 6f 66 20 pyright.notice,.this....list.of.
f9ea0 63 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 conditions.and.the.following.dis
f9ec0 63 6c 61 69 6d 65 72 2e 0a 0a 20 2a 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 claimer....*.Redistributions.in.
f9ee0 62 69 6e 61 72 79 20 66 6f 72 6d 20 6d 75 73 74 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 61 binary.form.must.reproduce.the.a
f9f00 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 0a 20 20 20 74 68 69 73 20 6c bove.copyright.notice,....this.l
f9f20 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 ist.of.conditions.and.the.follow
f9f40 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 ing.disclaimer.in.the.documentat
f9f60 69 6f 6e 0a 20 20 20 61 6e 64 2f 6f 72 20 6f 74 68 65 72 20 6d 61 74 65 72 69 61 6c 73 20 70 72 ion....and/or.other.materials.pr
f9f80 6f 76 69 64 65 64 20 77 69 74 68 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 0a 0a 20 ovided.with.the.distribution....
f9fa0 2a 20 4e 65 69 74 68 65 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 47 72 61 64 75 61 *.Neither.the.name.of.the.Gradua
f9fc0 20 4e 65 74 77 6f 72 6b 73 20 6e 6f 72 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 69 74 73 20 63 .Networks.nor.the.names.of.its.c
f9fe0 6f 6e 74 72 69 62 75 74 6f 72 73 0a 20 20 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 65 6e ontributors....may.be.used.to.en
fa000 64 6f 72 73 65 20 6f 72 20 70 72 6f 6d 6f 74 65 20 70 72 6f 64 75 63 74 73 20 64 65 72 69 76 65 dorse.or.promote.products.derive
fa020 64 20 66 72 6f 6d 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 0a 20 20 20 77 69 74 68 6f 75 74 20 d.from.this.software....without.
fa040 73 70 65 63 69 66 69 63 20 70 72 69 6f 72 20 77 72 69 74 74 65 6e 20 70 65 72 6d 69 73 73 69 6f specific.prior.written.permissio
fa060 6e 2e 0a 0a 54 48 49 53 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 42 59 n...THIS.SOFTWARE.IS.PROVIDED.BY
fa080 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e 44 20 43 4f 4e 54 52 .THE.COPYRIGHT.HOLDERS.AND.CONTR
fa0a0 49 42 55 54 4f 52 53 20 22 41 53 20 49 53 22 0a 41 4e 44 20 41 4e 59 20 45 58 50 52 45 53 53 20 IBUTORS."AS.IS".AND.ANY.EXPRESS.
fa0c0 4f 52 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 OR.IMPLIED.WARRANTIES,.INCLUDING
fa0e0 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 0a 49 4d 50 4c 49 45 ,.BUT.NOT.LIMITED.TO,.THE.IMPLIE
fa100 44 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 20 D.WARRANTIES.OF.MERCHANTABILITY.
fa120 41 4e 44 20 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 AND.FITNESS.FOR.A.PARTICULAR.PUR
fa140 50 4f 53 45 20 41 52 45 0a 44 49 53 43 4c 41 49 4d 45 44 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 POSE.ARE.DISCLAIMED..IN.NO.EVENT
fa160 20 53 48 41 4c 4c 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 20 4f 52 20 43 .SHALL.THE.COPYRIGHT.HOLDER.OR.C
fa180 4f 4e 54 52 49 42 55 54 4f 52 53 20 42 45 20 4c 49 41 42 4c 45 0a 46 4f 52 20 41 4e 59 20 44 49 ONTRIBUTORS.BE.LIABLE.FOR.ANY.DI
fa1a0 52 45 43 54 2c 20 49 4e 44 49 52 45 43 54 2c 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 53 50 45 43 RECT,.INDIRECT,.INCIDENTAL,.SPEC
fa1c0 49 41 4c 2c 20 45 58 45 4d 50 4c 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c IAL,.EXEMPLARY,.OR.CONSEQUENTIAL
fa1e0 0a 44 41 4d 41 47 45 53 20 28 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d .DAMAGES.(INCLUDING,.BUT.NOT.LIM
fa200 49 54 45 44 20 54 4f 2c 20 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 ITED.TO,.PROCUREMENT.OF.SUBSTITU
fa220 54 45 20 47 4f 4f 44 53 20 4f 52 0a 53 45 52 56 49 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 TE.GOODS.OR.SERVICES;.LOSS.OF.US
fa240 45 2c 20 44 41 54 41 2c 20 4f 52 20 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e 45 53 53 E,.DATA,.OR.PROFITS;.OR.BUSINESS
fa260 20 49 4e 54 45 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 52 0a 43 41 55 53 45 44 20 41 4e .INTERRUPTION).HOWEVER.CAUSED.AN
fa280 44 20 4f 4e 20 41 4e 59 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 D.ON.ANY.THEORY.OF.LIABILITY,.WH
fa2a0 45 54 48 45 52 20 49 4e 20 43 4f 4e 54 52 41 43 54 2c 20 53 54 52 49 43 54 20 4c 49 41 42 49 4c ETHER.IN.CONTRACT,.STRICT.LIABIL
fa2c0 49 54 59 2c 0a 4f 52 20 54 4f 52 54 20 28 49 4e 43 4c 55 44 49 4e 47 20 4e 45 47 4c 49 47 45 4e ITY,.OR.TORT.(INCLUDING.NEGLIGEN
fa2e0 43 45 20 4f 52 20 4f 54 48 45 52 57 49 53 45 29 20 41 52 49 53 49 4e 47 20 49 4e 20 41 4e 59 20 CE.OR.OTHERWISE).ARISING.IN.ANY.
fa300 57 41 59 20 4f 55 54 20 4f 46 20 54 48 45 20 55 53 45 0a 4f 46 20 54 48 49 53 20 53 4f 46 54 57 WAY.OUT.OF.THE.USE.OF.THIS.SOFTW
fa320 41 52 45 2c 20 45 56 45 4e 20 49 46 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50 4f 53 53 ARE,.EVEN.IF.ADVISED.OF.THE.POSS
fa340 49 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 2e 0a 3c 3f 70 68 70 0a 0a 0a IBILITY.OF.SUCH.DAMAGE..<?php...
fa360 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 3b 0a 0a 75 73 65 ......namespace.JsonSchema;..use
fa380 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 .JsonSchema\Uri\Retrievers\UriRe
fa3a0 74 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 trieverInterface;.use.JsonSchema
fa3c0 5c 55 72 69 5c 55 72 69 52 65 74 72 69 65 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 \Uri\UriRetriever;........class.
fa3e0 52 65 66 52 65 73 6f 6c 76 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 RefResolver.{........protected.s
fa400 74 61 74 69 63 20 24 64 65 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 tatic.$depth.=.0;......public.st
fa420 61 74 69 63 20 24 6d 61 78 44 65 70 74 68 20 3d 20 37 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 atic.$maxDepth.=.7;.....protecte
fa440 64 20 24 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c d.$uriRetriever.=.null;.....publ
fa460 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 65 74 72 69 65 76 ic.function.__construct($retriev
fa480 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 er.=.null).{.$this->uriRetriever
fa4a0 20 3d 20 24 72 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .=.$retriever;.}.........public.
fa4c0 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 52 65 66 28 24 72 65 66 2c 20 24 73 6f 75 72 63 65 55 function.fetchRef($ref,.$sourceU
fa4e0 72 69 29 0a 7b 0a 24 72 65 74 72 69 65 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 69 ri).{.$retriever.=.$this->getUri
fa500 52 65 74 72 69 65 76 65 72 28 29 3b 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 24 72 65 74 72 Retriever();.$jsonSchema.=.$retr
fa520 69 65 76 65 72 2d 3e 72 65 74 72 69 65 76 65 28 24 72 65 66 2c 20 24 73 6f 75 72 63 65 55 72 69 iever->retrieve($ref,.$sourceUri
fa540 29 3b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 28 24 6a 73 6f 6e 53 63 68 65 6d 61 29 3b 0a );.$this->resolve($jsonSchema);.
fa560 0a 72 65 74 75 72 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .return.$jsonSchema;.}........pu
fa580 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 0a blic.function.getUriRetriever().
fa5a0 7b 0a 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 {.if.(is_null($this->uriRetrieve
fa5c0 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 r)).{.$this->setUriRetriever(new
fa5e0 20 55 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .UriRetriever);.}..return.$this-
fa600 3e 75 72 69 52 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a >uriRetriever;.}................
fa620 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 28 24 73 63 68 65 6d 61 2c public.function.resolve($schema,
fa640 20 24 73 6f 75 72 63 65 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a .$sourceUri.=.null).{.if.(self::
fa660 24 64 65 70 74 68 20 3e 20 73 65 6c 66 3a 3a 24 6d 61 78 44 65 70 74 68 29 20 7b 0a 72 65 74 75 $depth.>.self::$maxDepth).{.retu
fa680 72 6e 3b 0a 7d 0a 2b 2b 73 65 6c 66 3a 3a 24 64 65 70 74 68 3b 0a 0a 69 66 20 28 21 20 69 73 5f rn;.}.++self::$depth;..if.(!.is_
fa6a0 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 2d 2d 73 65 6c 66 3a 3a 24 64 65 70 74 object($schema)).{.--self::$dept
fa6c0 68 3b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 6f 75 72 h;.return;.}..if.(null.===.$sour
fa6e0 63 65 55 72 69 20 26 26 20 21 20 65 6d 70 74 79 28 24 73 63 68 65 6d 61 2d 3e 69 64 29 29 20 7b ceUri.&&.!.empty($schema->id)).{
fa700 0a 24 73 6f 75 72 63 65 55 72 69 20 3d 20 24 73 63 68 65 6d 61 2d 3e 69 64 3b 0a 7d 0a 0a 0a 20 .$sourceUri.=.$schema->id;.}....
fa720 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 52 65 66 28 24 73 63 68 65 6d 61 2c 20 24 73 6f 75 72 $this->resolveRef($schema,.$sour
fa740 63 65 55 72 69 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 61 64 64 ceUri);......foreach.(array('add
fa760 69 74 69 6f 6e 61 6c 49 74 65 6d 73 27 2c 20 27 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 itionalItems',.'additionalProper
fa780 74 69 65 73 27 2c 20 27 65 78 74 65 6e 64 73 27 2c 20 27 69 74 65 6d 73 27 29 20 61 73 20 24 70 ties',.'extends',.'items').as.$p
fa7a0 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 50 72 6f ropertyName).{.$this->resolvePro
fa7c0 70 65 72 74 79 28 24 73 63 68 65 6d 61 2c 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 perty($schema,.$propertyName,.$s
fa7e0 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 ourceUri);.}........foreach.(arr
fa800 61 79 28 27 64 69 73 61 6c 6c 6f 77 27 2c 20 27 65 78 74 65 6e 64 73 27 2c 20 27 69 74 65 6d 73 ay('disallow',.'extends',.'items
fa820 27 2c 20 27 74 79 70 65 27 2c 20 27 61 6c 6c 4f 66 27 2c 20 27 61 6e 79 4f 66 27 2c 20 27 6f 6e ',.'type',.'allOf',.'anyOf',.'on
fa840 65 4f 66 27 29 20 61 73 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d eOf').as.$propertyName).{.$this-
fa860 3e 72 65 73 6f 6c 76 65 41 72 72 61 79 4f 66 53 63 68 65 6d 61 73 28 24 73 63 68 65 6d 61 2c 20 >resolveArrayOfSchemas($schema,.
fa880 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 0a $propertyName,.$sourceUri);.}...
fa8a0 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2c 20 .foreach.(array('dependencies',.
fa8c0 27 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 27 2c 20 27 70 72 6f 70 65 72 74 69 65 73 'patternProperties',.'properties
fa8e0 27 29 20 61 73 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 ').as.$propertyName).{.$this->re
fa900 73 6f 6c 76 65 4f 62 6a 65 63 74 4f 66 53 63 68 65 6d 61 73 28 24 73 63 68 65 6d 61 2c 20 24 70 solveObjectOfSchemas($schema,.$p
fa920 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 2d 2d 73 ropertyName,.$sourceUri);.}..--s
fa940 65 6c 66 3a 3a 24 64 65 70 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 elf::$depth;.}..........public.f
fa960 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 41 72 72 61 79 4f 66 53 63 68 65 6d 61 73 28 24 73 unction.resolveArrayOfSchemas($s
fa980 63 68 65 6d 61 2c 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 chema,.$propertyName,.$sourceUri
fa9a0 29 0a 7b 0a 69 66 20 28 21 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 ).{.if.(!.isset($schema->$proper
fa9c0 74 79 4e 61 6d 65 29 20 7c 7c 20 21 20 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 24 tyName).||.!.is_array($schema->$
fa9e0 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 propertyName)).{.return;.}..fore
faa00 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 20 61 73 20 24 ach.($schema->$propertyName.as.$
faa20 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 possiblySchema).{.$this->resolve
faa40 28 24 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d ($possiblySchema,.$sourceUri);.}
faa60 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 73 6f .}..........public.function.reso
faa80 6c 76 65 4f 62 6a 65 63 74 4f 66 53 63 68 65 6d 61 73 28 24 73 63 68 65 6d 61 2c 20 24 70 72 6f lveObjectOfSchemas($schema,.$pro
faaa0 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 0a 7b 0a 69 66 20 28 21 20 69 pertyName,.$sourceUri).{.if.(!.i
faac0 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7c 7c 20 sset($schema->$propertyName).||.
faae0 21 20 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 !.is_object($schema->$propertyNa
fab00 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 67 65 74 5f 6f me)).{.return;.}..foreach.(get_o
fab20 62 6a 65 63 74 5f 76 61 72 73 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d bject_vars($schema->$propertyNam
fab40 65 29 20 61 73 20 24 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 29 20 7b 0a 24 74 68 69 73 2d 3e e).as.$possiblySchema).{.$this->
fab60 72 65 73 6f 6c 76 65 28 24 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 resolve($possiblySchema,.$source
fab80 55 72 69 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 63 74 69 Uri);.}.}..........public.functi
faba0 6f 6e 20 72 65 73 6f 6c 76 65 50 72 6f 70 65 72 74 79 28 24 73 63 68 65 6d 61 2c 20 24 70 72 6f on.resolveProperty($schema,.$pro
fabc0 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 0a 7b 0a 69 66 20 28 21 20 69 pertyName,.$sourceUri).{.if.(!.i
fabe0 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 29 20 7b 0a sset($schema->$propertyName)).{.
fac00 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 28 24 73 63 68 65 6d return;.}..$this->resolve($schem
fac20 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d a->$propertyName,.$sourceUri);.}
fac40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 ..........public.function.resolv
fac60 65 52 65 66 28 24 73 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 55 72 69 29 0a 7b 0a 24 72 65 66 eRef($schema,.$sourceUri).{.$ref
fac80 20 3d 20 27 24 72 65 66 27 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 63 68 65 6d 61 2d 3e 24 .=.'$ref';..if.(empty($schema->$
faca0 72 65 66 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 66 53 63 68 65 6d 61 20 3d 20 ref)).{.return;.}..$refSchema.=.
facc0 24 74 68 69 73 2d 3e 66 65 74 63 68 52 65 66 28 24 73 63 68 65 6d 61 2d 3e 24 72 65 66 2c 20 24 $this->fetchRef($schema->$ref,.$
face0 73 6f 75 72 63 65 55 72 69 29 3b 0a 75 6e 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 72 65 66 29 sourceUri);.unset($schema->$ref)
fad00 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 67 65 74 5f 6f 62 6a 65 63 74 5f 76 61 72 73 28 24 72 ;....foreach.(get_object_vars($r
fad20 65 66 53 63 68 65 6d 61 29 20 61 73 20 24 70 72 6f 70 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a efSchema).as.$prop.=>.$value).{.
fad40 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a $schema->$prop.=.$value;.}.}....
fad60 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 72 69 52 65 74 72 69 65 ....public.function.setUriRetrie
fad80 76 65 72 28 55 72 69 52 65 74 72 69 65 76 65 72 20 24 72 65 74 72 69 65 76 65 72 29 0a 7b 0a 24 ver(UriRetriever.$retriever).{.$
fada0 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 72 65 74 72 69 65 76 65 72 3b this->uriRetriever.=.$retriever;
fadc0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ..return.$this;.}.}.<?php.......
fade0 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 6e ..namespace.JsonSchema\Constrain
fae00 74 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e ts;..use.JsonSchema\Exception\In
fae20 76 61 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 4a 73 6f 6e validArgumentException;.use.Json
fae40 53 63 68 65 6d 61 5c 55 72 69 5c 55 72 69 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 Schema\Uri\UriResolver;........c
fae60 6c 61 73 73 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 lass.UndefinedConstraint.extends
fae80 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .Constraint.{....public.function
faea0 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 .check($value,.$schema.=.null,.$
faec0 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 path.=.null,.$i.=.null).{.if.(is
faee0 5f 6e 75 6c 6c 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 _null($schema)).{.return;.}..if.
faf00 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 (!is_object($schema)).{.throw.ne
faf20 77 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 28 0a 27 47 69 76 w.InvalidArgumentException(.'Giv
faf40 65 6e 20 73 63 68 65 6d 61 20 6d 75 73 74 20 62 65 20 61 6e 20 6f 62 6a 65 63 74 20 69 6e 20 27 en.schema.must.be.an.object.in.'
faf60 20 2e 20 24 70 61 74 68 0a 2e 20 27 20 62 75 74 20 69 73 20 61 20 27 20 2e 20 67 65 74 74 79 70 ...$path...'.but.is.a.'...gettyp
faf80 65 28 24 73 63 68 65 6d 61 29 0a 29 3b 0a 7d 0a 0a 24 69 20 3d 20 69 73 5f 6e 75 6c 6c 28 24 69 e($schema).);.}..$i.=.is_null($i
fafa0 29 20 3f 20 22 22 20 3a 20 24 69 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 63 72 ).?."".:.$i;.$path.=.$this->incr
fafc0 65 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e ementPath($path,.$i);....$this->
fafe0 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c validateCommonProperties($value,
fb000 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 .$schema,.$path);....$this->vali
fb020 64 61 74 65 4f 66 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 dateOfProperties($value,.$schema
fb040 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 ,.$path);....$this->validateType
fb060 73 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 7d s($value,.$schema,.$path,.$i);.}
fb080 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 76 61 6c 69 64 61 ..........public.function.valida
fb0a0 74 65 54 79 70 65 73 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 teTypes($value,.$schema.=.null,.
fb0c0 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 69 66 20 $path.=.null,.$i.=.null).{...if.
fb0e0 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 (is_array($value)).{.$this->chec
fb100 6b 41 72 72 61 79 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 kArray($value,.$schema,.$path,.$
fb120 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 i);.}....if.(is_object($value).&
fb140 26 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 20 7c 7c &.(isset($schema->properties).||
fb160 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 .isset($schema->patternPropertie
fb180 73 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4f 62 6a 65 63 74 28 0a 24 76 61 6c 75 s))).{.$this->checkObject(.$valu
fb1a0 65 2c 0a 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 20 3f 20 e,.isset($schema->properties).?.
fb1c0 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 2c 0a 24 70 61 74 $schema->properties.:.null,.$pat
fb1e0 68 2c 0a 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 h,.isset($schema->additionalProp
fb200 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f erties).?.$schema->additionalPro
fb220 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 2c 0a 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 perties.:.null,.isset($schema->p
fb240 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 atternProperties).?.$schema->pat
fb260 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 ternProperties.:.null.);.}....if
fb280 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 68 .(is_string($value)).{.$this->ch
fb2a0 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 68 eckString($value,.$schema,.$path
fb2c0 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 75 ,.$i);.}....if.(is_numeric($valu
fb2e0 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 2c e)).{.$this->checkNumber($value,
fb300 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 69 .$schema,.$path,.$i);.}....if.(i
fb320 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 68 sset($schema->enum)).{.$this->ch
fb340 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 20 eckEnum($value,.$schema,.$path,.
fb360 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 63 $i);.}.}..........protected.func
fb380 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 76 tion.validateCommonProperties($v
fb3a0 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 alue,.$schema.=.null,.$path.=.nu
fb3c0 6c 6c 2c 20 24 69 20 3d 20 22 22 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 ll,.$i.=."").{...if.(isset($sche
fb3e0 6d 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 73 ma->extends)).{.if.(is_string($s
fb400 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 chema->extends)).{.$schema->exte
fb420 6e 64 73 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 69 28 24 73 63 68 65 6d 61 nds.=.$this->validateUri($schema
fb440 2c 20 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 3b 0a 7d 0a 69 66 20 28 69 73 5f 61 72 ,.$schema->extends);.}.if.(is_ar
fb460 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 ray($schema->extends)).{.foreach
fb480 20 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 20 61 73 20 24 65 78 74 65 6e 64 73 29 20 .($schema->extends.as.$extends).
fb4a0 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 61 6c 75 65 2c 20 {.$this->checkUndefined($value,.
fb4c0 24 65 78 74 65 6e 64 73 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b $extends,.$path,.$i);.}.}.else.{
fb4e0 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 61 6c 75 65 2c 20 24 .$this->checkUndefined($value,.$
fb500 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d schema->extends,.$path,.$i);.}.}
fb520 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 29 20 7b 0a 0a 69 66 ....if.(is_object($value)).{..if
fb540 20 28 21 28 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 43 .(!($value.instanceof.UndefinedC
fb560 6f 6e 73 74 72 61 69 6e 74 29 20 26 26 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 onstraint).&&.isset($schema->req
fb580 75 69 72 65 64 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 uired).&&.is_array($schema->requ
fb5a0 69 72 65 64 29 20 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 72 65 ired).).{...foreach.($schema->re
fb5c0 71 75 69 72 65 64 20 61 73 20 24 72 65 71 75 69 72 65 64 29 20 7b 0a 69 66 20 28 21 70 72 6f 70 quired.as.$required).{.if.(!prop
fb5e0 65 72 74 79 5f 65 78 69 73 74 73 28 24 76 61 6c 75 65 2c 20 24 72 65 71 75 69 72 65 64 29 29 20 erty_exists($value,.$required)).
fb600 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 72 {.$this->addError($path,."the.pr
fb620 6f 70 65 72 74 79 20 22 20 2e 20 24 72 65 71 75 69 72 65 64 20 2e 20 22 20 69 73 20 72 65 71 75 operty."...$required...".is.requ
fb640 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 69 73 73 65 74 28 24 73 63 ired");.}.}.}.else.if.(isset($sc
fb660 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 73 63 hema->required).&&.!is_array($sc
fb680 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 29 20 7b 0a 0a 20 69 66 20 28 20 24 73 63 68 65 6d hema->required)).{...if.(.$schem
fb6a0 61 2d 3e 72 65 71 75 69 72 65 64 20 26 26 20 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 a->required.&&.$value.instanceof
fb6c0 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 .UndefinedConstraint).{.$this->a
fb6e0 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6d 69 73 73 69 6e 67 20 61 6e 64 20 69 ddError($path,."is.missing.and.i
fb700 74 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 28 t.is.required");.}.}.}....if.(!(
fb720 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 $value.instanceof.UndefinedConst
fb740 72 61 69 6e 74 29 29 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 raint)).{.$this->checkType($valu
fb760 65 2c 20 24 73 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 e,.$schema,.$path);.}....if.(iss
fb780 65 74 28 24 73 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 et($schema->disallow)).{.$initEr
fb7a0 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 79 70 rors.=.$this->getErrors();..$typ
fb7c0 65 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 74 79 70 65 eSchema.=.new.\stdClass();.$type
fb7e0 53 63 68 65 6d 61 2d 3e 74 79 70 65 20 3d 20 24 73 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 Schema->type.=.$schema->disallow
fb800 3b 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 74 79 70 65 ;.$this->checkType($value,.$type
fb820 53 63 68 65 6d 61 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 Schema,.$path);....if.(count($th
fb840 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
fb860 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,
fb880 20 22 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 29 ."disallowed.value.was.matched")
fb8a0 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 74 ;.}.else.{.$this->errors.=.$init
fb8c0 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e Errors;.}.}..if.(isset($schema->
fb8e0 6e 6f 74 29 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 not)).{.$initErrors.=.$this->get
fb900 45 72 72 6f 72 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 Errors();.$this->checkUndefined(
fb920 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 6e 6f 74 2c 20 24 70 61 74 68 2c 20 24 69 29 $value,.$schema->not,.$path,.$i)
fb940 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 ;....if.(count($this->getErrors(
fb960 29 29 20 3d 3d 20 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 29 20 7b 0a 24 74 68 69 )).==.count($initErrors)).{.$thi
fb980 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 61 74 63 68 65 64 20 61 20 73 63 s->addError($path,."matched.a.sc
fb9a0 68 65 6d 61 20 77 68 69 63 68 20 69 74 20 73 68 6f 75 6c 64 20 6e 6f 74 22 29 3b 0a 7d 20 65 6c hema.which.it.should.not");.}.el
fb9c0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 se.{.$this->errors.=.$initErrors
fb9e0 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 29 20 ;.}.}....if.(is_object($value)).
fba00 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 50 72 6f 70 65 72 74 69 {.if.(isset($schema->minProperti
fba20 65 73 29 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 67 65 74 5f 6f 62 6a 65 63 74 5f 76 61 72 73 es)).{.if.(count(get_object_vars
fba40 28 24 76 61 6c 75 65 29 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 50 72 6f 70 65 72 74 69 ($value)).<.$schema->minProperti
fba60 65 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 6d 75 es).{.$this->addError($path,."mu
fba80 73 74 20 63 6f 6e 74 61 69 6e 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 st.contain.a.minimum.of."...$sch
fbaa0 65 6d 61 2d 3e 6d 69 6e 50 72 6f 70 65 72 74 69 65 73 20 2e 20 22 20 70 72 6f 70 65 72 74 69 65 ema->minProperties...".propertie
fbac0 73 22 29 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 50 s");.}.}.if.(isset($schema->maxP
fbae0 72 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 67 65 74 5f 6f 62 6a 65 roperties)).{.if.(count(get_obje
fbb00 63 74 5f 76 61 72 73 28 24 76 61 6c 75 65 29 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 50 ct_vars($value)).>.$schema->maxP
fbb20 72 6f 70 65 72 74 69 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 roperties).{.$this->addError($pa
fbb40 74 68 2c 20 22 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 22 th,."must.contain.no.more.than."
fbb60 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 50 72 6f 70 65 72 74 69 65 73 20 2e 20 22 20 70 72 ...$schema->maxProperties...".pr
fbb80 6f 70 65 72 74 69 65 73 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 operties");.}.}.}....if.(is_obje
fbba0 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 65 70 ct($value).&&.isset($schema->dep
fbbc0 65 6e 64 65 6e 63 69 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 65 70 endencies)).{.$this->validateDep
fbbe0 65 6e 64 65 6e 63 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 64 65 70 65 6e endencies($value,.$schema->depen
fbc00 64 65 6e 63 69 65 73 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 dencies,.$path);.}.}..........pr
fbc20 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 4f 66 50 72 6f 70 65 otected.function.validateOfPrope
fbc40 72 74 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 2c 20 24 69 rties($value,.$schema,.$path,.$i
fbc60 20 3d 20 22 22 29 0a 7b 0a 0a 20 69 66 20 28 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 .=."").{...if.($value.instanceof
fbc80 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a .UndefinedConstraint).{.return;.
fbca0 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 6c 6c 4f 66 29 29 20 7b 0a }..if.(isset($schema->allOf)).{.
fbcc0 24 69 73 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d $isValid.=.true;.foreach.($schem
fbce0 61 2d 3e 61 6c 6c 4f 66 20 61 73 20 24 61 6c 6c 4f 66 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 a->allOf.as.$allOf).{.$initError
fbd00 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 24 74 68 69 73 2d 3e 63 s.=.$this->getErrors();.$this->c
fbd20 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 61 6c 6c 4f 66 2c 20 24 70 heckUndefined($value,.$allOf,.$p
fbd40 61 74 68 2c 20 24 69 29 3b 0a 24 69 73 56 61 6c 69 64 20 3d 20 24 69 73 56 61 6c 69 64 20 26 26 ath,.$i);.$isValid.=.$isValid.&&
fbd60 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 .(count($this->getErrors()).==.c
fbd80 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 29 3b 0a 7d 0a 69 66 20 28 21 24 69 73 56 61 ount($initErrors));.}.if.(!$isVa
fbda0 6c 69 64 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 66 lid).{.$this->addError($path,."f
fbdc0 61 69 6c 65 64 20 74 6f 20 6d 61 74 63 68 20 61 6c 6c 20 73 63 68 65 6d 61 73 22 29 3b 0a 7d 0a ailed.to.match.all.schemas");.}.
fbde0 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 6e 79 4f 66 29 29 20 7b 0a }..if.(isset($schema->anyOf)).{.
fbe00 24 69 73 56 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 24 73 74 61 72 74 45 72 72 6f 72 73 20 3d $isValid.=.false;.$startErrors.=
fbe20 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 .$this->getErrors();.foreach.($s
fbe40 63 68 65 6d 61 2d 3e 61 6e 79 4f 66 20 61 73 20 24 61 6e 79 4f 66 29 20 7b 0a 24 69 6e 69 74 45 chema->anyOf.as.$anyOf).{.$initE
fbe60 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 24 74 68 69 rrors.=.$this->getErrors();.$thi
fbe80 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 61 6e 79 4f 66 s->checkUndefined($value,.$anyOf
fbea0 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 69 66 20 28 24 69 73 56 61 6c 69 64 20 3d 20 28 63 6f ,.$path,.$i);.if.($isValid.=.(co
fbec0 75 6e 74 28 24 74 68 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 unt($this->getErrors()).==.count
fbee0 28 24 69 6e 69 74 45 72 72 6f 72 73 29 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 ($initErrors))).{.break;.}.}.if.
fbf00 28 21 24 69 73 56 61 6c 69 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 (!$isValid).{.$this->addError($p
fbf20 61 74 68 2c 20 22 66 61 69 6c 65 64 20 74 6f 20 6d 61 74 63 68 20 61 74 20 6c 65 61 73 74 20 6f ath,."failed.to.match.at.least.o
fbf40 6e 65 20 73 63 68 65 6d 61 22 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 ne.schema");.}.else.{.$this->err
fbf60 6f 72 73 20 3d 20 24 73 74 61 72 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 ors.=.$startErrors;.}.}..if.(iss
fbf80 65 74 28 24 73 63 68 65 6d 61 2d 3e 6f 6e 65 4f 66 29 29 20 7b 0a 24 61 6c 6c 45 72 72 6f 72 73 et($schema->oneOf)).{.$allErrors
fbfa0 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6d 61 74 63 68 65 64 53 63 68 65 6d 61 73 20 3d 20 30 3b .=.array();.$matchedSchemas.=.0;
fbfc0 0a 24 73 74 61 72 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 .$startErrors.=.$this->getErrors
fbfe0 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 6f 6e 65 4f 66 20 61 73 20 24 ();.foreach.($schema->oneOf.as.$
fc000 6f 6e 65 4f 66 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 oneOf).{.$this->errors.=.array()
fc020 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 61 6c 75 65 2c 20 ;.$this->checkUndefined($value,.
fc040 24 6f 6e 65 4f 66 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 $oneOf,.$path,.$i);.if.(count($t
fc060 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 30 29 20 7b 0a 24 6d 61 74 63 68 his->getErrors()).==.0).{.$match
fc080 65 64 53 63 68 65 6d 61 73 2b 2b 3b 0a 7d 0a 24 61 6c 6c 45 72 72 6f 72 73 20 3d 20 61 72 72 61 edSchemas++;.}.$allErrors.=.arra
fc0a0 79 5f 6d 65 72 67 65 28 24 61 6c 6c 45 72 72 6f 72 73 2c 20 61 72 72 61 79 5f 76 61 6c 75 65 73 y_merge($allErrors,.array_values
fc0c0 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 29 3b 0a 7d 0a 69 66 20 28 24 6d 61 ($this->getErrors()));.}.if.($ma
fc0e0 74 63 68 65 64 53 63 68 65 6d 61 73 20 21 3d 3d 20 31 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 tchedSchemas.!==.1).{.$this->add
fc100 45 72 72 6f 72 73 28 0a 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 61 6c 6c 45 72 72 6f 72 73 2c Errors(.array_merge(.$allErrors,
fc120 0a 61 72 72 61 79 28 61 72 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 27 20 3d 3e 20 24 70 61 74 .array(array(.'property'.=>.$pat
fc140 68 2c 0a 27 6d 65 73 73 61 67 65 27 20 3d 3e 20 22 66 61 69 6c 65 64 20 74 6f 20 6d 61 74 63 68 h,.'message'.=>."failed.to.match
fc160 20 65 78 61 63 74 6c 79 20 6f 6e 65 20 73 63 68 65 6d 61 22 0a 29 2c 29 2c 0a 24 73 74 61 72 74 .exactly.one.schema".),),.$start
fc180 45 72 72 6f 72 73 0a 29 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f Errors.).);.}.else.{.$this->erro
fc1a0 72 73 20 3d 20 24 73 74 61 72 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a rs.=.$startErrors;.}.}.}........
fc1c0 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 44 65 70 ..protected.function.validateDep
fc1e0 65 6e 64 65 6e 63 69 65 73 28 24 76 61 6c 75 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 2c endencies($value,.$dependencies,
fc200 20 24 70 61 74 68 2c 20 24 69 20 3d 20 22 22 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 .$path,.$i.=."").{.foreach.($dep
fc220 65 6e 64 65 6e 63 69 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 79 endencies.as.$key.=>.$dependency
fc240 29 20 7b 0a 69 66 20 28 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 24 76 61 6c 75 65 2c 20 ).{.if.(property_exists($value,.
fc260 24 6b 65 79 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 65 70 65 6e 64 65 6e $key)).{.if.(is_string($dependen
fc280 63 79 29 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 24 76 cy)).{...if.(!property_exists($v
fc2a0 61 6c 75 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 alue,.$dependency)).{.$this->add
fc2c0 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 24 6b 65 79 20 64 65 70 65 6e 64 73 20 6f 6e 20 24 64 Error($path,."$key.depends.on.$d
fc2e0 65 70 65 6e 64 65 6e 63 79 20 61 6e 64 20 24 64 65 70 65 6e 64 65 6e 63 79 20 69 73 20 6d 69 73 ependency.and.$dependency.is.mis
fc300 73 69 6e 67 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 sing");.}.}.else.if.(is_array($d
fc320 65 70 65 6e 64 65 6e 63 79 29 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 64 65 70 65 6e 64 ependency)).{...foreach.($depend
fc340 65 6e 63 79 20 61 73 20 24 64 29 20 7b 0a 69 66 20 28 21 70 72 6f 70 65 72 74 79 5f 65 78 69 73 ency.as.$d).{.if.(!property_exis
fc360 74 73 28 24 76 61 6c 75 65 2c 20 24 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f ts($value,.$d)).{.$this->addErro
fc380 72 28 24 70 61 74 68 2c 20 22 24 6b 65 79 20 64 65 70 65 6e 64 73 20 6f 6e 20 24 64 20 61 6e 64 r($path,."$key.depends.on.$d.and
fc3a0 20 24 64 20 69 73 20 6d 69 73 73 69 6e 67 22 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 .$d.is.missing");.}.}.}.else.if.
fc3c0 28 69 73 5f 6f 62 6a 65 63 74 28 24 64 65 70 65 6e 64 65 6e 63 79 29 29 20 7b 0a 0a 20 24 74 68 (is_object($dependency)).{...$th
fc3e0 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 64 65 70 65 is->checkUndefined($value,.$depe
fc400 6e 64 65 6e 63 79 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f ndency,.$path,.$i);.}.}.}.}..pro
fc420 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 55 72 69 28 24 73 63 68 tected.function.validateUri($sch
fc440 65 6d 61 2c 20 24 73 63 68 65 6d 61 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 73 6f 6c ema,.$schemaUri.=.null).{.$resol
fc460 76 65 72 20 3d 20 6e 65 77 20 55 72 69 52 65 73 6f 6c 76 65 72 28 29 3b 0a 24 72 65 74 72 69 65 ver.=.new.UriResolver();.$retrie
fc480 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 3b 0a ver.=.$this->getUriRetriever();.
fc4a0 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 72 65 73 6f 6c 76 .$jsonSchema.=.null;.if.($resolv
fc4c0 65 72 2d 3e 69 73 56 61 6c 69 64 28 24 73 63 68 65 6d 61 55 72 69 29 29 20 7b 0a 24 73 63 68 65 er->isValid($schemaUri)).{.$sche
fc4e0 6d 61 49 64 20 3d 20 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 24 73 63 68 65 6d 61 2c 20 maId.=.property_exists($schema,.
fc500 27 69 64 27 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 69 64 20 3a 20 6e 75 6c 6c 3b 0a 24 6a 73 6f 'id').?.$schema->id.:.null;.$jso
fc520 6e 53 63 68 65 6d 61 20 3d 20 24 72 65 74 72 69 65 76 65 72 2d 3e 72 65 74 72 69 65 76 65 28 24 nSchema.=.$retriever->retrieve($
fc540 73 63 68 65 6d 61 49 64 2c 20 24 73 63 68 65 6d 61 55 72 69 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e schemaId,.$schemaUri);.}..return
fc560 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a .$jsonSchema;.}.}.<?php.........
fc580 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 6e 74 73 namespace.JsonSchema\Constraints
fc5a0 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 43 6f 6e 73 74 72 61 69 6e 74 20 ;........class.StringConstraint.
fc5c0 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 66 extends.Constraint.{....public.f
fc5e0 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 20 unction.check($element,.$schema.
fc600 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 =.null,.$path.=.null,.$i.=.null)
fc620 0a 7b 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 4c 65 6e 67 74 .{...if.(isset($schema->maxLengt
fc640 68 29 20 26 26 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 65 6c 65 6d 65 6e 74 29 20 3e 20 h).&&.$this->strlen($element).>.
fc660 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 $schema->maxLength).{.$this->add
fc680 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 74 20 6d 6f 73 74 20 22 20 Error($path,."must.be.at.most.".
fc6a0 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 ..$schema->maxLength...".charact
fc6c0 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 ers.long");.}....if.(isset($sche
fc6e0 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 26 26 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 ma->minLength).&&.$this->strlen(
fc700 24 65 6c 65 6d 65 6e 74 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 $element).<.$schema->minLength).
fc720 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 {.$this->addError($path,."must.b
fc740 65 20 61 74 20 6c 65 61 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 e.at.least."...$schema->minLengt
fc760 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 66 h...".characters.long");.}....if
fc780 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 20 26 26 20 21 70 72 .(isset($schema->pattern).&&.!pr
fc7a0 65 67 5f 6d 61 74 63 68 28 27 23 27 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 23 27 2c 20 eg_match('#'...str_replace('#',.
fc7c0 27 5c 5c 23 27 2c 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 20 2e 20 27 23 27 2c 20 '\\#',.$schema->pattern)...'#',.
fc7e0 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 $element)).{.$this->addError($pa
fc800 74 68 2c 20 22 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 72 65 67 65 78 20 70 61 th,."does.not.match.the.regex.pa
fc820 74 74 65 72 6e 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a ttern."...$schema->pattern);.}..
fc840 24 74 68 69 73 2d 3e 63 68 65 63 6b 46 6f 72 6d 61 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 $this->checkFormat($element,.$sc
fc860 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e hema,.$path,.$i);.}..private.fun
fc880 63 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 65 78 74 65 ction.strlen($string).{.if.(exte
fc8a0 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6d 62 73 74 72 69 6e 67 27 29 29 20 7b 0a 72 65 74 75 nsion_loaded('mbstring')).{.retu
fc8c0 72 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 6d 62 5f 64 65 74 65 63 74 5f rn.mb_strlen($string,.mb_detect_
fc8e0 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 encoding($string));.}.else.{.ret
fc900 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 urn.strlen($string);.}.}.}.<?php
fc920 0a 0a 0a 0a 0a 0a 0a 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 .........namespace.JsonSchema\Co
fc940 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 nstraints;..use.JsonSchema\Excep
fc960 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 0a 0a tion\InvalidArgumentException;..
fc980 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 ......class.SchemaConstraint.ext
fc9a0 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
fc9c0 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e tion.check($element,.$schema.=.n
fc9e0 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ull,.$path.=.null,.$i.=.null).{.
fca00 69 66 20 28 24 73 63 68 65 6d 61 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 0a 20 24 74 68 69 73 2d if.($schema.!==.null).{...$this-
fca20 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d >checkUndefined($element,.$schem
fca40 61 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 6f 70 65 72 74 79 5f 65 a,.'',.'');.}.elseif.(property_e
fca60 78 69 73 74 73 28 24 65 6c 65 6d 65 6e 74 2c 20 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 xists($element,.$this->inlineSch
fca80 65 6d 61 50 72 6f 70 65 72 74 79 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e emaProperty)).{...$this->checkUn
fcaa0 64 65 66 69 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 defined($element,.$element->{$th
fcac0 69 73 2d 3e 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 is->inlineSchemaProperty},.'',.'
fcae0 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 ');.}.else.{.throw.new.InvalidAr
fcb00 67 75 6d 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 gumentException('no.schema.found
fcb20 20 74 6f 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 .to.verify.against');.}.}.}<?php
fcb40 0a 0a 0a 0a 0a 0a 0a 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 .........namespace.JsonSchema\Co
fcb60 6e 73 74 72 61 69 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 nstraints;........class.Collecti
fcb80 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a onConstraint.extends.Constraint.
fcba0 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 76 61 6c 75 {....public.function.check($valu
fcbc0 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,
fcbe0 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d .$i.=.null).{...if.(isset($schem
fcc00 61 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3c 20 a->minItems).&&.count($value).<.
fcc20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 $schema->minItems).{.$this->addE
fcc40 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 73 74 20 62 65 20 61 20 6d 69 6e rror($path,."There.must.be.a.min
fcc60 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 20 2e 20 imum.of."...$schema->minItems...
fcc80 22 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 ".in.the.array");.}....if.(isset
fcca0 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 ($schema->maxItems).&&.count($va
fccc0 6c 75 65 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 20 7b 0a 24 74 68 69 lue).>.$schema->maxItems).{.$thi
fcce0 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 73 74 20 62 s->addError($path,."There.must.b
fcd00 65 20 61 20 6d 61 78 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 e.a.maximum.of."...$schema->maxI
fcd20 74 65 6d 73 20 2e 20 22 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 0a 20 69 66 tems...".in.the.array");.}....if
fcd40 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 75 6e 69 71 75 65 49 74 65 6d 73 29 29 20 7b .(isset($schema->uniqueItems)).{
fcd60 0a 24 75 6e 69 71 75 65 20 3d 20 24 76 61 6c 75 65 3b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 .$unique.=.$value;.if.(is_array(
fcd80 24 76 61 6c 75 65 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 75 6e 69 $value).&&.count($value)).{.$uni
fcda0 71 75 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 28 24 65 29 20 7b 20 72 que.=.array_map(function($e).{.r
fcdc0 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 65 2c 20 74 72 75 65 29 3b 20 7d 2c 20 24 eturn.var_export($e,.true);.},.$
fcde0 76 61 6c 75 65 29 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 61 72 72 61 79 5f 75 6e 69 71 75 65 value);.}.if.(count(array_unique
fce00 28 24 75 6e 69 71 75 65 29 29 20 21 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 ($unique)).!=.count($value)).{.$
fce20 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 61 72 65 this->addError($path,."There.are
fce40 20 6e 6f 20 64 75 70 6c 69 63 61 74 65 73 20 61 6c 6c 6f 77 65 64 20 69 6e 20 74 68 65 20 61 72 .no.duplicates.allowed.in.the.ar
fce60 72 61 79 22 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d ray");.}.}....if.(isset($schema-
fce80 3e 69 74 65 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 49 74 65 6d 73 28 >items)).{.$this->validateItems(
fcea0 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 7d 0a 7d $value,.$schema,.$path,.$i);.}.}
fcec0 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 76 61 6c ..........protected.function.val
fcee0 69 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c idateItems($value,.$schema.=.nul
fcf00 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 l,.$path.=.null,.$i.=.null).{.if
fcf20 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 0a .(is_object($schema->items)).{..
fcf40 20 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a .foreach.($value.as.$k.=>.$v).{.
fcf60 24 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 $initErrors.=.$this->getErrors()
fcf80 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 ;....$this->checkUndefined($v,.$
fcfa0 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 0a 0a 20 69 66 schema->items,.$path,.$k);....if
fcfc0 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 74 68 .(count($initErrors).<.count($th
fcfe0 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 68 65 is->getErrors()).&&.(isset($sche
fd000 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 61 2d ma->additionalItems).&&.$schema-
fd020 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 0a 24 >additionalItems.!==.false)).{.$
fd040 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 73 28 secondErrors.=.$this->getErrors(
fd060 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 73 63 );.$this->checkUndefined($v,.$sc
fd080 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 24 6b hema->additionalItems,.$path,.$k
fd0a0 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 73 29 );.}....if.(isset($secondErrors)
fd0c0 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 63 6f 75 6e 74 .&&.count($secondErrors).<.count
fd0e0 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 ($this->getErrors())).{.$this->e
fd100 72 72 6f 72 73 20 3d 20 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 3b 0a 7d 20 65 6c 73 65 20 69 66 rrors.=.$secondErrors;.}.else.if
fd120 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f 75 6e 74 28 .(isset($secondErrors).&&.count(
fd140 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e $secondErrors).===.count($this->
fd160 67 65 74 45 72 72 6f 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 getErrors())).{.$this->errors.=.
fd180 24 69 6e 69 74 45 72 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 $initErrors;.}.}.}.else.{...fore
fd1a0 61 63 68 20 28 24 76 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 ach.($value.as.$k.=>.$v).{.if.(a
fd1c0 72 72 61 79 5f 6b 65 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 rray_key_exists($k,.$schema->ite
fd1e0 6d 73 29 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 ms)).{.$this->checkUndefined($v,
fd200 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b .$schema->items[$k],.$path,.$k);
fd220 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 .}.else.{...if.(property_exists(
fd240 24 73 63 68 65 6d 61 2c 20 27 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 27 29 29 20 7b 0a 69 $schema,.'additionalItems')).{.i
fd260 66 20 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 20 21 3d 3d 20 f.($schema->additionalItems.!==.
fd280 66 61 6c 73 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 false).{.$this->checkUndefined($
fd2a0 76 2c 20 24 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 v,.$schema->additionalItems,.$pa
fd2c0 74 68 2c 20 24 6b 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f th,.$k);.}.else.{.$this->addErro
fd2e0 72 28 0a 24 70 61 74 68 2c 20 27 54 68 65 20 69 74 65 6d 20 27 20 2e 20 24 69 20 2e 20 27 5b 27 r(.$path,.'The.item.'...$i...'['
fd300 20 2e 20 24 6b 20 2e 20 27 5d 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 ...$k...'].is.not.defined.and.th
fd320 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 e.definition.does.not.allow.addi
fd340 74 69 6f 6e 61 6c 20 69 74 65 6d 73 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 68 tional.items');.}.}.else.{...$th
fd360 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 6e 65 77 20 5c 73 74 64 43 is->checkUndefined($v,.new.\stdC
fd380 6c 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 28 lass(),.$path,.$k);.}.}.}....if(
fd3a0 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3e 20 30 29 20 7b 0a 66 6f 72 20 28 24 6b 20 3d 20 63 count($value).>.0).{.for.($k.=.c
fd3c0 6f 75 6e 74 28 24 76 61 6c 75 65 29 3b 20 24 6b 20 3c 20 63 6f 75 6e 74 28 24 73 63 68 65 6d 61 ount($value);.$k.<.count($schema
fd3e0 2d 3e 69 74 65 6d 73 29 3b 20 24 6b 2b 2b 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e ->items);.$k++).{.$this->checkUn
fd400 64 65 66 69 6e 65 64 28 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 defined(new.UndefinedConstraint(
fd420 29 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b ),.$schema->items[$k],.$path,.$k
fd440 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 );.}.}.}.}.}<?php.........namesp
fd460 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a ace.JsonSchema\Constraints;.....
fd480 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a ..interface.ConstraintInterface.
fd4a0 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 45 72 72 6f 72 73 {......public.function.getErrors
fd4c0 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 64 64 45 72 72 ();.......public.function.addErr
fd4e0 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 70 75 62 6c 69 ors(array.$errors);........publi
fd500 63 20 66 75 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 c.function.addError($path,.$mess
fd520 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 69 73 56 61 age);.......public.function.isVa
fd540 6c 69 64 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 6e lid();...........public.function
fd560 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 .check($value,.$schema.=.null,.$
fd580 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 3b 0a 7d 3c 3f 70 68 70 0a path.=.null,.$i.=.null);.}<?php.
fd5a0 0a 0a 0a 0a 0a 0a 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 ........namespace.JsonSchema\Con
fd5c0 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 6e 75 6d 43 6f 6e 73 74 straints;........class.EnumConst
fd5e0 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 raint.extends.Constraint.{....pu
fd600 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 blic.function.check($element,.$s
fd620 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.=
fd640 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 69 6e 73 74 61 6e 63 65 .null).{...if.($element.instance
fd660 6f 66 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 26 26 20 28 21 69 73 73 65 of.UndefinedConstraint.&&.(!isse
fd680 74 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 7c 7c 20 21 24 73 63 68 65 6d 61 t($schema->required).||.!$schema
fd6a0 2d 3e 72 65 71 75 69 72 65 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 ->required)).{.return;.}..foreac
fd6c0 68 20 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 20 61 73 20 24 65 6e 75 6d 29 20 7b 0a 69 66 20 h.($schema->enum.as.$enum).{.if.
fd6e0 28 28 67 65 74 74 79 70 65 28 24 65 6c 65 6d 65 6e 74 29 20 3d 3d 3d 20 67 65 74 74 79 70 65 28 ((gettype($element).===.gettype(
fd700 24 65 6e 75 6d 29 29 20 26 26 20 28 24 65 6c 65 6d 65 6e 74 20 3d 3d 20 24 65 6e 75 6d 29 29 20 $enum)).&&.($element.==.$enum)).
fd720 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 {.return;.}.}..$this->addError($
fd740 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.
fd760 74 68 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 22 20 2e 20 70 72 69 6e 74 5f 72 28 24 73 63 68 the.enumeration."...print_r($sch
fd780 65 6d 61 2d 3e 65 6e 75 6d 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a ema->enum,.true));.}.}<?php.....
fd7a0 0a 0a 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 ....namespace.JsonSchema\Constra
fd7c0 69 6e 74 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 55 72 69 52 65 74 ints;..use.JsonSchema\Uri\UriRet
fd7e0 72 69 65 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f riever;........abstract.class.Co
fd800 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e nstraint.implements.ConstraintIn
fd820 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 68 65 63 6b 4d 6f 64 65 20 3d terface.{.protected.$checkMode.=
fd840 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 3b 0a 70 72 6f 74 65 63 .self::CHECK_MODE_NORMAL;.protec
fd860 74 65 64 20 24 75 72 69 52 65 74 72 69 65 76 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 ted.$uriRetriever;.protected.$er
fd880 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 6c 69 6e rors.=.array();.protected.$inlin
fd8a0 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 3d 20 27 24 73 63 68 65 6d 61 27 3b 0a 0a 63 6f eSchemaProperty.=.'$schema';..co
fd8c0 6e 73 74 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 nst.CHECK_MODE_NORMAL.=.1;.const
fd8e0 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 54 59 50 45 5f 43 41 53 54 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a .CHECK_MODE_TYPE_CAST.=.2;......
fd900 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 63 68 65 public.function.__construct($che
fd920 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
fd940 2c 20 55 72 69 52 65 74 72 69 65 76 65 72 20 24 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 6e ,.UriRetriever.$uriRetriever.=.n
fd960 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 20 3d 20 24 63 68 65 63 6b ull).{.$this->checkMode.=.$check
fd980 4d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 75 72 69 Mode;.$this->uriRetriever.=.$uri
fd9a0 52 65 74 72 69 65 76 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 Retriever;.}.....public.function
fd9c0 20 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 5f 6e 75 6c 6c .getUriRetriever().{.if.(is_null
fd9e0 28 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 29 0a 7b 0a 24 74 68 69 73 2d 3e ($this->uriRetriever)).{.$this->
fda00 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 20 55 72 69 52 65 74 72 69 65 76 65 72 setUriRetriever(new.UriRetriever
fda20 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 );.}..return.$this->uriRetriever
fda40 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 55 72 69 52 65 ;.}.....public.function.setUriRe
fda60 74 72 69 65 76 65 72 28 55 72 69 52 65 74 72 69 65 76 65 72 20 24 75 72 69 52 65 74 72 69 65 76 triever(UriRetriever.$uriRetriev
fda80 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 75 72 69 er).{.$this->uriRetriever.=.$uri
fdaa0 52 65 74 72 69 65 76 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 Retriever;.}.....public.function
fdac0 20 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 .addError($path,.$message).{.$th
fdae0 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 27 is->errors[].=.array(.'property'
fdb00 20 3d 3e 20 24 70 61 74 68 2c 0a 27 6d 65 73 73 61 67 65 27 20 3d 3e 20 24 6d 65 73 73 61 67 65 .=>.$path,.'message'.=>.$message
fdb20 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 .);.}.....public.function.addErr
fdb40 6f 72 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f ors(array.$errors).{.$this->erro
fdb60 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 rs.=.array_merge($this->errors,.
fdb80 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $errors);.}.....public.function.
fdba0 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 6f getErrors().{.return.$this->erro
fdbc0 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 rs;.}.....public.function.isVali
fdbe0 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 d().{.return.!$this->getErrors()
fdc00 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 72 65 73 65 74 28 29 ;.}......public.function.reset()
fdc20 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a .{.$this->errors.=.array();.}...
fdc40 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 6d .......protected.function.increm
fdc60 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 0a 7b 0a 69 66 20 28 24 70 61 74 68 20 21 entPath($path,.$i).{.if.($path.!
fdc80 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 69 29 29 20 7b 0a 24 70 61 74 68 ==.'').{.if.(is_int($i)).{.$path
fdca0 20 2e 3d 20 27 5b 27 20 2e 20 24 69 20 2e 20 27 5d 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 ..=.'['...$i...']';.}.elseif.($i
fdcc0 20 3d 3d 20 27 27 29 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a .==.'').{.$path..=.'';.}.else.{.
fdce0 24 70 61 74 68 20 2e 3d 20 27 2e 27 20 2e 20 24 69 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 $path..=.'.'...$i;.}.}.else.{.$p
fdd00 61 74 68 20 3d 20 24 69 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a ath.=.$i;.}..return.$path;.}....
fdd20 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 41 72 ......protected.function.checkAr
fdd40 72 61 79 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 ray($value,.$schema.=.null,.$pat
fdd60 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
fdd80 72 20 3d 20 6e 65 77 20 43 6f 6c 6c 65 63 74 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 r.=.new.CollectionConstraint($th
fdda0 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 is->checkMode,.$this->uriRetriev
fddc0 65 72 29 3b 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 er);.$validator->check($value,.$
fdde0 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 schema,.$path,.$i);..$this->addE
fde00 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a rrors($validator->getErrors());.
fde20 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 }...........protected.function.c
fde40 68 65 63 6b 4f 62 6a 65 63 74 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c heckObject($value,.$schema.=.nul
fde60 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 2c 20 24 70 61 74 l,.$path.=.null,.$i.=.null,.$pat
fde80 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 ternProperties.=.null).{.$valida
fdea0 74 6f 72 20 3d 20 6e 65 77 20 4f 62 6a 65 63 74 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 tor.=.new.ObjectConstraint($this
fdec0 2d 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 ->checkMode,.$this->uriRetriever
fdee0 29 3b 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 );.$validator->check($value,.$sc
fdf00 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 hema,.$path,.$i,.$patternPropert
fdf20 69 65 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 ies);..$this->addErrors($validat
fdf40 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f or->getErrors());.}..........pro
fdf60 74 65 63 74 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 tected.function.checkType($value
fdf80 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,.
fdfa0 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 54 79 $i.=.null).{.$validator.=.new.Ty
fdfc0 70 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 peConstraint($this->checkMode,.$
fdfe0 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d this->uriRetriever);.$validator-
fe000 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 >check($value,.$schema,.$path,.$
fe020 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 i);..$this->addErrors($validator
fe040 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 ->getErrors());.}..........prote
fe060 63 74 65 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 cted.function.checkUndefined($va
fe080 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
fe0a0 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 l,.$i.=.null).{.$validator.=.new
fe0c0 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 .UndefinedConstraint($this->chec
fe0e0 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 61 kMode,.$this->uriRetriever);.$va
fe100 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 lidator->check($value,.$schema,.
fe120 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 $path,.$i);..$this->addErrors($v
fe140 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a alidator->getErrors());.}.......
fe160 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 53 74 72 69 6e ...protected.function.checkStrin
fe180 67 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 20 g($value,.$schema.=.null,.$path.
fe1a0 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 20 =.null,.$i.=.null).{.$validator.
fe1c0 3d 20 6e 65 77 20 53 74 72 69 6e 67 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 =.new.StringConstraint($this->ch
fe1e0 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 eckMode,.$this->uriRetriever);.$
fe200 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 61 validator->check($value,.$schema
fe220 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 28 ,.$path,.$i);..$this->addErrors(
fe240 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 0a $validator->getErrors());.}.....
fe260 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 4e 75 6d .....protected.function.checkNum
fe280 62 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 ber($value,.$schema.=.null,.$pat
fe2a0 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
fe2c0 72 20 3d 20 6e 65 77 20 4e 75 6d 62 65 72 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e r.=.new.NumberConstraint($this->
fe2e0 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b checkMode,.$this->uriRetriever);
fe300 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
fe320 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
fe340 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());.}...
fe360 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
fe380 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
fe3a0 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
fe3c0 72 20 3d 20 6e 65 77 20 45 6e 75 6d 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 r.=.new.EnumConstraint($this->ch
fe3e0 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 eckMode,.$this->uriRetriever);.$
fe400 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 61 validator->check($value,.$schema
fe420 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 28 ,.$path,.$i);..$this->addErrors(
fe440 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 70 72 6f $validator->getErrors());.}..pro
fe460 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 46 6f 72 6d 61 74 28 24 76 61 6c tected.function.checkFormat($val
fe480 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c ue,.$schema.=.null,.$path.=.null
fe4a0 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 ,.$i.=.null).{.$validator.=.new.
fe4c0 46 6f 72 6d 61 74 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 FormatConstraint($this->checkMod
fe4e0 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 61 6c 69 64 61 e,.$this->uriRetriever);.$valida
fe500 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 tor->check($value,.$schema,.$pat
fe520 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 h,.$i);..$this->addErrors($valid
fe540 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 70 72 6f 74 65 ator->getErrors());.}......prote
fe560 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 55 72 69 28 24 75 72 69 29 0a cted.function.retrieveUri($uri).
fe580 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 {.if.(null.===.$this->uriRetriev
fe5a0 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 er).{.$this->setUriRetriever(new
fe5c0 20 55 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 7d 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 .UriRetriever);.}.$jsonSchema.=.
fe5e0 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 2d 3e 72 65 74 72 69 65 76 65 28 24 75 $this->uriRetriever->retrieve($u
fe600 72 69 29 3b 0a 0a 20 72 65 74 75 72 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 7d 0a 3c ri);...return.$jsonSchema;.}.}.<
fe620 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d ?php.........namespace.JsonSchem
fe640 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 a\Constraints;........class.Numb
fe660 65 72 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a erConstraint.extends.Constraint.
fe680 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
fe6a0 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
fe6c0 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 63 68 l,.$i.=.null).{...if.(isset($sch
fe6e0 65 6d 61 2d 3e 65 78 63 6c 75 73 69 76 65 4d 69 6e 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 69 73 ema->exclusiveMinimum)).{.if.(is
fe700 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 24 73 63 set($schema->minimum)).{.if.($sc
fe720 68 65 6d 61 2d 3e 65 78 63 6c 75 73 69 76 65 4d 69 6e 69 6d 75 6d 20 26 26 20 24 65 6c 65 6d 65 hema->exclusiveMinimum.&&.$eleme
fe740 6e 74 20 3d 3d 3d 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 nt.===.$schema->minimum).{.$this
fe760 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d ->addError($path,."must.have.a.m
fe780 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 62 6f 75 6e 64 61 inimum.value.greater.than.bounda
fe7a0 72 79 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 6d ry.value.of."...$schema->minimum
fe7c0 29 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 3c 20 24 73 63 68 65 6d 61 );.}.else.if.($element.<.$schema
fe7e0 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 ->minimum).{.$this->addError($pa
fe800 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 6f th,."must.have.a.minimum.value.o
fe820 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 3b 0a 7d 0a 7d 20 65 6c 73 f."...$schema->minimum);.}.}.els
fe840 65 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 75 73 65 20 e.{.$this->addError($path,."use.
fe860 6f 66 20 65 78 63 6c 75 73 69 76 65 4d 69 6e 69 6d 75 6d 20 72 65 71 75 69 72 65 73 20 70 72 65 of.exclusiveMinimum.requires.pre
fe880 73 65 6e 63 65 20 6f 66 20 6d 69 6e 69 6d 75 6d 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 sence.of.minimum");.}.}.else.if.
fe8a0 28 69 73 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 (isset($schema->minimum).&&.$ele
fe8c0 6d 65 6e 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 ment.<.$schema->minimum).{.$this
fe8e0 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d ->addError($path,."must.have.a.m
fe900 69 6e 69 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 inimum.value.of."...$schema->min
fe920 69 6d 75 6d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 imum);.}....if.(isset($schema->e
fe940 78 63 6c 75 73 69 76 65 4d 61 78 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 xclusiveMaximum)).{.if.(isset($s
fe960 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 24 73 63 68 65 6d 61 2d 3e chema->maximum)).{.if.($schema->
fe980 65 78 63 6c 75 73 69 76 65 4d 61 78 69 6d 75 6d 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3d 3d 3d exclusiveMaximum.&&.$element.===
fe9a0 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 .$schema->maximum).{.$this->addE
fe9c0 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 61 78 69 6d 75 6d rror($path,."must.have.a.maximum
fe9e0 20 76 61 6c 75 65 20 6c 65 73 73 20 74 68 61 6e 20 62 6f 75 6e 64 61 72 79 20 76 61 6c 75 65 20 .value.less.than.boundary.value.
fea00 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 20 65 6c 73 65 of."...$schema->maximum);.}.else
fea20 20 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d .if.($element.>.$schema->maximum
fea40 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
fea60 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 24 73 63 .have.a.maximum.value.of."...$sc
fea80 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 hema->maximum);.}.}.else.{.$this
feaa0 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 75 73 65 20 6f 66 20 65 78 63 6c 75 73 ->addError($path,."use.of.exclus
feac0 69 76 65 4d 61 78 69 6d 75 6d 20 72 65 71 75 69 72 65 73 20 70 72 65 73 65 6e 63 65 20 6f 66 20 iveMaximum.requires.presence.of.
feae0 6d 61 78 69 6d 75 6d 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 69 73 73 65 74 28 24 73 maximum");.}.}.else.if.(isset($s
feb00 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 chema->maximum).&&.$element.>.$s
feb20 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f chema->maximum).{.$this->addErro
feb40 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 r($path,."must.have.a.maximum.va
feb60 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a lue.of."...$schema->maximum);.}.
feb80 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 ...if.(isset($schema->divisibleB
feba0 79 29 20 26 26 20 24 74 68 69 73 2d 3e 66 6d 6f 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 y).&&.$this->fmod($element,.$sch
febc0 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 20 21 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d ema->divisibleBy).!=.0).{.$this-
febe0 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6e 6f 74 20 64 69 76 69 73 69 62 >addError($path,."is.not.divisib
fec00 6c 65 20 62 79 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 3b le.by."...$schema->divisibleBy);
fec20 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 75 6c 74 69 70 6c .}....if.(isset($schema->multipl
fec40 65 4f 66 29 20 26 26 20 24 74 68 69 73 2d 3e 66 6d 6f 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 eOf).&&.$this->fmod($element,.$s
fec60 63 68 65 6d 61 2d 3e 6d 75 6c 74 69 70 6c 65 4f 66 29 20 21 3d 20 30 29 20 7b 0a 24 74 68 69 73 chema->multipleOf).!=.0).{.$this
fec80 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 20 6d 75 6c ->addError($path,."must.be.a.mul
feca0 74 69 70 6c 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 75 6c 74 69 70 6c 65 4f 66 tiple.of."...$schema->multipleOf
fecc0 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 46 6f 72 6d 61 74 28 24 65 6c 65 6d 65 6e );.}..$this->checkFormat($elemen
fece0 74 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 70 72 69 76 61 t,.$schema,.$path,.$i);.}..priva
fed00 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 6d 6f 64 28 24 6e 75 6d 62 65 72 31 2c 20 24 6e 75 6d 62 te.function.fmod($number1,.$numb
fed20 65 72 32 29 0a 7b 0a 24 6d 6f 64 75 6c 75 73 20 3d 20 66 6d 6f 64 28 24 6e 75 6d 62 65 72 31 2c er2).{.$modulus.=.fmod($number1,
fed40 20 24 6e 75 6d 62 65 72 32 29 3b 0a 24 70 72 65 63 69 73 69 6f 6e 20 3d 20 61 62 73 28 30 2e 30 .$number2);.$precision.=.abs(0.0
fed60 30 30 30 30 30 30 30 30 31 29 3b 0a 24 64 69 66 66 20 3d 20 28 66 6c 6f 61 74 29 28 24 6d 6f 64 000000001);.$diff.=.(float)($mod
fed80 75 6c 75 73 20 2d 20 24 6e 75 6d 62 65 72 32 29 3b 0a 0a 69 66 20 28 2d 24 70 72 65 63 69 73 69 ulus.-.$number2);..if.(-$precisi
feda0 6f 6e 20 3c 20 24 64 69 66 66 20 26 26 20 24 64 69 66 66 20 3c 20 24 70 72 65 63 69 73 69 6f 6e on.<.$diff.&&.$diff.<.$precision
fedc0 29 20 7b 0a 72 65 74 75 72 6e 20 30 2e 30 3b 0a 7d 0a 0a 24 64 65 63 69 6d 61 6c 73 31 20 3d 20 ).{.return.0.0;.}..$decimals1.=.
fede0 6d 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 65 72 31 2c 20 22 2e 22 29 20 3f 20 6d 62 5f 73 74 mb_strpos($number1,.".").?.mb_st
fee00 72 6c 65 6e 28 24 6e 75 6d 62 65 72 31 29 20 2d 20 6d 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 rlen($number1).-.mb_strpos($numb
fee20 65 72 31 2c 20 22 2e 22 29 20 2d 20 31 20 3a 20 30 3b 0a 24 64 65 63 69 6d 61 6c 73 32 20 3d 20 er1,.".").-.1.:.0;.$decimals2.=.
fee40 6d 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 65 72 32 2c 20 22 2e 22 29 20 3f 20 6d 62 5f 73 74 mb_strpos($number2,.".").?.mb_st
fee60 72 6c 65 6e 28 24 6e 75 6d 62 65 72 32 29 20 2d 20 6d 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 rlen($number2).-.mb_strpos($numb
fee80 65 72 32 2c 20 22 2e 22 29 20 2d 20 31 20 3a 20 30 3b 0a 0a 72 65 74 75 72 6e 20 28 66 6c 6f 61 er2,.".").-.1.:.0;..return.(floa
feea0 74 29 72 6f 75 6e 64 28 24 6d 6f 64 75 6c 75 73 2c 20 6d 61 78 28 24 64 65 63 69 6d 61 6c 73 31 t)round($modulus,.max($decimals1
feec0 2c 20 24 64 65 63 69 6d 61 6c 73 32 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ,.$decimals2));.}.}.<?php.......
feee0 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 6e ..namespace.JsonSchema\Constrain
fef00 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 62 6a 65 63 74 43 6f 6e 73 74 72 61 69 6e ts;........class.ObjectConstrain
fef20 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 t.extends.Constraint.{....functi
fef40 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d on.check($element,.$definition.=
fef60 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c .null,.$path.=.null,.$additional
fef80 50 72 6f 70 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 Prop.=.null,.$patternProperties.
fefa0 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 69 6e 73 74 61 6e 63 65 6f =.null).{.if.($element.instanceo
fefc0 66 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 72 65 74 75 72 6e 3b f.UndefinedConstraint).{.return;
fefe0 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 70 61 74 .}..$matches.=.array();.if.($pat
ff000 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 20 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 74 68 ternProperties).{.$matches.=.$th
ff020 69 73 2d 3e 76 61 6c 69 64 61 74 65 50 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 28 24 65 is->validatePatternProperties($e
ff040 6c 65 6d 65 6e 74 2c 20 24 70 61 74 68 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 lement,.$path,.$patternPropertie
ff060 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 0a 20 24 74 68 69 s);.}..if.($definition).{...$thi
ff080 73 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 s->validateDefinition($element,.
ff0a0 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d $definition,.$path);.}....$this-
ff0c0 3e 76 61 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 6d 61 74 63 >validateElement($element,.$matc
ff0e0 68 65 73 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 68 2c 20 24 61 64 64 69 74 69 hes,.$definition,.$path,.$additi
ff100 6f 6e 61 6c 50 72 6f 70 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 onalProp);.}..public.function.va
ff120 6c 69 64 61 74 65 50 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 28 24 65 6c 65 6d 65 6e 74 lidatePatternProperties($element
ff140 2c 20 24 70 61 74 68 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 0a 7b 0a 24 ,.$path,.$patternProperties).{.$
ff160 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 70 61 74 matches.=.array();.foreach.($pat
ff180 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 61 73 20 24 70 72 65 67 65 78 20 3d 3e 20 24 73 63 ternProperties.as.$pregex.=>.$sc
ff1a0 68 65 6d 61 29 20 7b 0a 0a 20 69 66 20 28 40 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 20 24 hema).{...if.(@preg_match('/'..$
ff1c0 70 72 65 67 65 78 20 2e 20 27 2f 27 2c 20 27 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 pregex...'/',.'').===.false).{.$
ff1e0 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 27 54 68 65 20 70 61 74 74 65 this->addError($path,.'The.patte
ff200 72 6e 20 22 27 20 2e 20 24 70 72 65 67 65 78 20 2e 20 27 22 20 69 73 20 69 6e 76 61 6c 69 64 27 rn."'...$pregex...'".is.invalid'
ff220 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 65 6c 65 6d 65 6e 74 );.continue;.}.foreach.($element
ff240 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 .as.$i.=>.$value).{.if.(preg_mat
ff260 63 68 28 27 2f 27 20 2e 20 24 70 72 65 67 65 78 20 2e 20 27 2f 27 2c 20 24 69 29 29 20 7b 0a 24 ch('/'...$pregex...'/',.$i)).{.$
ff280 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 69 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 matches[].=.$i;.$this->checkUnde
ff2a0 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3f 20 3a 20 6e 65 77 20 5c 73 fined($value,.$schema.?.:.new.\s
ff2c0 74 64 43 6c 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 7d 0a 72 65 74 tdClass(),.$path,.$i);.}.}.}.ret
ff2e0 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 urn.$matches;.}...........public
ff300 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 45 6c 65 6d 65 6e 74 28 24 65 6c 65 6d 65 .function.validateElement($eleme
ff320 6e 74 2c 20 24 6d 61 74 63 68 65 73 2c 20 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 nt,.$matches,.$objectDefinition.
ff340 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 =.null,.$path.=.null,.$additiona
ff360 6c 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 6c 65 6d 65 6e lProp.=.null).{.foreach.($elemen
ff380 74 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 0a 24 70 72 6f 70 65 72 74 79 20 t.as.$i.=>.$value).{..$property.
ff3a0 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 =.$this->getProperty($element,.$
ff3c0 69 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 i,.new.UndefinedConstraint());.$
ff3e0 64 65 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 definition.=.$this->getProperty(
ff400 24 6f 62 6a 65 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 21 $objectDefinition,.$i);....if.(!
ff420 69 6e 5f 61 72 72 61 79 28 24 69 2c 20 24 6d 61 74 63 68 65 73 29 20 26 26 20 24 61 64 64 69 74 in_array($i,.$matches).&&.$addit
ff440 69 6f 6e 61 6c 50 72 6f 70 20 3d 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6e ionalProp.===.false.&&.$this->in
ff460 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 21 3d 3d 20 24 69 20 26 26 20 21 24 64 lineSchemaProperty.!==.$i.&&.!$d
ff480 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 efinition).{.$this->addError($pa
ff4a0 74 68 2c 20 22 54 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 69 73 20 th,."The.property."...$i...".is.
ff4c0 6e 6f 74 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 64 not.defined.and.the.definition.d
ff4e0 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 oes.not.allow.additional.propert
ff500 69 65 73 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 69 2c 20 24 6d ies");.}....if.(!in_array($i,.$m
ff520 61 74 63 68 65 73 29 20 26 26 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 26 26 20 21 24 atches).&&.$additionalProp.&&.!$
ff540 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f definition).{.if.($additionalPro
ff560 70 20 3d 3d 3d 20 74 72 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 p.===.true).{.$this->checkUndefi
ff580 6e 65 64 28 24 76 61 6c 75 65 2c 20 6e 75 6c 6c 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 20 ned($value,.null,.$path,.$i);.}.
ff5a0 65 6c 73 65 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 61 else.{.$this->checkUndefined($va
ff5c0 6c 75 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 2c 20 24 70 61 74 68 2c 20 24 69 29 lue,.$additionalProp,.$path,.$i)
ff5e0 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 69 72 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 ;.}.}....$require.=.$this->getPr
ff600 6f 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b operty($definition,.'requires');
ff620 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 26 26 20 21 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 .if.($require.&&.!$this->getProp
ff640 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 72 65 71 75 69 72 65 29 29 20 7b 0a 24 74 68 69 erty($element,.$require)).{.$thi
ff660 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 72 65 73 65 6e 63 65 s->addError($path,."the.presence
ff680 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 72 65 71 75 .of.the.property."...$i...".requ
ff6a0 69 72 65 73 20 74 68 61 74 20 22 20 2e 20 24 72 65 71 75 69 72 65 20 2e 20 22 20 61 6c 73 6f 20 ires.that."...$require...".also.
ff6c0 62 65 20 70 72 65 73 65 6e 74 22 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 64 65 66 69 6e 69 74 69 6f be.present");.}..if.(!$definitio
ff6e0 6e 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 n).{...$this->checkUndefined($va
ff700 6c 75 65 2c 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 24 69 29 lue,.new.\stdClass(),.$path,.$i)
ff720 3b 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 ;.}.}.}.........public.function.
ff740 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 6f 62 validateDefinition($element,.$ob
ff760 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e jectDefinition.=.null,.$path.=.n
ff780 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f ull).{.foreach.($objectDefinitio
ff7a0 6e 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 70 72 6f 70 65 72 74 79 20 3d n.as.$i.=>.$value).{.$property.=
ff7c0 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 69 .$this->getProperty($element,.$i
ff7e0 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 64 ,.new.UndefinedConstraint());.$d
ff800 65 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 efinition.=.$this->getProperty($
ff820 6f 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 objectDefinition,.$i);.$this->ch
ff840 65 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 eckUndefined($property,.$definit
ff860 69 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 0a 70 ion,.$path,.$i);.}.}...........p
ff880 72 6f 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 rotected.function.getProperty($e
ff8a0 6c 65 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 lement,.$property,.$fallback.=.n
ff8c0 75 6c 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 ull).{.if.(is_array($element).).
ff8e0 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 70 72 6f 70 65 {.return.array_key_exists($prope
ff900 72 74 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 rty,.$element).?.$element[$prope
ff920 72 74 79 5d 20 3a 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 6f rty].:.$fallback;.}.elseif.(is_o
ff940 62 6a 65 63 74 28 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 6f 70 65 72 bject($element)).{.return.proper
ff960 74 79 5f 65 78 69 73 74 73 28 24 65 6c 65 6d 65 6e 74 2c 20 24 70 72 6f 70 65 72 74 79 29 20 3f ty_exists($element,.$property).?
ff980 20 24 65 6c 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 .$element->$property.:.$fallback
ff9a0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a ;.}..return.$fallback;.}.}<?php.
ff9c0 0a 0a 0a 0a 0a 0a 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 ........namespace.JsonSchema\Con
ff9e0 73 74 72 61 69 6e 74 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 straints;..use.JsonSchema\Except
ffa00 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 0a 75 73 ion\InvalidArgumentException;.us
ffa20 65 20 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 61 73 20 53 74 e.UnexpectedValueException.as.St
ffa40 61 6e 64 61 72 64 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 3b 0a andardUnexpectedValueException;.
ffa60 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 79 70 65 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 .......class.TypeConstraint.exte
ffa80 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 73 74 61 74 69 63 20 24 77 6f 72 64 nds.Constraint.{....static.$word
ffaa0 69 6e 67 20 3d 20 61 72 72 61 79 28 0a 27 69 6e 74 65 67 65 72 27 20 3d 3e 20 27 61 6e 20 69 6e ing.=.array(.'integer'.=>.'an.in
ffac0 74 65 67 65 72 27 2c 0a 27 6e 75 6d 62 65 72 27 20 3d 3e 20 27 61 20 6e 75 6d 62 65 72 27 2c 0a teger',.'number'.=>.'a.number',.
ffae0 27 62 6f 6f 6c 65 61 6e 27 20 3d 3e 20 27 61 20 62 6f 6f 6c 65 61 6e 27 2c 0a 27 6f 62 6a 65 63 'boolean'.=>.'a.boolean',.'objec
ffb00 74 27 20 3d 3e 20 27 61 6e 20 6f 62 6a 65 63 74 27 2c 0a 27 61 72 72 61 79 27 20 3d 3e 20 27 61 t'.=>.'an.object',.'array'.=>.'a
ffb20 6e 20 61 72 72 61 79 27 2c 0a 27 73 74 72 69 6e 67 27 20 3d 3e 20 27 61 20 73 74 72 69 6e 67 27 n.array',.'string'.=>.'a.string'
ffb40 2c 0a 27 6e 75 6c 6c 27 20 3d 3e 20 27 61 20 6e 75 6c 6c 27 2c 0a 27 61 6e 79 27 20 3d 3e 20 4e ,.'null'.=>.'a.null',.'any'.=>.N
ffb60 55 4c 4c 2c 20 0a 20 30 20 3d 3e 20 4e 55 4c 4c 2c 20 0a 20 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 ULL,...0.=>.NULL,...);.....publi
ffb80 63 20 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 20 c.function.check($value.=.null,.
ffba0 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 $schema.=.null,.$path.=.null,.$i
ffbc0 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 61 .=.null).{.$type.=.isset($schema
ffbe0 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 0a ->type).?.$schema->type.:.null;.
ffc00 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 24 $isValid.=.true;..if.(is_array($
ffc20 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 66 type)).{...$validatedOneType.=.f
ffc40 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 68 alse;.$errors.=.array();.foreach
ffc60 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 6e .($type.as.$tp).{.$validator.=.n
ffc80 65 77 20 54 79 70 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f ew.TypeConstraint($this->checkMo
ffca0 64 65 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 de);.$subSchema.=.new.\stdClass(
ffcc0 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 2d 3e 74 79 70 65 20 3d 20 24 74 70 3b 0a 24 76 61 6c 69 );.$subSchema->type.=.$tp;.$vali
ffce0 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 75 62 53 63 68 65 6d 61 2c dator->check($value,.$subSchema,
ffd00 20 24 70 61 74 68 2c 20 6e 75 6c 6c 29 3b 0a 24 65 72 72 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 .$path,.null);.$error.=.$validat
ffd20 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 65 72 or->getErrors();..if.(!count($er
ffd40 72 6f 72 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 74 72 75 65 ror)).{.$validatedOneType.=.true
ffd60 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a ;.break;.}..$errors.=.$error;.}.
ffd80 0a 69 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 .if.(!$validatedOneType).{.retur
ffda0 6e 20 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 n.$this->addErrors($errors);.}.}
ffdc0 20 65 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 .elseif.(is_object($type)).{.$th
ffde0 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 is->checkUndefined($value,.$type
ffe00 2c 20 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 ,.$path);.}.else.{.$isValid.=.$t
ffe20 68 69 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 his->validateType($value,.$type)
ffe40 3b 0a 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 69 ;.}..if.($isValid.===.false).{.i
ffe60 66 20 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 77 6f 72 64 69 6e 67 5b 24 74 79 70 65 5d 29 f.(!isset(self::$wording[$type])
ffe80 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 74 61 6e 64 61 72 64 55 6e 65 78 70 65 63 74 65 64 ).{.throw.new.StandardUnexpected
ffea0 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 73 70 72 69 6e 74 66 28 0a 22 4e 6f 20 77 6f 72 ValueException(.sprintf(."No.wor
ffec0 64 69 6e 67 20 66 6f 72 20 25 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 65 78 70 65 63 74 65 64 20 ding.for.%s.available,.expected.
ffee0 77 6f 72 64 69 6e 67 73 20 61 72 65 3a 20 5b 25 73 5d 22 2c 0a 76 61 72 5f 65 78 70 6f 72 74 28 wordings.are:.[%s]",.var_export(
fff00 24 74 79 70 65 2c 20 74 72 75 65 29 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 $type,.true),.implode(',.',.arra
fff20 79 5f 66 69 6c 74 65 72 28 73 65 6c 66 3a 3a 24 77 6f 72 64 69 6e 67 29 29 29 0a 29 3b 0a 7d 0a y_filter(self::$wording))).);.}.
fff40 24 74 68 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 $this->addError($path,.gettype($
fff60 76 61 6c 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 22 20 2e 20 value)...".value.found,.but."...
fff80 73 65 6c 66 3a 3a 24 77 6f 72 64 69 6e 67 5b 24 74 79 70 65 5d 20 2e 20 22 20 69 73 20 72 65 71 self::$wording[$type]...".is.req
fffa0 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 uired");.}.}............protecte
fffc0 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c 20 d.function.validateType($value,.
fffe0 24 74 79 70 65 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 $type).{...if.(!$type).{.return.
100000 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 69 6e 74 65 67 65 72 27 20 3d 3d 3d 20 24 74 79 70 65 true;.}..if.('integer'.===.$type
100020 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 69 6e 74 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 ).{.return.is_int($value);.}..if
100040 20 28 27 6e 75 6d 62 65 72 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 .('number'.===.$type).{.return.i
100060 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 s_numeric($value).&&.!is_string(
100080 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 62 6f 6f 6c 65 61 6e 27 20 3d 3d 3d 20 24 74 $value);.}..if.('boolean'.===.$t
1000a0 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 3b 0a 7d ype).{.return.is_bool($value);.}
1000c0 0a 0a 69 66 20 28 27 6f 62 6a 65 63 74 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 ..if.('object'.===.$type).{.retu
1000e0 72 6e 20 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 3b 0a 0a 20 7d 0a 0a 69 66 20 28 27 rn.is_object($value);...}..if.('
100100 61 72 72 61 79 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 61 72 array'.===.$type).{.return.is_ar
100120 72 61 79 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 73 74 72 69 6e 67 27 20 3d 3d 3d ray($value);.}..if.('string'.===
100140 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 .$type).{.return.is_string($valu
100160 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 6e 75 6c 6c 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 e);.}..if.('null'.===.$type).{.r
100180 65 74 75 72 6e 20 69 73 5f 6e 75 6c 6c 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 61 eturn.is_null($value);.}..if.('a
1001a0 6e 79 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a ny'.===.$type).{.return.true;.}.
1001c0 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 .throw.new.InvalidArgumentExcept
1001e0 69 6f 6e 28 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 3f 20 27 6f 62 6a 65 63 74 ion((is_object($value).?.'object
100200 27 20 3a 20 24 76 61 6c 75 65 29 20 2e 20 27 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 74 79 '.:.$value)...'.is.an.invalid.ty
100220 70 65 20 66 6f 72 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a pe.for.'...$type);.}.}<?php.....
100240 0a 0a 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 ....namespace.JsonSchema\Constra
100260 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 43 6f 6e 73 74 72 61 ints;........class.FormatConstra
100280 69 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c int.extends.Constraint.{....publ
1002a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 ic.function.check($element,.$sch
1002c0 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
1002e0 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 66 6f 72 6d 61 ull).{.if.(!isset($schema->forma
100300 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 73 63 68 65 6d 61 t)).{.return;.}..switch.($schema
100320 2d 3e 66 6f 72 6d 61 74 29 20 7b 0a 63 61 73 65 20 27 64 61 74 65 27 3a 0a 69 66 20 28 21 24 64 ->format).{.case.'date':.if.(!$d
100340 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 ate.=.$this->validateDateTime($e
100360 6c 65 6d 65 6e 74 2c 20 27 59 2d 6d 2d 64 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 lement,.'Y-m-d')).{.$this->addEr
100380 72 6f 72 28 24 70 61 74 68 2c 20 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 64 61 74 65 ror($path,.sprintf('Invalid.date
1003a0 20 25 73 2c 20 65 78 70 65 63 74 65 64 20 66 6f 72 6d 61 74 20 59 59 59 59 2d 4d 4d 2d 44 44 27 .%s,.expected.format.YYYY-MM-DD'
1003c0 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c 65 6d 65 6e 74 29 29 29 3b 0a 7d 0a 62 72 65 ,.json_encode($element)));.}.bre
1003e0 61 6b 3b 0a 0a 63 61 73 65 20 27 74 69 6d 65 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 ak;..case.'time':.if.(!$this->va
100400 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 48 3a 69 3a 73 27 lidateDateTime($element,.'H:i:s'
100420 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 73 70 72 69 )).{.$this->addError($path,.spri
100440 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 74 69 6d 65 20 25 73 2c 20 65 78 70 65 63 74 65 64 20 66 ntf('Invalid.time.%s,.expected.f
100460 6f 72 6d 61 74 20 68 68 3a 6d 6d 3a 73 73 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c ormat.hh:mm:ss',.json_encode($el
100480 65 6d 65 6e 74 29 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 64 61 74 65 2d 74 ement)));.}.break;..case.'date-t
1004a0 69 6d 65 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 ime':.if.(!$this->validateDateTi
1004c0 6d 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 59 2d 6d 2d 64 5c 54 48 3a 69 3a 73 5c 5a 27 29 20 26 me($element,.'Y-m-d\TH:i:s\Z').&
1004e0 26 0a 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d &.!$this->validateDateTime($elem
100500 65 6e 74 2c 20 27 59 2d 6d 2d 64 5c 54 48 3a 69 3a 73 2e 75 5c 5a 27 29 20 26 26 0a 21 24 74 68 ent,.'Y-m-d\TH:i:s.u\Z').&&.!$th
100520 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 is->validateDateTime($element,.'
100540 59 2d 6d 2d 64 5c 54 48 3a 69 3a 73 50 27 29 20 26 26 0a 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 Y-m-d\TH:i:sP').&&.!$this->valid
100560 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 59 2d 6d 2d 64 5c 54 48 3a ateDateTime($element,.'Y-m-d\TH:
100580 69 3a 73 4f 27 29 0a 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 i:sO').).{.$this->addError($path
1005a0 2c 20 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 64 61 74 65 2d 74 69 6d 65 20 25 73 2c ,.sprintf('Invalid.date-time.%s,
1005c0 20 65 78 70 65 63 74 65 64 20 66 6f 72 6d 61 74 20 59 59 59 59 2d 4d 4d 2d 44 44 54 68 68 3a 6d .expected.format.YYYY-MM-DDThh:m
1005e0 6d 3a 73 73 5a 20 6f 72 20 59 59 59 59 2d 4d 4d 2d 44 44 54 68 68 3a 6d 6d 3a 73 73 2b 68 68 3a m:ssZ.or.YYYY-MM-DDThh:mm:ss+hh:
100600 6d 6d 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c 65 6d 65 6e 74 29 29 29 3b 0a 7d 0a mm',.json_encode($element)));.}.
100620 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 74 63 2d 6d 69 6c 6c 69 73 65 63 27 3a 0a 69 66 20 break;..case.'utc-millisec':.if.
100640 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 (!$this->validateDateTime($eleme
100660 6e 74 2c 20 27 55 27 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 nt,.'U')).{.$this->addError($pat
100680 68 2c 20 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 74 69 6d 65 20 25 73 2c 20 65 78 70 h,.sprintf('Invalid.time.%s,.exp
1006a0 65 63 74 65 64 20 69 6e 74 65 67 65 72 20 6f 66 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 73 20 73 69 ected.integer.of.milliseconds.si
1006c0 6e 63 65 20 45 70 6f 63 68 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c 65 6d 65 6e 74 nce.Epoch',.json_encode($element
1006e0 29 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 72 65 67 65 78 27 3a 0a 69 66 20 )));.}.break;..case.'regex':.if.
100700 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 65 6c 65 6d 65 6e 74 29 (!$this->validateRegex($element)
100720 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 27 49 6e 76 61 ).{.$this->addError($path,.'Inva
100740 6c 69 64 20 72 65 67 65 78 20 66 6f 72 6d 61 74 20 27 20 2e 20 24 65 6c 65 6d 65 6e 74 29 3b 0a lid.regex.format.'...$element);.
100760 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 63 6f 6c 6f 72 27 3a 0a 69 66 20 28 21 24 74 68 }.break;..case.'color':.if.(!$th
100780 69 73 2d 3e 76 61 6c 69 64 61 74 65 43 6f 6c 6f 72 28 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 is->validateColor($element)).{.$
1007a0 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 63 this->addError($path,."Invalid.c
1007c0 6f 6c 6f 72 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 73 74 79 6c 65 27 3a 0a olor");.}.break;..case.'style':.
1007e0 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 79 6c 65 28 24 65 6c 65 6d 65 if.(!$this->validateStyle($eleme
100800 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 nt)).{.$this->addError($path,."I
100820 6e 76 61 6c 69 64 20 73 74 79 6c 65 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 nvalid.style");.}.break;..case.'
100840 70 68 6f 6e 65 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 50 68 6f 6e phone':.if.(!$this->validatePhon
100860 65 28 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 e($element)).{.$this->addError($
100880 70 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 70 68 6f 6e 65 20 6e 75 6d 62 65 72 22 29 3b 0a 7d path,."Invalid.phone.number");.}
1008a0 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 72 69 27 3a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d .break;..case.'uri':.if.(null.==
1008c0 3d 20 66 69 6c 74 65 72 5f 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 49 4c 54 45 52 5f 56 41 =.filter_var($element,.FILTER_VA
1008e0 4c 49 44 41 54 45 5f 55 52 4c 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f 4e 5f 46 41 49 4c 55 LIDATE_URL,.FILTER_NULL_ON_FAILU
100900 52 45 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 RE)).{.$this->addError($path,."I
100920 6e 76 61 6c 69 64 20 55 52 4c 20 66 6f 72 6d 61 74 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 nvalid.URL.format");.}.break;..c
100940 61 73 65 20 27 65 6d 61 69 6c 27 3a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 66 69 6c 74 65 72 ase.'email':.if.(null.===.filter
100960 5f 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 _var($element,.FILTER_VALIDATE_E
100980 4d 41 49 4c 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f 4e 5f 46 41 49 4c 55 52 45 29 29 20 7b MAIL,.FILTER_NULL_ON_FAILURE)).{
1009a0 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 49 6e 76 61 6c 69 64 .$this->addError($path,."Invalid
1009c0 20 65 6d 61 69 6c 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 70 2d 61 64 64 .email");.}.break;..case.'ip-add
1009e0 72 65 73 73 27 3a 0a 63 61 73 65 20 27 69 70 76 34 27 3a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d ress':.case.'ipv4':.if.(null.===
100a00 20 66 69 6c 74 65 72 5f 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 49 4c 54 45 52 5f 56 41 4c .filter_var($element,.FILTER_VAL
100a20 49 44 41 54 45 5f 49 50 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f 4e 5f 46 41 49 4c 55 52 45 IDATE_IP,.FILTER_NULL_ON_FAILURE
100a40 20 7c 20 46 49 4c 54 45 52 5f 46 4c 41 47 5f 49 50 56 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 .|.FILTER_FLAG_IPV4)).{.$this->a
100a60 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 49 50 20 61 64 64 72 65 ddError($path,."Invalid.IP.addre
100a80 73 73 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 70 76 36 27 3a 0a 69 66 20 ss");.}.break;..case.'ipv6':.if.
100aa0 28 6e 75 6c 6c 20 3d 3d 3d 20 66 69 6c 74 65 72 5f 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 (null.===.filter_var($element,.F
100ac0 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 49 50 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f ILTER_VALIDATE_IP,.FILTER_NULL_O
100ae0 4e 5f 46 41 49 4c 55 52 45 20 7c 20 46 49 4c 54 45 52 5f 46 4c 41 47 5f 49 50 56 36 29 29 20 7b N_FAILURE.|.FILTER_FLAG_IPV6)).{
100b00 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 49 6e 76 61 6c 69 64 .$this->addError($path,."Invalid
100b20 20 49 50 20 61 64 64 72 65 73 73 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 .IP.address");.}.break;..case.'h
100b40 6f 73 74 2d 6e 61 6d 65 27 3a 0a 63 61 73 65 20 27 68 6f 73 74 6e 61 6d 65 27 3a 0a 69 66 20 28 ost-name':.case.'hostname':.if.(
100b60 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 48 6f 73 74 6e 61 6d 65 28 24 65 6c 65 6d 65 6e !$this->validateHostname($elemen
100b80 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e t)).{.$this->addError($path,."In
100ba0 76 61 6c 69 64 20 68 6f 73 74 6e 61 6d 65 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 valid.hostname");.}.break;..defa
100bc0 75 6c 74 3a 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 55 6e 6b ult:.$this->addError($path,."Unk
100be0 6e 6f 77 6e 20 66 6f 72 6d 61 74 3a 20 22 20 2e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 73 63 nown.format:."...json_encode($sc
100c00 68 65 6d 61 2d 3e 66 6f 72 6d 61 74 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 hema->format));.break;.}.}..prot
100c20 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 ected.function.validateDateTime(
100c40 24 64 61 74 65 74 69 6d 65 2c 20 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 64 74 20 3d 20 5c 44 61 74 $datetime,.$format).{.$dt.=.\Dat
100c60 65 54 69 6d 65 3a 3a 63 72 65 61 74 65 46 72 6f 6d 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 2c eTime::createFromFormat($format,
100c80 20 24 64 61 74 65 74 69 6d 65 29 3b 0a 0a 69 66 20 28 21 24 64 74 29 20 7b 0a 72 65 74 75 72 6e .$datetime);..if.(!$dt).{.return
100ca0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 65 74 69 6d 65 20 3d 3d 3d 20 .false;.}..return.$datetime.===.
100cc0 24 64 74 2d 3e 66 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 $dt->format($format);.}..protect
100ce0 65 64 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 72 65 67 65 78 ed.function.validateRegex($regex
100d00 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 40 70 72 65 67 5f 6d 61 74 63 68 ).{.return.false.!==.@preg_match
100d20 28 27 2f 27 20 2e 20 24 72 65 67 65 78 20 2e 20 27 2f 27 2c 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f ('/'...$regex...'/',.'');.}..pro
100d40 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 43 6f 6c 6f 72 28 24 63 tected.function.validateColor($c
100d60 6f 6c 6f 72 29 0a 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 olor).{.if.(in_array(strtolower(
100d80 24 63 6f 6c 6f 72 29 2c 20 61 72 72 61 79 28 27 61 71 75 61 27 2c 20 27 62 6c 61 63 6b 27 2c 20 $color),.array('aqua',.'black',.
100da0 27 62 6c 75 65 27 2c 20 27 66 75 63 68 73 69 61 27 2c 0a 27 67 72 61 79 27 2c 20 27 67 72 65 65 'blue',.'fuchsia',.'gray',.'gree
100dc0 6e 27 2c 20 27 6c 69 6d 65 27 2c 20 27 6d 61 72 6f 6f 6e 27 2c 20 27 6e 61 76 79 27 2c 20 27 6f n',.'lime',.'maroon',.'navy',.'o
100de0 6c 69 76 65 27 2c 20 27 6f 72 61 6e 67 65 27 2c 20 27 70 75 72 70 6c 65 27 2c 0a 27 72 65 64 27 live',.'orange',.'purple',.'red'
100e00 2c 20 27 73 69 6c 76 65 72 27 2c 20 27 74 65 61 6c 27 2c 20 27 77 68 69 74 65 27 2c 20 27 79 65 ,.'silver',.'teal',.'white',.'ye
100e20 6c 6c 6f 77 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 llow'))).{.return.true;.}..retur
100e40 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 23 28 5b 61 2d 66 30 2d 39 5d 7b 33 7d 7c 5b 61 n.preg_match('/^#([a-f0-9]{3}|[a
100e60 2d 66 30 2d 39 5d 7b 36 7d 29 24 2f 69 27 2c 20 24 63 6f 6c 6f 72 29 3b 0a 7d 0a 0a 70 72 6f 74 -f0-9]{6})$/i',.$color);.}..prot
100e80 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 74 79 6c 65 28 24 73 74 ected.function.validateStyle($st
100ea0 79 6c 65 29 0a 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3b 27 yle).{.$properties.=.explode(';'
100ec0 2c 20 72 74 72 69 6d 28 24 73 74 79 6c 65 2c 20 27 3b 27 29 29 3b 0a 24 69 6e 76 61 6c 69 64 45 ,.rtrim($style,.';'));.$invalidE
100ee0 6e 74 72 69 65 73 20 3d 20 70 72 65 67 5f 67 72 65 70 28 27 2f 5e 5c 73 2a 5b 2d 61 2d 7a 5d 2b ntries.=.preg_grep('/^\s*[-a-z]+
100f00 5c 73 2a 3a 5c 73 2a 2e 2b 24 2f 69 27 2c 20 24 70 72 6f 70 65 72 74 69 65 73 2c 20 50 52 45 47 \s*:\s*.+$/i',.$properties,.PREG
100f20 5f 47 52 45 50 5f 49 4e 56 45 52 54 29 3b 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 69 6e _GREP_INVERT);..return.empty($in
100f40 76 61 6c 69 64 45 6e 74 72 69 65 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 validEntries);.}..protected.func
100f60 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 50 68 6f 6e 65 28 24 70 68 6f 6e 65 29 0a 7b 0a 72 65 74 tion.validatePhone($phone).{.ret
100f80 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 2b 3f 28 5c 28 5c 64 7b 33 7d 5c 29 7c urn.preg_match('/^\+?(\(\d{3}\)|
100fa0 5c 64 7b 33 7d 29 20 5c 64 7b 33 7d 20 5c 64 7b 34 7d 24 2f 27 2c 20 24 70 68 6f 6e 65 29 3b 0a \d{3}).\d{3}.\d{4}$/',.$phone);.
100fc0 7d 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 48 6f }..protected.function.validateHo
100fe0 73 74 6e 61 6d 65 28 24 68 6f 73 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 stname($host).{.return.preg_matc
101000 68 28 27 2f 5e 5b 5f 61 2d 7a 5d 2b 5c 2e 28 5b 5f 61 2d 7a 5d 2b 5c 2e 3f 29 2b 24 2f 69 27 2c h('/^[_a-z]+\.([_a-z]+\.?)+$/i',
101020 20 24 68 6f 73 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 .$host);.}.}.<?php.........names
101040 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 pace.JsonSchema\Exception;.....c
101060 6c 61 73 73 20 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 lass.UriResolverException.extend
101080 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a s.\RuntimeException.{.}<?php....
1010a0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 .....namespace.JsonSchema\Except
1010c0 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 ion;.....class.ResourceNotFoundE
1010e0 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 xception.extends.\RuntimeExcepti
101100 6f 6e 0a 7b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 on.{.}<?php.........namespace.Js
101120 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e onSchema\Exception;.....class.In
101140 76 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 61 54 79 70 65 45 78 63 65 70 74 69 6f 6e 20 65 78 validSchemaMediaTypeException.ex
101160 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 20 0a 7d 3c 3f 70 68 tends.\RuntimeException.{..}<?ph
101180 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 p.........namespace.JsonSchema\E
1011a0 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 53 6f 75 72 63 xception;.....class.InvalidSourc
1011c0 65 55 72 69 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 49 6e 76 61 6c 69 64 41 72 67 eUriException.extends.InvalidArg
1011e0 75 6d 65 6e 74 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 umentException.{.}.<?php........
101200 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b .namespace.JsonSchema\Exception;
101220 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f 6e .....class.JsonDecodingException
101240 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 .extends.\RuntimeException.{.pub
101260 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 63 6f 64 65 20 3d lic.function.__construct($code.=
101280 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e 45 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 .JSON_ERROR_NONE,.\Exception.$pr
1012a0 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 64 65 29 20 evious.=.null).{.switch.($code).
1012c0 7b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 44 45 50 54 48 3a 0a 24 6d 65 73 73 61 67 {.case.JSON_ERROR_DEPTH:.$messag
1012e0 65 20 3d 20 27 54 68 65 20 6d 61 78 69 6d 75 6d 20 73 74 61 63 6b 20 64 65 70 74 68 20 68 61 73 e.=.'The.maximum.stack.depth.has
101300 20 62 65 65 6e 20 65 78 63 65 65 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f .been.exceeded';.break;.case.JSO
101320 4e 5f 45 52 52 4f 52 5f 53 54 41 54 45 5f 4d 49 53 4d 41 54 43 48 3a 0a 24 6d 65 73 73 61 67 65 N_ERROR_STATE_MISMATCH:.$message
101340 20 3d 20 27 49 6e 76 61 6c 69 64 20 6f 72 20 6d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 27 3b 0a .=.'Invalid.or.malformed.JSON';.
101360 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 43 54 52 4c 5f 43 48 41 52 break;.case.JSON_ERROR_CTRL_CHAR
101380 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 20 :.$message.=.'Control.character.
1013a0 65 72 72 6f 72 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 63 6f 72 72 65 63 74 6c 79 20 65 6e 63 6f error,.possibly.incorrectly.enco
1013c0 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 ded';.break;.case.JSON_ERROR_UTF
1013e0 38 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 4d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 63 8:.$message.=.'Malformed.UTF-8.c
101400 68 61 72 61 63 74 65 72 73 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 63 6f 72 72 65 63 74 6c 79 20 haracters,.possibly.incorrectly.
101420 65 6e 63 6f 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 encoded';.break;.case.JSON_ERROR
101440 5f 53 59 4e 54 41 58 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 4a 53 4f 4e 20 73 79 6e 74 61 78 _SYNTAX:.$message.=.'JSON.syntax
101460 20 69 73 20 6d 61 6c 66 6f 72 6d 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a .is.malformed';.break;.default:.
101480 24 6d 65 73 73 61 67 65 20 3d 20 27 53 79 6e 74 61 78 20 65 72 72 6f 72 27 3b 0a 7d 0a 70 61 72 $message.=.'Syntax.error';.}.par
1014a0 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 64 65 ent::__construct($message,.$code
1014c0 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ,.$previous);.}.}<?php.........n
1014e0 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a amespace.JsonSchema\Exception;..
101500 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f ...class.InvalidArgumentExceptio
101520 6e 20 65 78 74 65 6e 64 73 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 n.extends.\InvalidArgumentExcept
101540 69 6f 6e 0a 7b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a ion.{.}<?php.........namespace.J
101560 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 sonSchema\Uri;..use.JsonSchema\E
101580 78 63 65 70 74 69 6f 6e 5c 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 3b 0a 0a xception\UriResolverException;..
1015a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 72 69 52 65 73 6f 6c 76 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 .....class.UriResolver.{.......p
1015c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 75 72 69 29 0a 7b 0a 70 72 65 ublic.function.parse($uri).{.pre
1015e0 67 5f 6d 61 74 63 68 28 27 7c 5e 28 28 5b 5e 3a 2f 3f 23 5d 2b 29 3a 29 3f 28 2f 2f 28 5b 5e 2f g_match('|^(([^:/?#]+):)?(//([^/
101600 3f 23 5d 2a 29 29 3f 28 5b 5e 3f 23 5d 2a 29 28 5c 3f 28 5b 5e 23 5d 2a 29 29 3f 28 23 28 2e 2a ?#]*))?([^?#]*)(\?([^#]*))?(#(.*
101620 29 29 3f 7c 27 2c 20 24 75 72 69 2c 20 24 6d 61 74 63 68 29 3b 0a 0a 24 63 6f 6d 70 6f 6e 65 6e ))?|',.$uri,.$match);..$componen
101640 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 35 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 ts.=.array();.if.(5.<.count($mat
101660 63 68 29 29 20 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 68 ch)).{.$components.=.array(.'sch
101680 65 6d 65 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 75 74 68 6f 72 69 74 79 27 20 3d eme'.=>.$match[2],.'authority'.=
1016a0 3e 20 24 6d 61 74 63 68 5b 34 5d 2c 0a 27 70 61 74 68 27 20 3d 3e 20 24 6d 61 74 63 68 5b 35 5d >.$match[4],.'path'.=>.$match[5]
1016c0 0a 29 3b 0a 7d 20 0a 69 66 20 28 37 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a .);.}..if.(7.<.count($match)).{.
1016e0 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 20 3d 20 24 6d 61 74 63 68 5b 37 5d $components['query'].=.$match[7]
101700 3b 0a 7d 0a 69 66 20 28 39 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f ;.}.if.(9.<.count($match)).{.$co
101720 6d 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 20 3d 20 24 6d 61 74 63 68 5b 39 5d mponents['fragment'].=.$match[9]
101740 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a ;.}..return.$components;.}......
101760 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 28 61 72 72 61 79 ..public.function.generate(array
101780 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 0a 7b 0a 24 75 72 69 20 3d 20 24 63 6f 6d 70 6f 6e 65 6e .$components).{.$uri.=.$componen
1017a0 74 73 5b 27 73 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 20 0a 2e 20 24 63 6f 6d 70 6f 6e 65 ts['scheme']...'://'....$compone
1017c0 6e 74 73 5b 27 61 75 74 68 6f 72 69 74 79 27 5d 0a 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 nts['authority']...$components['
1017e0 70 61 74 68 27 5d 3b 0a 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 71 path'];..if.(array_key_exists('q
101800 75 65 72 79 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 24 uery',.$components)).{.$uri..=.$
101820 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 3b 0a 7d 0a 69 66 20 28 61 72 72 61 79 components['query'];.}.if.(array
101840 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 66 72 61 67 6d 65 6e 74 27 2c 20 24 63 6f 6d 70 6f 6e 65 _key_exists('fragment',.$compone
101860 6e 74 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 27 23 27 20 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 nts)).{.$uri..=.'#'...$component
101880 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d s['fragment'];.}..return.$uri;.}
1018a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 .........public.function.resolve
1018c0 28 24 75 72 69 2c 20 24 62 61 73 65 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 75 ($uri,.$baseUri.=.null).{.if.($u
1018e0 72 69 20 3d 3d 20 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 61 73 65 55 72 69 3b 0a 7d 0a 0a ri.==.'').{.return.$baseUri;.}..
101900 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 75 72 69 29 $components.=.$this->parse($uri)
101920 3b 0a 24 70 61 74 68 20 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 5d 3b 0a 0a ;.$path.=.$components['path'];..
101940 69 66 20 28 21 20 65 6d 70 74 79 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 73 63 68 65 6d 65 27 if.(!.empty($components['scheme'
101960 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d 0a 24 62 61 73 65 43 6f 6d 70 6f 6e ])).{.return.$uri;.}.$baseCompon
101980 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 62 61 73 65 55 72 69 29 3b 0a 24 ents.=.$this->parse($baseUri);.$
1019a0 62 61 73 65 50 61 74 68 20 3d 20 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 basePath.=.$baseComponents['path
1019c0 27 5d 3b 0a 0a 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 5d 20 3d 20 73 '];..$baseComponents['path'].=.s
1019e0 65 6c 66 3a 3a 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 68 42 61 73 65 elf::combineRelativePathWithBase
101a00 50 61 74 68 28 24 70 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 3b 0a 69 66 20 28 69 73 73 65 Path($path,.$basePath);.if.(isse
101a20 74 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 29 20 7b 0a 24 62 t($components['fragment'])).{.$b
101a40 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 20 3d 20 24 63 6f 6d aseComponents['fragment'].=.$com
101a60 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ponents['fragment'];.}..return.$
101a80 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 28 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 29 3b this->generate($baseComponents);
101aa0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 .}..........public.static.functi
101ac0 6f 6e 20 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 68 42 61 73 65 50 61 on.combineRelativePathWithBasePa
101ae0 74 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 0a 7b 0a 24 th($relativePath,.$basePath).{.$
101b00 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 50 61 relativePath.=.self::normalizePa
101b20 74 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 69 66 20 28 24 72 65 6c 61 74 69 76 65 th($relativePath);.if.($relative
101b40 50 61 74 68 20 3d 3d 20 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 61 73 65 50 61 74 68 3b 0a Path.==.'').{.return.$basePath;.
101b60 7d 0a 69 66 20 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 7b 30 7d 20 3d 3d 20 27 2f 27 29 20 7b }.if.($relativePath{0}.==.'/').{
101b80 0a 72 65 74 75 72 6e 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 24 62 61 73 65 50 .return.$relativePath;.}..$baseP
101ba0 61 74 68 53 65 67 6d 65 6e 74 73 20 3d 20 73 65 6c 66 3a 3a 67 65 74 50 61 74 68 53 65 67 6d 65 athSegments.=.self::getPathSegme
101bc0 6e 74 73 28 24 62 61 73 65 50 61 74 68 29 3b 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7c 5e 2f nts($basePath);..preg_match('|^/
101be0 3f 28 5c 2e 5c 2e 2f 28 3f 3a 5c 2e 2f 29 2a 29 2a 7c 27 2c 20 24 72 65 6c 61 74 69 76 65 50 61 ?(\.\./(?:\./)*)*|',.$relativePa
101c00 74 68 2c 20 24 6d 61 74 63 68 29 3b 0a 24 6e 75 6d 4c 65 76 65 6c 55 70 20 3d 20 73 74 72 6c 65 th,.$match);.$numLevelUp.=.strle
101c20 6e 28 24 6d 61 74 63 68 5b 30 5d 29 20 2f 33 20 2b 20 31 3b 0a 69 66 20 28 24 6e 75 6d 4c 65 76 n($match[0])./3.+.1;.if.($numLev
101c40 65 6c 55 70 20 3e 3d 20 63 6f 75 6e 74 28 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 29 elUp.>=.count($basePathSegments)
101c60 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 ).{.throw.new.UriResolverExcepti
101c80 6f 6e 28 73 70 72 69 6e 74 66 28 22 55 6e 61 62 6c 65 20 74 6f 20 72 65 73 6f 6c 76 65 20 55 52 on(sprintf("Unable.to.resolve.UR
101ca0 49 20 27 25 73 27 20 66 72 6f 6d 20 62 61 73 65 20 27 25 73 27 22 2c 20 24 72 65 6c 61 74 69 76 I.'%s'.from.base.'%s'",.$relativ
101cc0 65 50 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 29 3b 0a 7d 0a 24 62 61 73 65 50 61 74 68 53 ePath,.$basePath));.}.$basePathS
101ce0 65 67 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 62 61 73 65 50 61 74 68 53 egments.=.array_slice($basePathS
101d00 65 67 6d 65 6e 74 73 2c 20 30 2c 20 2d 24 6e 75 6d 4c 65 76 65 6c 55 70 29 3b 0a 24 70 61 74 68 egments,.0,.-$numLevelUp);.$path
101d20 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7c 5e 2f 3f 28 5c 2e 5c 2e 2f 28 5c 2e 2f 29 .=.preg_replace('|^/?(\.\./(\./)
101d40 2a 29 2a 7c 27 2c 20 27 27 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 0a 72 65 74 75 *)*|',.'',.$relativePath);..retu
101d60 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 rn.implode('/',.$basePathSegment
101d80 73 29 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 s)...'/'...$path;.}........priva
101da0 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 te.static.function.normalizePath
101dc0 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ($path).{.$path.=.preg_replace('
101de0 7c 28 28 3f 3c 21 5c 2e 29 5c 2e 2f 29 2a 7c 27 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 24 70 |((?<!\.)\./)*|',.'',.$path);.$p
101e00 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7c 2f 2f 7c 27 2c 20 27 2f 27 2c 20 ath.=.preg_replace('|//|',.'/',.
101e20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 $path);..return.$path;.}.....pri
101e40 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 53 65 67 6d vate.static.function.getPathSegm
101e60 65 6e 74 73 28 24 70 61 74 68 29 20 7b 0a 0a 72 65 74 75 72 6e 20 65 78 70 6c 6f 64 65 28 27 2f ents($path).{..return.explode('/
101e80 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ',.$path);.}......public.functio
101ea0 6e 20 69 73 56 61 6c 69 64 28 24 75 72 69 29 0a 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 n.isValid($uri).{.$components.=.
101ec0 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 75 72 69 29 3b 0a 0a 72 65 74 75 72 6e 20 21 65 6d 70 $this->parse($uri);..return.!emp
101ee0 74 79 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ty($components);.}.}.<?php......
101f00 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 3b 0a 0a 75 73 ...namespace.JsonSchema\Uri;..us
101f20 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 46 69 6c 65 e.JsonSchema\Uri\Retrievers\File
101f40 47 65 74 43 6f 6e 74 65 6e 74 73 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c GetContents;.use.JsonSchema\Uri\
101f60 52 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 74 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 Retrievers\UriRetrieverInterface
101f80 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 ;.use.JsonSchema\Validator;.use.
101fa0 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 53 63 68 65 JsonSchema\Exception\InvalidSche
101fc0 6d 61 4d 65 64 69 61 54 79 70 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 maMediaTypeException;.use.JsonSc
101fe0 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 hema\Exception\JsonDecodingExcep
102000 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 72 69 52 65 74 72 69 65 76 65 72 0a 7b tion;.......class.UriRetriever.{
102020 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 6e 75 6c 6c 3b .protected.$uriRetriever.=.null;
102040 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 6e 66 69 72 6d 4d 65 .......public.function.confirmMe
102060 64 69 61 54 79 70 65 28 24 75 72 69 52 65 74 72 69 65 76 65 72 2c 20 24 75 72 69 29 0a 7b 0a 24 diaType($uriRetriever,.$uri).{.$
102080 63 6f 6e 74 65 6e 74 54 79 70 65 20 3d 20 24 75 72 69 52 65 74 72 69 65 76 65 72 2d 3e 67 65 74 contentType.=.$uriRetriever->get
1020a0 43 6f 6e 74 65 6e 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 63 6f 6e ContentType();..if.(is_null($con
1020c0 74 65 6e 74 54 79 70 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 56 61 tentType)).{...return;.}..if.(Va
1020e0 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 20 3d 3d 3d 20 24 lidator::SCHEMA_MEDIA_TYPE.===.$
102100 63 6f 6e 74 65 6e 74 54 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 73 75 contentType).{.return;.}..if.(su
102120 62 73 74 72 28 24 75 72 69 2c 20 30 2c 20 32 33 29 20 3d 3d 20 27 68 74 74 70 3a 2f 2f 6a 73 6f bstr($uri,.0,.23).==.'http://jso
102140 6e 2d 73 63 68 65 6d 61 2e 6f 72 67 2f 27 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b n-schema.org/').{...return.true;
102160 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 61 .}..throw.new.InvalidSchemaMedia
102180 54 79 70 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4d 65 64 69 61 20 74 79 70 TypeException(sprintf('Media.typ
1021a0 65 20 25 73 20 65 78 70 65 63 74 65 64 27 2c 20 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d e.%s.expected',.Validator::SCHEM
1021c0 41 5f 4d 45 44 49 41 5f 54 59 50 45 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 A_MEDIA_TYPE));.}..........publi
1021e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 0a 7b 0a 69 c.function.getUriRetriever().{.i
102200 66 20 28 69 73 5f 6e 75 6c 6c 28 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 29 f.(is_null($this->uriRetriever))
102220 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 20 46 69 .{.$this->setUriRetriever(new.Fi
102240 6c 65 47 65 74 43 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d leGetContents);.}..return.$this-
102260 3e 75 72 69 52 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 >uriRetriever;.}...............p
102280 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 50 6f 69 6e 74 65 72 28 24 6a ublic.function.resolvePointer($j
1022a0 73 6f 6e 53 63 68 65 6d 61 2c 20 24 75 72 69 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 72 20 3d 20 6e sonSchema,.$uri).{.$resolver.=.n
1022c0 65 77 20 55 72 69 52 65 73 6f 6c 76 65 72 28 29 3b 0a 24 70 61 72 73 65 64 20 3d 20 24 72 65 73 ew.UriResolver();.$parsed.=.$res
1022e0 6f 6c 76 65 72 2d 3e 70 61 72 73 65 28 24 75 72 69 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 olver->parse($uri);.if.(empty($p
102300 61 72 73 65 64 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6a 73 arsed['fragment'])).{.return.$js
102320 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 onSchema;.}..$path.=.explode('/'
102340 2c 20 24 70 61 72 73 65 64 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 3b 0a 77 68 69 6c 65 20 28 24 ,.$parsed['fragment']);.while.($
102360 70 61 74 68 29 20 7b 0a 24 70 61 74 68 45 6c 65 6d 65 6e 74 20 3d 20 61 72 72 61 79 5f 73 68 69 path).{.$pathElement.=.array_shi
102380 66 74 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 20 65 6d 70 74 79 28 24 70 61 74 68 45 6c 65 6d ft($path);.if.(!.empty($pathElem
1023a0 65 6e 74 29 29 20 7b 0a 24 70 61 74 68 45 6c 65 6d 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 ent)).{.$pathElement.=.str_repla
1023c0 63 65 28 27 7e 31 27 2c 20 27 2f 27 2c 20 24 70 61 74 68 45 6c 65 6d 65 6e 74 29 3b 0a 24 70 61 ce('~1',.'/',.$pathElement);.$pa
1023e0 74 68 45 6c 65 6d 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 7e 30 27 2c 20 27 7e thElement.=.str_replace('~0',.'~
102400 27 2c 20 24 70 61 74 68 45 6c 65 6d 65 6e 74 29 3b 0a 69 66 20 28 21 20 65 6d 70 74 79 28 24 6a ',.$pathElement);.if.(!.empty($j
102420 73 6f 6e 53 63 68 65 6d 61 2d 3e 24 70 61 74 68 45 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 6a 73 6f sonSchema->$pathElement)).{.$jso
102440 6e 53 63 68 65 6d 61 20 3d 20 24 6a 73 6f 6e 53 63 68 65 6d 61 2d 3e 24 70 61 74 68 45 6c 65 6d nSchema.=.$jsonSchema->$pathElem
102460 65 6e 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4a 73 6f 6e 53 63 68 ent;.}.else.{.throw.new.\JsonSch
102480 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 ema\Exception\ResourceNotFoundEx
1024a0 63 65 70 74 69 6f 6e 28 0a 27 46 72 61 67 6d 65 6e 74 20 22 27 20 2e 20 24 70 61 72 73 65 64 5b ception(.'Fragment."'...$parsed[
1024c0 27 66 72 61 67 6d 65 6e 74 27 5d 20 2e 20 27 22 20 6e 6f 74 20 66 6f 75 6e 64 27 0a 2e 20 27 20 'fragment']...'".not.found'...'.
1024e0 69 6e 20 27 20 2e 20 24 75 72 69 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 20 69 73 5f 6f 62 6a 65 63 in.'...$uri.);.}..if.(!.is_objec
102500 74 28 24 6a 73 6f 6e 53 63 68 65 6d 61 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4a 73 6f t($jsonSchema)).{.throw.new.\Jso
102520 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 nSchema\Exception\ResourceNotFou
102540 6e 64 45 78 63 65 70 74 69 6f 6e 28 0a 27 46 72 61 67 6d 65 6e 74 20 70 61 72 74 20 22 27 20 2e ndException(.'Fragment.part."'..
102560 20 24 70 61 74 68 45 6c 65 6d 65 6e 74 20 2e 20 27 22 20 69 73 20 6e 6f 20 6f 62 6a 65 63 74 20 .$pathElement...'".is.no.object.
102580 27 0a 2e 20 27 20 69 6e 20 27 20 2e 20 24 75 72 69 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 '...'.in.'...$uri.);.}.}.}..retu
1025a0 72 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$jsonSchema;.}.........public
1025c0 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 2c 20 24 62 61 73 65 55 72 .function.retrieve($uri,.$baseUr
1025e0 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 55 72 69 52 i.=.null).{.$resolver.=.new.UriR
102600 65 73 6f 6c 76 65 72 28 29 3b 0a 24 72 65 73 6f 6c 76 65 64 55 72 69 20 3d 20 24 66 65 74 63 68 esolver();.$resolvedUri.=.$fetch
102620 55 72 69 20 3d 20 24 72 65 73 6f 6c 76 65 72 2d 3e 72 65 73 6f 6c 76 65 28 24 75 72 69 2c 20 24 Uri.=.$resolver->resolve($uri,.$
102640 62 61 73 65 55 72 69 29 3b 0a 0a 0a 20 24 61 72 50 61 72 74 73 20 3d 20 24 72 65 73 6f 6c 76 65 baseUri);....$arParts.=.$resolve
102660 72 2d 3e 70 61 72 73 65 28 24 72 65 73 6f 6c 76 65 64 55 72 69 29 3b 0a 69 66 20 28 69 73 73 65 r->parse($resolvedUri);.if.(isse
102680 74 28 24 61 72 50 61 72 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 t($arParts['fragment'])).{.unset
1026a0 28 24 61 72 50 61 72 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 3b 0a 24 66 65 74 63 68 55 72 ($arParts['fragment']);.$fetchUr
1026c0 69 20 3d 20 24 72 65 73 6f 6c 76 65 72 2d 3e 67 65 6e 65 72 61 74 65 28 24 61 72 50 61 72 74 73 i.=.$resolver->generate($arParts
1026e0 29 3b 0a 7d 0a 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 53 );.}..$jsonSchema.=.$this->loadS
102700 63 68 65 6d 61 28 24 66 65 74 63 68 55 72 69 29 3b 0a 0a 0a 20 24 6a 73 6f 6e 53 63 68 65 6d 61 chema($fetchUri);....$jsonSchema
102720 20 3d 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 50 6f 69 6e 74 65 72 28 24 6a 73 6f 6e 53 63 .=.$this->resolvePointer($jsonSc
102740 68 65 6d 61 2c 20 24 72 65 73 6f 6c 76 65 64 55 72 69 29 3b 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 hema,.$resolvedUri);.$jsonSchema
102760 2d 3e 69 64 20 3d 20 24 72 65 73 6f 6c 76 65 64 55 72 69 3b 0a 0a 72 65 74 75 72 6e 20 24 6a 73 ->id.=.$resolvedUri;..return.$js
102780 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 onSchema;.}..........protected.f
1027a0 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 53 63 68 65 6d 61 28 24 66 65 74 63 68 55 72 69 29 0a 7b 0a unction.loadSchema($fetchUri).{.
1027c0 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 43 61 63 68 65 5b 24 66 65 if.(isset($this->schemaCache[$fe
1027e0 74 63 68 55 72 69 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 tchUri])).{.return.$this->schema
102800 43 61 63 68 65 5b 24 66 65 74 63 68 55 72 69 5d 3b 0a 7d 0a 0a 24 75 72 69 52 65 74 72 69 65 76 Cache[$fetchUri];.}..$uriRetriev
102820 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 3b 0a 24 er.=.$this->getUriRetriever();.$
102840 63 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 2d 3e contents.=.$this->uriRetriever->
102860 72 65 74 72 69 65 76 65 28 24 66 65 74 63 68 55 72 69 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 retrieve($fetchUri);.$this->conf
102880 69 72 6d 4d 65 64 69 61 54 79 70 65 28 24 75 72 69 52 65 74 72 69 65 76 65 72 2c 20 24 66 65 74 irmMediaType($uriRetriever,.$fet
1028a0 63 68 55 72 69 29 3b 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 chUri);.$jsonSchema.=.json_decod
1028c0 65 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 69 66 20 28 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f e($contents);..if.(JSON_ERROR_NO
1028e0 4e 45 20 3c 20 24 65 72 72 6f 72 20 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 NE.<.$error.=.json_last_error())
102900 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 .{.throw.new.JsonDecodingExcepti
102920 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 43 61 63 68 on($error);.}..$this->schemaCach
102940 65 5b 24 66 65 74 63 68 55 72 69 5d 20 3d 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 72 65 74 75 e[$fetchUri].=.$jsonSchema;.retu
102960 72 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$jsonSchema;.}........public.
102980 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 55 72 69 52 65 74 72 function.setUriRetriever(UriRetr
1029a0 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 75 72 69 52 65 74 72 69 65 76 65 72 29 0a 7b 0a ieverInterface.$uriRetriever).{.
1029c0 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 75 72 69 52 65 74 72 69 65 $this->uriRetriever.=.$uriRetrie
1029e0 76 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 70 75 62 ver;..return.$this;.}........pub
102a00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 75 72 69 29 0a 7b 0a 70 72 65 67 5f lic.function.parse($uri).{.preg_
102a20 6d 61 74 63 68 28 27 7c 5e 28 28 5b 5e 3a 2f 3f 23 5d 2b 29 3a 29 3f 28 2f 2f 28 5b 5e 2f 3f 23 match('|^(([^:/?#]+):)?(//([^/?#
102a40 5d 2a 29 29 3f 28 5b 5e 3f 23 5d 2a 29 28 5c 3f 28 5b 5e 23 5d 2a 29 29 3f 28 23 28 2e 2a 29 29 ]*))?([^?#]*)(\?([^#]*))?(#(.*))
102a60 3f 7c 27 2c 20 24 75 72 69 2c 20 24 6d 61 74 63 68 29 3b 0a 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 ?|',.$uri,.$match);..$components
102a80 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 35 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 .=.array();.if.(5.<.count($match
102aa0 29 29 20 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 68 65 6d )).{.$components.=.array(.'schem
102ac0 65 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 75 74 68 6f 72 69 74 79 27 20 3d 3e 20 e'.=>.$match[2],.'authority'.=>.
102ae0 24 6d 61 74 63 68 5b 34 5d 2c 0a 27 70 61 74 68 27 20 3d 3e 20 24 6d 61 74 63 68 5b 35 5d 0a 29 $match[4],.'path'.=>.$match[5].)
102b00 3b 0a 7d 0a 0a 69 66 20 28 37 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 ;.}..if.(7.<.count($match)).{.$c
102b20 6f 6d 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 20 3d 20 24 6d 61 74 63 68 5b 37 5d 3b 0a omponents['query'].=.$match[7];.
102b40 7d 0a 0a 69 66 20 28 39 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6d }..if.(9.<.count($match)).{.$com
102b60 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 20 3d 20 24 6d 61 74 63 68 5b 39 5d 3b ponents['fragment'].=.$match[9];
102b80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .}..return.$components;.}.......
102ba0 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 28 61 72 72 61 79 20 .public.function.generate(array.
102bc0 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 0a 7b 0a 24 75 72 69 20 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 $components).{.$uri.=.$component
102be0 73 5b 27 73 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 0a 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 s['scheme']...'://'...$component
102c00 73 5b 27 61 75 74 68 6f 72 69 74 79 27 5d 0a 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 s['authority']...$components['pa
102c20 74 68 27 5d 3b 0a 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 71 75 65 th'];..if.(array_key_exists('que
102c40 72 79 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 24 63 6f ry',.$components)).{.$uri..=.$co
102c60 6d 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 3b 0a 7d 0a 0a 69 66 20 28 61 72 72 61 79 5f mponents['query'];.}..if.(array_
102c80 6b 65 79 5f 65 78 69 73 74 73 28 27 66 72 61 67 6d 65 6e 74 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e key_exists('fragment',.$componen
102ca0 74 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 ts)).{.$uri..=.$components['frag
102cc0 6d 65 6e 74 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ment'];.}..return.$uri;.}.......
102ce0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 28 24 75 72 69 2c 20 ..public.function.resolve($uri,.
102d00 24 62 61 73 65 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d $baseUri.=.null).{.$components.=
102d20 20 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 75 72 69 29 3b 0a 24 70 61 74 68 20 3d 20 24 63 6f .$this->parse($uri);.$path.=.$co
102d40 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 5d 3b 0a 0a 69 66 20 28 28 61 72 72 61 79 5f 6b 65 mponents['path'];..if.((array_ke
102d60 79 5f 65 78 69 73 74 73 28 27 73 63 68 65 6d 65 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 29 y_exists('scheme',.$components))
102d80 20 26 26 20 28 27 68 74 74 70 27 20 3d 3d 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 73 63 68 .&&.('http'.===.$components['sch
102da0 65 6d 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d 0a 0a 24 62 61 73 65 43 eme'])).{.return.$uri;.}..$baseC
102dc0 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 62 61 73 65 55 72 omponents.=.$this->parse($baseUr
102de0 69 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b i);.$basePath.=.$baseComponents[
102e00 27 70 61 74 68 27 5d 3b 0a 0a 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 'path'];..$baseComponents['path'
102e20 5d 20 3d 20 73 65 6c 66 3a 3a 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 ].=.self::combineRelativePathWit
102e40 68 42 61 73 65 50 61 74 68 28 24 70 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 3b 0a 0a 72 65 hBasePath($path,.$basePath);..re
102e60 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 28 24 62 61 73 65 43 6f 6d 70 6f 6e turn.$this->generate($baseCompon
102e80 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 ents);.}..........private.static
102ea0 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 .function.combineRelativePathWit
102ec0 68 42 61 73 65 50 61 74 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 62 61 73 65 50 61 hBasePath($relativePath,.$basePa
102ee0 74 68 29 0a 7b 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d th).{.$relativePath.=.self::norm
102f00 61 6c 69 7a 65 50 61 74 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 24 62 61 73 65 50 alizePath($relativePath);.$baseP
102f20 61 74 68 53 65 67 6d 65 6e 74 73 20 3d 20 73 65 6c 66 3a 3a 67 65 74 50 61 74 68 53 65 67 6d 65 athSegments.=.self::getPathSegme
102f40 6e 74 73 28 24 62 61 73 65 50 61 74 68 29 3b 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7c 5e 2f nts($basePath);..preg_match('|^/
102f60 3f 28 5c 2e 5c 2e 2f 28 3f 3a 5c 2e 2f 29 2a 29 2a 7c 27 2c 20 24 72 65 6c 61 74 69 76 65 50 61 ?(\.\./(?:\./)*)*|',.$relativePa
102f80 74 68 2c 20 24 6d 61 74 63 68 29 3b 0a 24 6e 75 6d 4c 65 76 65 6c 55 70 20 3d 20 73 74 72 6c 65 th,.$match);.$numLevelUp.=.strle
102fa0 6e 28 24 6d 61 74 63 68 5b 30 5d 29 20 2f 33 20 2b 20 31 3b 0a 69 66 20 28 24 6e 75 6d 4c 65 76 n($match[0])./3.+.1;.if.($numLev
102fc0 65 6c 55 70 20 3e 3d 20 63 6f 75 6e 74 28 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 29 elUp.>=.count($basePathSegments)
102fe0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 ).{.throw.new.\JsonSchema\Except
103000 69 6f 6e 5c 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 ion\UriResolverException(sprintf
103020 28 22 55 6e 61 62 6c 65 20 74 6f 20 72 65 73 6f 6c 76 65 20 55 52 49 20 27 25 73 27 20 66 72 6f ("Unable.to.resolve.URI.'%s'.fro
103040 6d 20 62 61 73 65 20 27 25 73 27 22 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 62 61 m.base.'%s'",.$relativePath,.$ba
103060 73 65 50 61 74 68 29 29 3b 0a 7d 0a 0a 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 20 3d sePath));.}..$basePathSegments.=
103080 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 2c 20 .array_slice($basePathSegments,.
1030a0 30 2c 20 2d 24 6e 75 6d 4c 65 76 65 6c 55 70 29 3b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 0,.-$numLevelUp);.$path.=.preg_r
1030c0 65 70 6c 61 63 65 28 27 7c 5e 2f 3f 28 5c 2e 5c 2e 2f 28 5c 2e 2f 29 2a 29 2a 7c 27 2c 20 27 27 eplace('|^/?(\.\./(\./)*)*|',.''
1030e0 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 ,.$relativePath);..return.implod
103100 65 28 27 2f 27 2c 20 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 29 20 2e 20 27 2f 27 20 e('/',.$basePathSegments)...'/'.
103120 2e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 ..$path;.}........private.static
103140 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 68 29 0a 7b .function.normalizePath($path).{
103160 0a 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7c 28 28 3f 3c 21 5c 2e 29 .$path.=.preg_replace('|((?<!\.)
103180 5c 2e 2f 29 2a 7c 27 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 24 70 61 74 68 20 3d 20 70 72 65 \./)*|',.'',.$path);.$path.=.pre
1031a0 67 5f 72 65 70 6c 61 63 65 28 27 7c 2f 2f 7c 27 2c 20 27 2f 27 2c 20 24 70 61 74 68 29 3b 0a 0a g_replace('|//|',.'/',.$path);..
1031c0 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 return.$path;.}.....private.stat
1031e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 53 65 67 6d 65 6e 74 73 28 24 70 61 74 ic.function.getPathSegments($pat
103200 68 29 0a 7b 0a 72 65 74 75 72 6e 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 74 68 29 3b h).{.return.explode('/',.$path);
103220 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 .}......public.function.isValid(
103240 24 75 72 69 29 0a 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 $uri).{.$components.=.$this->par
103260 73 65 28 24 75 72 69 29 3b 0a 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 63 6f 6d 70 6f 6e se($uri);..return.!empty($compon
103280 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a ents);.}.}.<?php.....namespace.J
1032a0 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a sonSchema\Uri\Retrievers;.......
1032c0 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 52 65 74 72 69 65 76 65 72 abstract.class.AbstractRetriever
1032e0 20 69 6d 70 6c 65 6d 65 6e 74 73 20 55 72 69 52 65 74 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 .implements.UriRetrieverInterfac
103300 65 0a 7b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 74 65 6e 74 54 79 70 65 3b 0a e.{.....protected.$contentType;.
103320 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 54 .....public.function.getContentT
103340 79 70 65 28 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 54 79 70 ype().{.return.$this->contentTyp
103360 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a e;.}.}.<?php.........namespace.J
103380 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b 0a 0a 75 73 65 20 4a sonSchema\Uri\Retrievers;..use.J
1033a0 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 4e 6f 74 46 sonSchema\Exception\ResourceNotF
1033c0 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 oundException;.use.JsonSchema\Va
1033e0 6c 69 64 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 47 65 74 43 6f 6e 74 lidator;.......class.FileGetCont
103400 65 6e 74 73 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 52 65 74 72 69 65 76 65 72 0a 7b ents.extends.AbstractRetriever.{
103420 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 65 73 73 61 67 65 42 6f 64 79 3b 0a 0a 0a 0a 0a 0a 70 75 .protected.$messageBody;......pu
103440 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 29 0a 7b 0a 24 blic.function.retrieve($uri).{.$
103460 63 6f 6e 74 65 78 74 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 context.=.stream_context_create(
103480 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 74 68 6f 64 27 array(.'http'.=>.array(.'method'
1034a0 20 3d 3e 20 27 47 45 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 22 41 63 63 65 70 74 3a 20 .=>.'GET',.'header'.=>."Accept:.
1034c0 22 20 2e 20 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 "...Validator::SCHEMA_MEDIA_TYPE
1034e0 0a 29 29 29 3b 0a 0a 24 72 65 73 70 6f 6e 73 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 .)));..$response.=.file_get_cont
103500 65 6e 74 73 28 24 75 72 69 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 70 6f ents($uri);.if.(false.===.$respo
103520 6e 73 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e nse).{.throw.new.ResourceNotFoun
103540 64 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 73 63 68 65 6d 61 20 6e 6f 74 20 66 6f 75 6e dException('JSON.schema.not.foun
103560 64 20 61 74 20 27 20 2e 20 24 75 72 69 29 3b 0a 7d 0a 69 66 20 28 24 72 65 73 70 6f 6e 73 65 20 d.at.'...$uri);.}.if.($response.
103580 3d 3d 20 27 27 0a 26 26 20 73 75 62 73 74 72 28 24 75 72 69 2c 20 30 2c 20 37 29 20 3d 3d 20 27 ==.''.&&.substr($uri,.0,.7).==.'
1035a0 66 69 6c 65 3a 2f 2f 27 20 26 26 20 73 75 62 73 74 72 28 24 75 72 69 2c 20 2d 31 29 20 3d 3d 20 file://'.&&.substr($uri,.-1).==.
1035c0 27 2f 27 0a 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 '/'.).{.throw.new.ResourceNotFou
1035e0 6e 64 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 73 63 68 65 6d 61 20 6e 6f 74 20 66 6f 75 ndException('JSON.schema.not.fou
103600 6e 64 20 61 74 20 27 20 2e 20 24 75 72 69 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 nd.at.'...$uri);.}..$this->messa
103620 67 65 42 6f 64 79 20 3d 20 24 72 65 73 70 6f 6e 73 65 3b 0a 69 66 20 28 21 20 65 6d 70 74 79 28 geBody.=.$response;.if.(!.empty(
103640 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 29 20 7b 0a 24 74 68 69 73 2d $http_response_header)).{.$this-
103660 3e 66 65 74 63 68 43 6f 6e 74 65 6e 74 54 79 70 65 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 >fetchContentType($http_response
103680 5f 68 65 61 64 65 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 74 _header);.}.else.{...$this->cont
1036a0 65 6e 74 54 79 70 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d entType.=.null;.}..return.$this-
1036c0 3e 6d 65 73 73 61 67 65 42 6f 64 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e >messageBody;.}......private.fun
1036e0 63 74 69 6f 6e 20 66 65 74 63 68 43 6f 6e 74 65 6e 74 54 79 70 65 28 61 72 72 61 79 20 24 68 65 ction.fetchContentType(array.$he
103700 61 64 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 aders).{.foreach.($headers.as.$h
103720 65 61 64 65 72 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 54 79 70 65 20 eader).{.if.($this->contentType.
103740 3d 20 73 65 6c 66 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 4d 61 74 63 68 49 6e 48 65 61 =.self::getContentTypeMatchInHea
103760 64 65 72 28 24 68 65 61 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d der($header)).{.return.true;.}.}
103780 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ..return.false;.}......protected
1037a0 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 4d .static.function.getContentTypeM
1037c0 61 74 63 68 49 6e 48 65 61 64 65 72 28 24 68 65 61 64 65 72 29 0a 7b 0a 69 66 20 28 30 20 3c 20 atchInHeader($header).{.if.(0.<.
1037e0 70 72 65 67 5f 6d 61 74 63 68 28 22 2f 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 28 5c 56 2a 29 2f preg_match("/Content-Type:(\V*)/
103800 69 6d 73 22 2c 20 24 68 65 61 64 65 72 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e ims",.$header,.$match)).{.return
103820 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .trim($match[1]);.}.}.}.<?php...
103840 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 ......namespace.JsonSchema\Uri\R
103860 65 74 72 69 65 76 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 55 72 69 52 65 etrievers;.......interface.UriRe
103880 74 72 69 65 76 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 63 20 trieverInterface.{.......public.
1038a0 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 29 3b 0a 0a 0a 0a 0a 0a 70 75 function.retrieve($uri);......pu
1038c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 28 29 3b 0a blic.function.getContentType();.
1038e0 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 }<?php.........namespace.JsonSch
103900 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 ema\Uri\Retrievers;..use.JsonSch
103920 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 72 6c 20 ema\Validator;.......class.Curl.
103940 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 52 65 74 72 69 65 76 65 72 0a 7b 0a 70 72 6f 74 extends.AbstractRetriever.{.prot
103960 65 63 74 65 64 20 24 6d 65 73 73 61 67 65 42 6f 64 79 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ected.$messageBody;..public.func
103980 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 tion.__construct().{.if.(!functi
1039a0 6f 6e 5f 65 78 69 73 74 73 28 27 63 75 72 6c 5f 69 6e 69 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 on_exists('curl_init')).{.throw.
1039c0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 63 55 52 4c 20 6e 6f 74 20 new.\RuntimeException("cURL.not.
1039e0 69 6e 73 74 61 6c 6c 65 64 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e installed");.}.}......public.fun
103a00 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 29 0a 7b 0a 24 63 68 20 3d 20 63 75 72 ction.retrieve($uri).{.$ch.=.cur
103a20 6c 5f 69 6e 69 74 28 29 3b 0a 0a 63 75 72 6c 5f 73 65 74 6f 70 74 28 24 63 68 2c 20 43 55 52 4c l_init();..curl_setopt($ch,.CURL
103a40 4f 50 54 5f 55 52 4c 2c 20 24 75 72 69 29 3b 0a 63 75 72 6c 5f 73 65 74 6f 70 74 28 24 63 68 2c OPT_URL,.$uri);.curl_setopt($ch,
103a60 20 43 55 52 4c 4f 50 54 5f 48 45 41 44 45 52 2c 20 74 72 75 65 29 3b 0a 63 75 72 6c 5f 73 65 74 .CURLOPT_HEADER,.true);.curl_set
103a80 6f 70 74 28 24 63 68 2c 20 43 55 52 4c 4f 50 54 5f 52 45 54 55 52 4e 54 52 41 4e 53 46 45 52 2c opt($ch,.CURLOPT_RETURNTRANSFER,
103aa0 20 74 72 75 65 29 3b 0a 63 75 72 6c 5f 73 65 74 6f 70 74 28 24 63 68 2c 20 43 55 52 4c 4f 50 54 .true);.curl_setopt($ch,.CURLOPT
103ac0 5f 48 54 54 50 48 45 41 44 45 52 2c 20 61 72 72 61 79 28 27 41 63 63 65 70 74 3a 20 27 20 2e 20 _HTTPHEADER,.array('Accept:.'...
103ae0 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 29 29 3b 0a Validator::SCHEMA_MEDIA_TYPE));.
103b00 0a 24 72 65 73 70 6f 6e 73 65 20 3d 20 63 75 72 6c 5f 65 78 65 63 28 24 63 68 29 3b 0a 69 66 20 .$response.=.curl_exec($ch);.if.
103b20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 70 6f 6e 73 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 (false.===.$response).{.throw.ne
103b40 77 20 5c 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 w.\JsonSchema\Exception\Resource
103b60 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 73 63 68 65 6d 61 20 6e NotFoundException('JSON.schema.n
103b80 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 4d 65 73 73 61 ot.found');.}..$this->fetchMessa
103ba0 67 65 42 6f 64 79 28 24 72 65 73 70 6f 6e 73 65 29 3b 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 43 geBody($response);.$this->fetchC
103bc0 6f 6e 74 65 6e 74 54 79 70 65 28 24 72 65 73 70 6f 6e 73 65 29 3b 0a 0a 63 75 72 6c 5f 63 6c 6f ontentType($response);..curl_clo
103be0 73 65 28 24 63 68 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 42 se($ch);..return.$this->messageB
103c00 6f 64 79 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 66 65 74 63 ody;.}.....private.function.fetc
103c20 68 4d 65 73 73 61 67 65 42 6f 64 79 28 24 72 65 73 70 6f 6e 73 65 29 0a 7b 0a 70 72 65 67 5f 6d hMessageBody($response).{.preg_m
103c40 61 74 63 68 28 22 2f 28 3f 3a 5c 72 5c 6e 29 7b 32 7d 28 2e 2a 29 24 2f 6d 73 22 2c 20 24 72 65 atch("/(?:\r\n){2}(.*)$/ms",.$re
103c60 73 70 6f 6e 73 65 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 42 sponse,.$match);.$this->messageB
103c80 6f 64 79 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ody.=.$match[1];.}......protecte
103ca0 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 43 6f 6e 74 65 6e 74 54 79 70 65 28 24 72 65 73 d.function.fetchContentType($res
103cc0 70 6f 6e 73 65 29 0a 7b 0a 69 66 20 28 30 20 3c 20 70 72 65 67 5f 6d 61 74 63 68 28 22 2f 43 6f ponse).{.if.(0.<.preg_match("/Co
103ce0 6e 74 65 6e 74 2d 54 79 70 65 3a 28 5c 56 2a 29 2f 69 6d 73 22 2c 20 24 72 65 73 70 6f 6e 73 65 ntent-Type:(\V*)/ims",.$response
103d00 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 54 79 70 65 20 ,.$match)).{.$this->contentType.
103d20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b =.trim($match[1]);..return.true;
103d40 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 .}..return.false;.}.}<?php..name
103d60 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b space.JsonSchema\Uri\Retrievers;
103d80 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 ..use.JsonSchema\Validator;.use.
103da0 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 74 JsonSchema\Uri\Retrievers\UriRet
103dc0 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c rieverInterface;..............cl
103de0 61 73 73 20 50 72 65 64 65 66 69 6e 65 64 41 72 72 61 79 20 65 78 74 65 6e 64 73 20 41 62 73 74 ass.PredefinedArray.extends.Abst
103e00 72 61 63 74 52 65 74 72 69 65 76 65 72 0a 7b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 63 68 ractRetriever.{.....private.$sch
103e20 65 6d 61 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 emas;........public.function.__c
103e40 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 73 63 68 65 6d 61 73 2c 20 24 63 6f 6e 74 65 6e onstruct(array.$schemas,.$conten
103e60 74 54 79 70 65 20 3d 20 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f tType.=.Validator::SCHEMA_MEDIA_
103e80 54 59 50 45 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 73 20 3d 20 24 73 63 68 65 6d 61 TYPE).{.$this->schemas.=.$schema
103ea0 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 54 79 70 65 20 3d 20 24 63 6f 6e 74 65 6e 74 s;.$this->contentType.=.$content
103ec0 54 79 70 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 72 65 74 Type;.}......public.function.ret
103ee0 72 69 65 76 65 28 24 75 72 69 29 0a 7b 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 rieve($uri).{.if.(!array_key_exi
103f00 73 74 73 28 24 75 72 69 2c 20 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 73 29 29 20 7b 0a 74 68 72 sts($uri,.$this->schemas)).{.thr
103f20 6f 77 20 6e 65 77 20 5c 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 ow.new.\JsonSchema\Exception\Res
103f40 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a ourceNotFoundException(sprintf(.
103f60 27 54 68 65 20 4a 53 4f 4e 20 73 63 68 65 6d 61 20 22 25 73 22 20 77 61 73 20 6e 6f 74 20 66 6f 'The.JSON.schema."%s".was.not.fo
103f80 75 6e 64 2e 27 2c 0a 24 75 72 69 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d und.',.$uri.));.}..return.$this-
103fa0 3e 73 63 68 65 6d 61 73 5b 24 75 72 69 5d 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a >schemas[$uri];.}.}<?php........
103fc0 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 3b 0a 0a 75 73 65 20 4a 73 6f 6e .namespace.JsonSchema;..use.Json
103fe0 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 5c 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 Schema\Constraints\SchemaConstra
104000 69 6e 74 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 5c int;.use.JsonSchema\Constraints\
104020 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 Constraint;..use.JsonSchema\Exce
104040 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 61 54 79 70 65 45 78 63 65 ption\InvalidSchemaMediaTypeExce
104060 70 74 69 6f 6e 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c ption;.use.JsonSchema\Exception\
104080 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 4a 73 6f 6e JsonDecodingException;..use.Json
1040a0 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 74 72 69 65 76 Schema\Uri\Retrievers\UriRetriev
1040c0 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 erInterface;.........class.Valid
1040e0 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 63 6f 6e 73 74 20 ator.extends.Constraint.{.const.
104100 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 20 3d 20 27 61 70 70 6c 69 63 61 74 69 6f 6e SCHEMA_MEDIA_TYPE.=.'application
104120 2f 73 63 68 65 6d 61 2b 6a 73 6f 6e 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 /schema+json';.........public.fu
104140 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e nction.check($value,.$schema.=.n
104160 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ull,.$path.=.null,.$i.=.null).{.
104180 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 69 6e $validator.=.new.SchemaConstrain
1041a0 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 t($this->checkMode,.$this->uriRe
1041c0 74 72 69 65 76 65 72 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c triever);.$validator->check($val
1041e0 75 65 2c 20 24 73 63 68 65 6d 61 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 ue,.$schema);..$this->addErrors(
104200 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f array_unique($validator->getErro
104220 72 73 28 29 2c 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a rs(),.SORT_REGULAR));.}.}.<?php.
104240 0a 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 63 6f 6d 70 ...require_once.__DIR__...'/comp
104260 6f 73 65 72 27 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 oser'...'/autoload_real.php';..r
104280 65 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 39 31 63 32 eturn.ComposerAutoloaderInit91c2
1042a0 64 39 39 35 35 61 31 36 62 35 63 32 65 66 39 34 33 36 37 65 36 62 33 61 38 36 65 33 3a 3a 67 65 d9955a16b5c2ef94367e6b3a86e3::ge
1042c0 74 4c 6f 61 64 65 72 28 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d tLoader();.<?php....$vendorDir.=
1042e0 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 3b 0a 24 62 61 .dirname(dirname(__FILE__));.$ba
104300 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 seDir.=.dirname($vendorDir);..re
104320 74 75 72 6e 20 61 72 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c turn.array(.'Symfony\\Component\
104340 5c 50 72 6f 63 65 73 73 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 \Process\\'.=>.array($vendorDir.
104360 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c ..'/symfony/process'),.'Symfony\
104380 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 46 69 6e 64 65 72 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 \Component\\Finder\\'.=>.array($
1043a0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 27 29 2c 0a vendorDir...'/symfony/finder'),.
1043c0 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 43 6f 6e 73 6f 6c 65 5c 5c 27 20 'Symfony\\Component\\Console\\'.
1043e0 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 79 2f =>.array($vendorDir...'/symfony/
104400 63 6f 6e 73 6f 6c 65 27 29 2c 0a 27 4a 73 6f 6e 53 63 68 65 6d 61 27 20 3d 3e 20 61 72 72 61 79 console'),.'JsonSchema'.=>.array
104420 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 ($vendorDir...'/justinrainbow/js
104440 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 27 29 2c 0a 27 43 6f 6d 70 6f 73 65 72 27 20 3d 3e 20 61 on-schema/src'),.'Composer'.=>.a
104460 72 72 61 79 28 24 62 61 73 65 44 69 72 20 2e 20 27 2f 73 72 63 27 29 2c 0a 29 3b 0a 3c 3f 70 68 rray($baseDir...'/src'),.);.<?ph
104480 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
1044a0 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
1044c0 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 65 ($vendorDir);..return.array(.'Se
1044e0 6c 64 5c 5c 4a 73 6f 6e 4c 69 6e 74 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 ld\\JsonLint\\'.=>.array($vendor
104500 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 2f 53 65 6c 64 2f 4a Dir...'/seld/jsonlint/src/Seld/J
104520 73 6f 6e 4c 69 6e 74 27 29 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 sonLint'),.);.<?php....$vendorDi
104540 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 3b 0a r.=.dirname(dirname(__FILE__));.
104560 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 3b 0a $baseDir.=.dirname($vendorDir);.
104580 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 63 6c 61 73 73 .return.array(.);.<?php....class
1045a0 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 39 31 63 32 64 39 39 35 35 .ComposerAutoloaderInit91c2d9955
1045c0 61 31 36 62 35 63 32 65 66 39 34 33 36 37 65 36 62 33 61 38 36 65 33 0a 7b 0a 70 72 69 76 61 74 a16b5c2ef94367e6b3a86e3.{.privat
1045e0 65 20 73 74 61 74 69 63 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 e.static.$loader;..public.static
104600 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 28 24 63 6c 61 73 73 .function.loadClassLoader($class
104620 29 0a 7b 0a 69 66 20 28 27 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 ).{.if.('Composer\Autoload\Class
104640 4c 6f 61 64 65 72 27 20 3d 3d 3d 20 24 63 6c 61 73 73 29 20 7b 0a 72 65 71 75 69 72 65 20 5f 5f Loader'.===.$class).{.require.__
104660 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 7d 0a 7d 0a DIR__...'/ClassLoader.php';.}.}.
104680 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 4c 6f 61 64 65 .public.static.function.getLoade
1046a0 72 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 6c 6f 61 64 65 72 r().{.if.(null.!==.self::$loader
1046c0 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 73 70 6c ).{.return.self::$loader;.}..spl
1046e0 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 _autoload_register(array('Compos
104700 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 39 31 63 32 64 39 39 35 35 61 31 36 62 35 63 32 erAutoloaderInit91c2d9955a16b5c2
104720 65 66 39 34 33 36 37 65 36 62 33 61 38 36 65 33 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 ef94367e6b3a86e3',.'loadClassLoa
104740 64 65 72 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 der'),.true,.true);.self::$loade
104760 72 20 3d 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f r.=.$loader.=.new.\Composer\Auto
104780 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 load\ClassLoader();.spl_autoload
1047a0 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c _unregister(array('ComposerAutol
1047c0 6f 61 64 65 72 49 6e 69 74 39 31 63 32 64 39 39 35 35 61 31 36 62 35 63 32 65 66 39 34 33 36 37 oaderInit91c2d9955a16b5c2ef94367
1047e0 65 36 62 33 61 38 36 65 33 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b e6b3a86e3',.'loadClassLoader'));
104800 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b ..$vendorDir.=.dirname(__DIR__);
104820 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 3b .$baseDir.=.dirname($vendorDir);
104840 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 2e 20 27 2f 61 75 74 ..$map.=.require.__DIR__...'/aut
104860 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 oload_namespaces.php';.foreach.(
104880 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 $map.as.$namespace.=>.$path).{.$
1048a0 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 70 61 74 68 29 3b 0a loader->set($namespace,.$path);.
1048c0 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 20 2e 20 27 2f 61 75 }..$map.=.require.__DIR__...'/au
1048e0 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 20 28 24 6d 61 70 20 toload_psr4.php';.foreach.($map.
104900 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 6c 6f 61 64 65 as.$namespace.=>.$path).{.$loade
104920 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 61 74 68 29 3b 0a 7d r->setPsr4($namespace,.$path);.}
104940 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 49 52 5f 5f 20 2e 20 ..$classMap.=.require.__DIR__...
104960 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 69 66 20 28 24 63 '/autoload_classmap.php';.if.($c
104980 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 61 73 73 4d 61 70 28 lassMap).{.$loader->addClassMap(
1049a0 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 65 67 69 73 74 65 72 $classMap);.}..$loader->register
1049c0 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 7d 0a 7d 0a 3c 3f 70 (true);..return.$loader;.}.}.<?p
1049e0 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 hp....$vendorDir.=.dirname(dirna
104a00 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 20 64 69 72 6e 61 6d me(__FILE__));.$baseDir.=.dirnam
104a20 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 72 61 79 28 0a 24 76 e($vendorDir);..return.array(.$v
104a40 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 63 endorDir...'/phpunit/phpunit-moc
104a60 6b 2d 6f 62 6a 65 63 74 73 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e k-objects',.$vendorDir...'/phpun
104a80 69 74 2f 70 68 70 2d 74 69 6d 65 72 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 it/php-timer',.$vendorDir...'/ph
104aa0 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 27 2c 0a 24 76 65 6e 64 6f 72 punit/php-token-stream',.$vendor
104ac0 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 65 72 61 74 6f Dir...'/phpunit/php-file-iterato
104ae0 72 27 2c 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 r',.$vendorDir...'/phpunit/php-t
104b00 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 68 ext-template',.$vendorDir...'/ph
104b20 70 75 6e 69 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 punit/php-code-coverage',.$vendo
104b40 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 2c 0a 24 76 65 6e 64 rDir...'/phpunit/phpunit',.$vend
104b60 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 29 3b 0a 3c 3f 70 68 orDir...'/symfony/yaml',.);.<?ph
104b80 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\
104ba0 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 0a 0a 0a 0a 0a 0a 0a Autoload;.......................
104bc0 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 7b 0a 0a 20 70 72 69 .......class.ClassLoader.{...pri
104be0 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 20 61 72 72 61 79 28 vate.$prefixLengthsPsr4.=.array(
104c00 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 34 20 3d 20 61 72 72 );.private.$prefixDirsPsr4.=.arr
104c20 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 72 73 50 73 72 34 20 ay();.private.$fallbackDirsPsr4.
104c40 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 65 66 69 78 65 73 50 =.array();....private.$prefixesP
104c60 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 61 6c 6c 62 61 63 6b sr0.=.array();.private.$fallback
104c80 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 61 74 65 20 24 75 73 DirsPsr0.=.array();..private.$us
104ca0 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 76 61 74 65 20 24 63 eIncludePath.=.false;.private.$c
104cc0 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 63 20 66 75 6e 63 74 lassMap.=.array();..public.funct
104ce0 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 6e 20 63 61 6c 6c 5f ion.getPrefixes().{.return.call_
104d00 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 2c 20 24 user_func_array('array_merge',.$
104d20 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 75 62 6c 69 63 20 66 this->prefixesPsr0);.}..public.f
104d40 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 0a 7b 0a 72 65 74 75 unction.getPrefixesPsr4().{.retu
104d60 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 0a 7d 0a 0a 70 75 62 rn.$this->prefixDirsPsr4;.}..pub
104d80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 7b lic.function.getFallbackDirs().{
104da0 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 72 73 50 73 72 30 3b .return.$this->fallbackDirsPsr0;
104dc0 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
104de0 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 3e 66 61 6c 6c 62 61 irsPsr4().{.return.$this->fallba
104e00 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 63 74 69 6f 6e 20 67 ckDirsPsr4;.}..public.function.g
104e20 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 etClassMap().{.return.$this->cla
104e40 73 73 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 ssMap;.}.....public.function.add
104e60 43 6c 61 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 7b 0a 69 66 20 28 ClassMap(array.$classMap).{.if.(
104e80 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d $this->classMap).{.$this->classM
104ea0 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 ap.=.array_merge($this->classMap
104ec0 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 6c ,.$classMap);.}.else.{.$this->cl
104ee0 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a assMap.=.$classMap;.}.}.........
104f00 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 66 69 78 2c 20 24 70 .public.function.add($prefix,.$p
104f20 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 0a 69 66 20 28 21 24 aths,.$prepend.=.false).{.if.(!$
104f40 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 0a 24 74 68 69 73 2d prefix).{.if.($prepend).{.$this-
104f60 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 65 28 >fallbackDirsPsr0.=.array_merge(
104f80 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 61 6c 6c 62 61 63 6b .(array).$paths,.$this->fallback
104fa0 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 73 2d 3e 66 61 6c 6c DirsPsr0.);.}.else.{.$this->fall
104fc0 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 65 28 0a 24 74 68 69 backDirsPsr0.=.array_merge(.$thi
104fe0 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 61 79 29 20 24 70 61 s->fallbackDirsPsr0,.(array).$pa
105000 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 73 74 20 3d 20 24 70 ths.);.}..return;.}..$first.=.$p
105020 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 73 2d 3e 70 72 65 66 refix[0];.if.(!isset($this->pref
105040 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 29 29 20 7b 0a 24 74 ixesPsr0[$first][$prefix])).{.$t
105060 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
105080 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 75 72 6e 3b 0a 7d 0a x].=.(array).$paths;..return;.}.
1050a0 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 65 66 69 78 65 73 50 if.($prepend).{.$this->prefixesP
1050c0 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 72 61 79 5f 6d 65 72 sr0[$first][$prefix].=.array_mer
1050e0 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 70 72 65 66 69 ge(.(array).$paths,.$this->prefi
105100 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 29 3b 0a 7d 20 65 6c xesPsr0[$first][$prefix].);.}.el
105120 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 24 66 69 72 73 74 5d se.{.$this->prefixesPsr0[$first]
105140 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 24 74 68 69 73 2d 3e [$prefix].=.array_merge(.$this->
105160 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 2c 0a 28 prefixesPsr0[$first][$prefix],.(
105180 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 0a 0a 0a 0a 0a 70 75 array).$paths.);.}.}..........pu
1051a0 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,.$
1051c0 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 0a 69 66 20 28 21 paths,.$prepend.=.false).{.if.(!
1051e0 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 29 20 7b 0a 24 74 68 $prefix).{...if.($prepend).{.$th
105200 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 65 72 is->fallbackDirsPsr4.=.array_mer
105220 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 61 6c 6c 62 ge(.(array).$paths,.$this->fallb
105240 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 74 68 69 73 2d 3e 66 ackDirsPsr4.);.}.else.{.$this->f
105260 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 65 72 67 65 28 0a 24 allbackDirsPsr4.=.array_merge(.$
105280 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 61 72 72 61 79 29 20 this->fallbackDirsPsr4,.(array).
1052a0 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 73 65 74 28 24 74 68 $paths.);.}.}.elseif.(!isset($th
1052c0 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 7b 0a is->prefixDirsPsr4[$prefix])).{.
1052e0 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 78 29 3b 0a 69 66 20 ..$length.=.strlen($prefix);.if.
105300 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 2d 20 31 5d 29 20 ('\\'.!==.$prefix[$length.-.1]).
105320 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
105340 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 20 ption("A.non-empty.PSR-4.prefix.
105360 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 61 must.end.with.a.namespace.separa
105380 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 6e 67 74 68 73 50 73 tor.");.}.$this->prefixLengthsPs
1053a0 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 20 24 6c 65 6e 67 74 r4[$prefix[0]][$prefix].=.$lengt
1053c0 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 24 70 72 65 66 69 78 h;.$this->prefixDirsPsr4[$prefix
1053e0 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 65 69 66 20 28 24 70 ].=.(array).$paths;.}.elseif.($p
105400 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 44 69 72 73 50 73 72 repend).{...$this->prefixDirsPsr
105420 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 0a 28 61 72 72 61 79 4[$prefix].=.array_merge(.(array
105440 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 72 73 50 73 72 34 5b ).$paths,.$this->prefixDirsPsr4[
105460 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 68 69 73 2d 3e 70 72 $prefix].);.}.else.{...$this->pr
105480 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 79 5f 6d 65 efixDirsPsr4[$prefix].=.array_me
1054a0 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 34 5b 24 70 72 65 66 rge(.$this->prefixDirsPsr4[$pref
1054c0 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 0a ix],.(array).$paths.);.}.}......
1054e0 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 72 65 66 69 78 2c 20 ...public.function.set($prefix,.
105500 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 0a 24 74 68 69 73 2d $paths).{.if.(!$prefix).{.$this-
105520 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 79 29 20 24 70 61 74 >fallbackDirsPsr0.=.(array).$pat
105540 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 78 65 73 50 73 72 30 hs;.}.else.{.$this->prefixesPsr0
105560 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 61 79 29 20 [$prefix[0]][$prefix].=.(array).
105580 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 63 20 66 75 6e 63 74 $paths;.}.}.........public.funct
1055a0 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 68 73 29 20 7b 0a 69 ion.setPsr4($prefix,.$paths).{.i
1055c0 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 6c 62 61 63 6b 44 69 f.(!$prefix).{.$this->fallbackDi
1055e0 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 7d 20 65 6c 73 65 20 rsPsr4.=.(array).$paths;.}.else.
105600 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 78 29 3b 0a 69 66 20 {.$length.=.strlen($prefix);.if.
105620 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 2d 20 31 5d 29 20 ('\\'.!==.$prefix[$length.-.1]).
105640 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
105660 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 20 ption("A.non-empty.PSR-4.prefix.
105680 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 61 must.end.with.a.namespace.separa
1056a0 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 6e 67 74 68 73 50 73 tor.");.}.$this->prefixLengthsPs
1056c0 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 20 24 6c 65 6e 67 74 r4[$prefix[0]][$prefix].=.$lengt
1056e0 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 24 70 72 65 66 69 78 h;.$this->prefixDirsPsr4[$prefix
105700 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 ].=.(array).$paths;.}.}.......pu
105720 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 blic.function.setUseIncludePath(
105740 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 $useIncludePath).{.$this->useInc
105760 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a ludePath.=.$useIncludePath;.}...
105780 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 .....public.function.getUseInclu
1057a0 64 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c dePath().{.return.$this->useIncl
1057c0 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e udePath;.}.......public.function
1057e0 20 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 70 .register($prepend.=.false).{.sp
105800 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c l_autoload_register(array($this,
105820 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a .'loadClass'),.true,.$prepend);.
105840 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 }.....public.function.unregister
105860 28 29 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 ().{.spl_autoload_unregister(arr
105880 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ay($this,.'loadClass'));.}......
1058a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 ..public.function.loadClass($cla
1058c0 73 73 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c ss).{.if.($file.=.$this->findFil
1058e0 65 28 24 63 6c 61 73 73 29 29 20 7b 0a 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 0a 72 65 74 e($class)).{.include.$file;..ret
105900 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e urn.true;.}.}.........public.fun
105920 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 0a 20 69 66 20 28 27 ction.findFile($class).{...if.('
105940 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 73 20 3d 20 73 75 62 \\'.==.$class[0]).{.$class.=.sub
105960 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 69 73 73 65 74 28 24 str($class,.1);.}....if.(isset($
105980 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 72 65 74 75 72 this->classMap[$class])).{.retur
1059a0 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 7d 0a 0a 0a 20 n.$this->classMap[$class];.}....
1059c0 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 24 63 6c 61 73 73 2c $logicalPathPsr4.=.strtr($class,
1059e0 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 52 29 20 2e 20 27 2e .'\\',.DIRECTORY_SEPARATOR)...'.
105a00 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 3b 0a 69 66 20 28 69 php';..$first.=.$class[0];.if.(i
105a20 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 50 73 72 34 5b 24 66 sset($this->prefixLengthsPsr4[$f
105a40 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 3e 70 72 65 66 69 78 irst])).{.foreach.($this->prefix
105a60 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 72 65 66 69 78 20 3d LengthsPsr4[$first].as.$prefix.=
105a80 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 72 70 6f 73 28 24 63 >.$length).{.if.(0.===.strpos($c
105aa0 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 20 28 24 74 68 69 73 lass,.$prefix)).{.foreach.($this
105ac0 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 61 73 20 24 64 69 ->prefixDirsPsr4[$prefix].as.$di
105ae0 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 69 r).{.if.(file_exists($file.=.$di
105b00 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 73 75 62 73 74 72 r...DIRECTORY_SEPARATOR...substr
105b20 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 68 29 29 29 20 7b 0a ($logicalPathPsr4,.$length))).{.
105b40 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 0a 20 66 6f 72 65 61 return.$file;.}.}.}.}.}....forea
105b60 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.$
105b80 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 65 20 3d 20 24 dir).{.if.(file_exists($file.=.$
105ba0 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 6f 67 dir...DIRECTORY_SEPARATOR...$log
105bc0 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 66 69 6c 65 3b 0a 7d icalPathPsr4)).{.return.$file;.}
105be0 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 3d 20 73 74 72 72 70 .}....if.(false.!==.$pos.=.strrp
105c00 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 67 69 63 61 6c 50 61 os($class,.'\\')).{...$logicalPa
105c20 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 61 74 68 50 73 72 34 thPsr0.=.substr($logicalPathPsr4
105c40 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 62 73 74 72 28 24 6c ,.0,.$pos.+.1)...strtr(substr($l
105c60 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 2c 20 27 5f 27 2c 20 ogicalPathPsr4,.$pos.+.1),.'_',.
105c80 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 6c 73 65 20 7b 0a 0a DIRECTORY_SEPARATOR);.}.else.{..
105ca0 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 61 73 73 .$logicalPathPsr0.=.strtr($class
105cc0 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 20 27 2e ,.'_',.DIRECTORY_SEPARATOR)...'.
105ce0 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 3e 70 72 65 66 69 78 php';.}..if.(isset($this->prefix
105d00 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 68 20 28 24 74 68 69 esPsr0[$first])).{.foreach.($thi
105d20 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 73 20 24 70 72 65 66 s->prefixesPsr0[$first].as.$pref
105d40 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 73 74 72 70 6f 73 28 ix.=>.$dirs).{.if.(0.===.strpos(
105d60 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 20 28 24 64 69 $class,.$prefix)).{.foreach.($di
105d80 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 69 73 74 73 28 24 66 rs.as.$dir).{.if.(file_exists($f
105da0 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
105dc0 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 65 74 75 72 6e 20 24 ...$logicalPathPsr0)).{.return.$
105de0 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 68 20 28 24 74 68 69 file;.}.}.}.}.}....foreach.($thi
105e00 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 69 72 29 20 7b 0a 69 s->fallbackDirsPsr0.as.$dir).{.i
105e20 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 69 72 20 2e 20 44 49 f.(file_exists($file.=.$dir...DI
105e40 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 63 61 6c 50 61 74 68 RECTORY_SEPARATOR...$logicalPath
105e60 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 7d 0a 0a 0a 20 69 66 Psr0)).{.return.$file;.}.}....if
105e80 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 6c 65 .($this->useIncludePath.&&.$file
105ea0 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 28 24 .=.stream_resolve_include_path($
105ec0 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 6e 20 24 66 69 6c 65 logicalPathPsr0)).{.return.$file
105ee0 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 73 4d 61 70 5b 24 63 ;.}....return.$this->classMap[$c
105f00 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 0a 69 66 20 28 50 48 lass].=.false;.}.}.<?php..if.(PH
105f20 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 63 68 6f 20 27 57 61 P_SAPI.!==.'cli').{.....echo.'Wa
105f40 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 20 69 6e 76 6f 6b 65 rning:.Composer.should.be.invoke
105f60 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 50 48 50 2c 20 6e 6f d.via.the.CLI.version.of.PHP,.no
105f80 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 50 48 50 5f 45 4f 4c t.the.'.PHP_SAPI.'.SAPI'.PHP_EOL
105fa0 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 2f 73 72 63 2f 62 6f ;.}..require.__DIR__.'/../src/bo
105fc0 6f 74 73 74 72 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 otstrap.php';..use.Composer\Cons
105fe0 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e ole\Application;..error_reportin
106000 67 28 2d 31 29 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 g(-1);..if.(function_exists('ini
106020 5f 73 65 74 27 29 29 20 7b 0a 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 5f _set')).{.....@ini_set('display_
106040 65 72 72 6f 72 73 27 2c 20 31 29 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 errors',.1);......$memoryInBytes
106060 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 .=.function.($value).{.........$
106080 75 6e 69 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c unit.=.strtolower(substr($value,
1060a0 20 2d 31 2c 20 31 29 29 3b 0a 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 3d 20 28 69 6e 74 29 .-1,.1));.........$value.=.(int)
1060c0 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 24 75 6e 69 74 29 20 7b .$value;.........switch($unit).{
1060e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 67 27 3a 0a 20 20 20 20 20 20 20 20 20 .............case.'g':..........
106100 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 .......$value.*=.1024;..........
106120 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 61 74 69 76 65 20 6d .......//.no.break.(cumulative.m
106140 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 73 65 20 27 6d 27 3a ultiplier).............case.'m':
106160 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b .................$value.*=.1024;
106180 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 65 61 6b 20 28 63 75 .................//.no.break.(cu
1061a0 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 20 20 20 20 20 20 20 mulative.multiplier)............
1061c0 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 20 20 24 76 61 6c 75 .case.'k':.................$valu
1061e0 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 20 20 20 20 20 72 65 e.*=.1024;.........}..........re
106200 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 24 6d 65 6d 6f 72 79 turn.$value;.....};......$memory
106220 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 6f 72 79 5f 6c 69 6d Limit.=.trim(ini_get('memory_lim
106240 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 6d 6f 72 79 5f 6c 69 it'));.....//.Increase.memory_li
106260 6d 69 74 20 69 66 20 69 74 20 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 31 47 42 0a 20 20 20 20 mit.if.it.is.lower.than.1GB.....
106280 69 66 20 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 21 3d 20 2d 31 20 26 26 20 24 6d 65 6d 6f 72 if.($memoryLimit.!=.-1.&&.$memor
1062a0 79 49 6e 42 79 74 65 73 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 20 3c 20 31 30 32 34 20 2a 20 yInBytes($memoryLimit).<.1024.*.
1062c0 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 6e 69 5f 73 65 74 28 1024.*.1024).{.........@ini_set(
1062e0 27 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 2c 20 27 31 47 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 'memory_limit',.'1G');.....}....
106300 20 75 6e 73 65 74 28 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 2c 20 24 6d 65 6d 6f 72 79 4c 69 .unset($memoryInBytes,.$memoryLi
106320 6d 69 74 29 3b 0a 7d 0a 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 70 70 6c mit);.}..//.run.the.command.appl
106340 69 63 61 74 69 6f 6e 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 ication.$application.=.new.Appli
106360 63 61 74 69 6f 6e 28 29 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 29 3b 0a 0a cation();.$application->run();..
106380 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31 31 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e Copyright.(c).2011.Nils.Adermann
1063a0 2c 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 ,.Jordi.Boggiano..Permission.is.
1063c0 68 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 hereby.granted,.free.of.charge,.
1063e0 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f to.any.person.obtaining.a.copy.o
106400 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 f.this.software.and.associated.d
106420 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 ocumentation.files.(the."Softwar
106440 65 22 29 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 e"),.to.deal.in.the.Software.wit
106460 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 hout.restriction,.including.with
106480 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 out.limitation.the.rights.to.use
1064a0 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 ,.copy,.modify,.merge,.publish,.
1064c0 64 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 distribute,.sublicense,.and/or.s
1064e0 65 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 ell.copies.of.the.Software,.and.
106500 74 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f to.permit.persons.to.whom.the.So
106520 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 ftware.is.furnished.to.do.so,.su
106540 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e bject.to.the.following.condition
106560 73 3a 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 s:..The.above.copyright.notice.a
106580 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 nd.this.permission.notice.shall.
1065a0 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 be.included.in.all.copies.or.sub
1065c0 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 stantial.portions.of.the.Softwar
1065e0 65 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 e...THE.SOFTWARE.IS.PROVIDED."AS
106600 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 .IS",.WITHOUT.WARRANTY.OF.ANY.KI
106620 4e 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e ND,.EXPRESS.OR.IMPLIED,.INCLUDIN
106640 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 G.BUT.NOT.LIMITED.TO.THE.WARRANT
106660 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 IES.OF.MERCHANTABILITY,.FITNESS.
106680 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e FOR.A.PARTICULAR.PURPOSE.AND.NON
1066a0 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 INFRINGEMENT..IN.NO.EVENT.SHALL.
1066c0 54 48 45 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 THE.AUTHORS.OR.COPYRIGHT.HOLDERS
1066e0 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 .BE.LIABLE.FOR.ANY.CLAIM,.DAMAGE
106700 53 20 4f 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e S.OR.OTHER.LIABILITY,.WHETHER.IN
106720 20 41 4e 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 .AN.ACTION.OF.CONTRACT,.TORT.OR.
106740 4f 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 OTHERWISE,.ARISING.FROM,.OUT.OF.
106760 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 OR.IN.CONNECTION.WITH.THE.SOFTWA
106780 52 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 RE.OR.THE.USE.OR.OTHER.DEALINGS.
1067a0 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a b8 c6 68 f0 be be 25 78 8c b0 fc 6f f8 6a IN.THE.SOFTWARE.....h...%x...o.j
1067c0 85 b6 68 d5 f6 78 02 00 00 00 47 42 4d 42 ..h..x....GBMB